diff options
author | Tamás Zolnai <zolnaitamas2000@gmail.com> | 2016-11-27 15:35:53 +0100 |
---|---|---|
committer | Tamás Zolnai <tamas.zolnai@collabora.com> | 2016-11-27 15:24:35 +0000 |
commit | 7c5aaa254f444d54b9ebf6574f0ccd37af548ee5 (patch) | |
tree | 3bbd9ab2d1e76be350f720b04728d7c1c9ed3469 /sd/qa/unit | |
parent | 78547c337461a77522b4733908bcbc77e66b2657 (diff) |
tdf#104201: PPTX: Group solid fill is not imported
Change-Id: Iec273714108598d7017e73a9e7d384f8410d6ee1
Reviewed-on: https://gerrit.libreoffice.org/31263
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Diffstat (limited to 'sd/qa/unit')
-rwxr-xr-x | sd/qa/unit/data/pptx/tdf104201.pptx | bin | 0 -> 15979 bytes | |||
-rw-r--r-- | sd/qa/unit/import-tests.cxx | 36 |
2 files changed, 36 insertions, 0 deletions
diff --git a/sd/qa/unit/data/pptx/tdf104201.pptx b/sd/qa/unit/data/pptx/tdf104201.pptx Binary files differnew file mode 100755 index 000000000000..99a6532a6f39 --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf104201.pptx diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index 6c14bd5da3dc..c1c422410c95 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -130,6 +130,7 @@ public: void testTdf103792(); void testTdf103876(); void testTdf104015(); + void testTdf104201(); CPPUNIT_TEST_SUITE(SdImportTest); @@ -185,6 +186,7 @@ public: CPPUNIT_TEST(testTdf103792); CPPUNIT_TEST(testTdf103876); CPPUNIT_TEST(testTdf104015); + CPPUNIT_TEST(testTdf104201); CPPUNIT_TEST_SUITE_END(); }; @@ -1585,6 +1587,40 @@ void SdImportTest::testTdf104015() xDocShRef->DoClose(); } +void SdImportTest::testTdf104201() +{ + // Group shape properties did not overwrite the child shapes' fill + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104201.pptx"), PPTX); + + const SdrPage *pPage = GetPage(1, xDocShRef); + CPPUNIT_ASSERT_MESSAGE("No page found", pPage != nullptr); + + // First shape has red fill, but this should be overwritten by green group fill + { + SdrObject *const pObj = pPage->GetObj(0); + CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr); + const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>( + pObj->GetMergedItem(XATTR_FILLSTYLE)); + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue()); + const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>( + pObj->GetMergedItem(XATTR_FILLCOLOR)); + CPPUNIT_ASSERT_EQUAL(ColorData(0x00FF00), rColorItem.GetColorValue().GetColor()); + } + // Scond shape has blue fill, but this should be overwritten by green group fill + { + SdrObject *const pObj = pPage->GetObj(0); + CPPUNIT_ASSERT_MESSAGE("Wrong object", pObj != nullptr); + const XFillStyleItem& rStyleItem = dynamic_cast<const XFillStyleItem&>( + pObj->GetMergedItem(XATTR_FILLSTYLE)); + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItem.GetValue()); + const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>( + pObj->GetMergedItem(XATTR_FILLCOLOR)); + CPPUNIT_ASSERT_EQUAL(ColorData(0x00FF00), rColorItem.GetColorValue().GetColor()); + } + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); |