diff options
author | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-09-22 15:49:12 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-09-25 09:36:10 +0200 |
commit | c3eefbd9e45598ba06f5741e8ac913ba3c469d09 (patch) | |
tree | c5ebeb26d14f0a555c4666011250aecf90643a1f /sc/qa | |
parent | 65b7634ac5074aaef9b80028e4953f04270a3c3e (diff) |
tdf#112501: Pivot table: popupbuttons are placed on wrong cells
...imported from XLS
Reviewed-on: https://gerrit.libreoffice.org/42508
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
(cherry picked from commit 0098bee792c3e208ea4f6ef1c676958d3f4cd207)
Change-Id: I45bc4a0182e6a62471bc02ac1bca31f9735e6566
Reviewed-on: https://gerrit.libreoffice.org/42647
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'sc/qa')
-rwxr-xr-x | sc/qa/unit/data/xls/tdf112501.xls | bin | 0 -> 28160 bytes | |||
-rw-r--r-- | sc/qa/unit/subsequent_filters-test.cxx | 69 |
2 files changed, 69 insertions, 0 deletions
diff --git a/sc/qa/unit/data/xls/tdf112501.xls b/sc/qa/unit/data/xls/tdf112501.xls Binary files differnew file mode 100755 index 000000000000..2002be6cff29 --- /dev/null +++ b/sc/qa/unit/data/xls/tdf112501.xls diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index b53803c4e425..2a1819b35c08 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -242,6 +242,7 @@ public: void testTdf100709XLSX(); void testTdf97598XLSX(); void testTdf111974XLSM(); + void testTdf112501(); CPPUNIT_TEST_SUITE(ScFiltersTest); CPPUNIT_TEST(testBooleanFormatXLSX); @@ -361,6 +362,7 @@ public: CPPUNIT_TEST(testTdf100709XLSX); CPPUNIT_TEST(testTdf97598XLSX); CPPUNIT_TEST(testTdf111974XLSM); + CPPUNIT_TEST(testTdf112501); CPPUNIT_TEST_SUITE_END(); @@ -3891,6 +3893,73 @@ void ScFiltersTest::testTdf97598XLSX() } +void ScFiltersTest::testTdf112501() +{ + ScDocShellRef xDocSh = loadDoc("tdf112501.", FORMAT_XLS); + CPPUNIT_ASSERT_MESSAGE("Failed to load file", xDocSh.Is()); + ScDocument& rDoc = xDocSh->GetDocument(); + + // There should be exactly 2 pivot tables + ScDPCollection* pDPs = rDoc.GetDPCollection(); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pDPs->GetCount()); + + // Check first pivot table popup buttons (compact) + { + const ScDPObject* pDPObj = &(*pDPs)[0]; + CPPUNIT_ASSERT_MESSAGE("Failed to get an pivot table object.", pDPObj); + // Check whether we have the buttons at the right buttons + // Row button + { + const ScPatternAttr* pPattern = rDoc.GetPattern(0, 3, 0); + const SfxPoolItem& rPoolItem = pPattern->GetItem(ATTR_MERGE_FLAG); + const ScMergeFlagAttr& rMergeFlag = static_cast<const ScMergeFlagAttr&>(rPoolItem); + CPPUNIT_ASSERT(rMergeFlag.GetValue() & ScMF::ButtonPopup); + } + // Column button + { + const ScPatternAttr* pPattern = rDoc.GetPattern(1, 2, 0); + const SfxPoolItem& rPoolItem = pPattern->GetItem(ATTR_MERGE_FLAG); + const ScMergeFlagAttr& rMergeFlag = static_cast<const ScMergeFlagAttr&>(rPoolItem); + CPPUNIT_ASSERT(rMergeFlag.GetValue() & ScMF::ButtonPopup); + } + // Check also C3 to make sure column button is not placed there + { + const ScPatternAttr* pPattern = rDoc.GetPattern(2, 2, 0); + const SfxPoolItem& rPoolItem = pPattern->GetItem(ATTR_MERGE_FLAG); + const ScMergeFlagAttr& rMergeFlag = static_cast<const ScMergeFlagAttr&>(rPoolItem); + CPPUNIT_ASSERT(!(rMergeFlag.GetValue() & ScMF::ButtonPopup)); + } + } + + // Check first pivot table popup buttons (not compact) + { + const ScDPObject* pDPObj = &(*pDPs)[1]; + CPPUNIT_ASSERT_MESSAGE("Failed to get an pivot table object.", pDPObj); + // Check whether we have the buttons at the right buttons + // Two row buttons + { + const ScPatternAttr* pPattern = rDoc.GetPattern(7, 3, 0); + const SfxPoolItem& rPoolItem = pPattern->GetItem(ATTR_MERGE_FLAG); + const ScMergeFlagAttr& rMergeFlag = static_cast<const ScMergeFlagAttr&>(rPoolItem); + CPPUNIT_ASSERT(rMergeFlag.GetValue() & ScMF::ButtonPopup); + } + { + const ScPatternAttr* pPattern = rDoc.GetPattern(8, 3, 0); + const SfxPoolItem& rPoolItem = pPattern->GetItem(ATTR_MERGE_FLAG); + const ScMergeFlagAttr& rMergeFlag = static_cast<const ScMergeFlagAttr&>(rPoolItem); + CPPUNIT_ASSERT(rMergeFlag.GetValue() & ScMF::ButtonPopup); + } + // Column button + { + const ScPatternAttr* pPattern = rDoc.GetPattern(9, 2, 0); + const SfxPoolItem& rPoolItem = pPattern->GetItem(ATTR_MERGE_FLAG); + const ScMergeFlagAttr& rMergeFlag = static_cast<const ScMergeFlagAttr&>(rPoolItem); + CPPUNIT_ASSERT(rMergeFlag.GetValue() & ScMF::ButtonPopup); + } + } +} + + ScFiltersTest::ScFiltersTest() : ScBootstrapFixture( "sc/qa/unit/data" ) { |