From 296f2ce19c39d69ade96626eb110cfc8255edc4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Vajngerl?= Date: Thu, 26 Mar 2026 13:00:04 +0900 Subject: [PATCH] sc: Check against reference also in testPivotTableFormatsGrandTotal The testPivotTableFormatsGrandTotal still used checking specific cells for background and font color, while most other tests use checking against the reference that is contained in the document. This changes the test and also modifies the document to put the reference at the position that is expected and standard in other test documents (one empty row between the pivot table end and reference start). Change-Id: Id309e998a8527e2cf1fe246917780cbd77beec5f Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2734 Reviewed-by: Miklos Vajna Tested-by: Jenkins CPCI (cherry picked from commit 4b8061eedcf1944131fde98724ec0ee9d4b9709c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205788 Reviewed-by: Xisco Fauli Tested-by: Jenkins --- sc/qa/unit/PivotTableFormatsImportExport.cxx | 40 ++---------------- .../PivotTableFormatsGrandTotal.xlsx | Bin 14512 -> 14511 bytes 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/sc/qa/unit/PivotTableFormatsImportExport.cxx b/sc/qa/unit/PivotTableFormatsImportExport.cxx index 936df5b0866a..e107d6344db8 100644 --- a/sc/qa/unit/PivotTableFormatsImportExport.cxx +++ b/sc/qa/unit/PivotTableFormatsImportExport.cxx @@ -43,13 +43,6 @@ ScAddress parseAddress(const ScDocument& rDoc, OUString const& rAddressString) return aAddress; } -Color getBackgroundColor(const ScDocument& rDoc, OUString const& rAddressString) -{ - const ScPatternAttr* pPattern = rDoc.GetPattern(parseAddress(rDoc, rAddressString)); - const SvxBrushItem& rItem = pPattern->GetItem(ATTR_BACKGROUND); - return rItem.GetColor(); -} - /** Compare pivot table output against Excel reference output below. * The reference area starts 1 row after the pivot table ends. * Returns empty string if all cells match, otherwise lists mismatches. */ @@ -387,39 +380,12 @@ CPPUNIT_TEST_FIXTURE(ScPivotTableFormatsImportExport, testPivotTableWithNoSource CPPUNIT_TEST_FIXTURE(ScPivotTableFormatsImportExport, testPivotTableFormatsGrandTotal) { - // Check that we can support pivot table cell formats on grand total output. - - // In the file: pivot table is at B3:G14, reference output is at B17:G28. createScDoc("xlsx/pivot-table/PivotTableFormatsGrandTotal.xlsx"); - auto checkFormats = [this]() { ScDocument& rDocument = *getScDoc(); - - CPPUNIT_ASSERT_EQUAL(Color(0x00B050), getBackgroundColor(rDocument, u"G4"_ustr)); - CPPUNIT_ASSERT(Color(0x00B050) != getBackgroundColor(rDocument, u"G3"_ustr)); - CPPUNIT_ASSERT(Color(0x00B050) != getBackgroundColor(rDocument, u"G5"_ustr)); - CPPUNIT_ASSERT(Color(0x00B050) != getBackgroundColor(rDocument, u"F4"_ustr)); - - // grandRow="1" labelOnly="1" offset="A256" - CPPUNIT_ASSERT_EQUAL(Color(0xC00000), getBackgroundColor(rDocument, u"B14"_ustr)); - - // grandRow="1" labelOnly="1" offset="IV256" - CPPUNIT_ASSERT_EQUAL(Color(0xFFFF00), getBackgroundColor(rDocument, u"C14"_ustr)); - - // grandRow="1" grandCol="1" - intersection - CPPUNIT_ASSERT_EQUAL(Color(0x00B0F0), getBackgroundColor(rDocument, u"G14"_ustr)); - - // grandRow="1" data with reference field="2" selected="0" - CPPUNIT_ASSERT_EQUAL(Color(0x92D050), getBackgroundColor(rDocument, u"E14"_ustr)); - CPPUNIT_ASSERT(Color(0x92D050) != getBackgroundColor(rDocument, u"D14"_ustr)); - CPPUNIT_ASSERT(Color(0x92D050) != getBackgroundColor(rDocument, u"F14"_ustr)); - - // grandCol="1" data with subtotal reference - CPPUNIT_ASSERT_EQUAL(Color(0x0070C0), getBackgroundColor(rDocument, u"G5"_ustr)); - CPPUNIT_ASSERT_EQUAL(Color(0x0070C0), getBackgroundColor(rDocument, u"G6"_ustr)); - CPPUNIT_ASSERT_EQUAL(Color(0x0070C0), getBackgroundColor(rDocument, u"G7"_ustr)); - CPPUNIT_ASSERT_EQUAL(Color(0x0070C0), getBackgroundColor(rDocument, u"G8"_ustr)); - CPPUNIT_ASSERT(Color(0x0070C0) != getBackgroundColor(rDocument, u"G9"_ustr)); + auto[aPivotRange, aReferenceRange] = getPivotAndReferenceRanges(rDocument); + OUString aMismatches = comparePivotWithReference(rDocument, aPivotRange, aReferenceRange); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell format mismatches found", OUString(), aMismatches); }; checkFormats(); diff --git a/sc/qa/unit/data/xlsx/pivot-table/PivotTableFormatsGrandTotal.xlsx b/sc/qa/unit/data/xlsx/pivot-table/PivotTableFormatsGrandTotal.xlsx index c2f50f523dda4a7aae406416d616afd05697839c..757690bddc70238c7576988e5e2bb6da1d653be9 100644 GIT binary patch delta 3642 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 MI7J57GXMYp07j7K_5c6? delta 3656 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 aT``lsHyV>II5q*ulVmtW2H7(J00017FX~zV