diff options
author | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-07-29 21:43:41 +0200 |
---|---|---|
committer | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-07-29 22:38:05 +0200 |
commit | d742c0019435d0bc90c9342492583636099a057f (patch) | |
tree | 0f7de068930a28408977abe85aac95452b9fb6cc /sd | |
parent | 14b211478d2eded45f3e966e579a50c41325c216 (diff) |
tdf#109223: PPTX: Vertical flip of child shape is not imported correctly
Group shape level vertical flip is not handled well. Recent handling
of group shape's transformation makes it hard to import this attribute,
but we can import the right text direction at least.
Change-Id: Ib9e39e3dcb28a95fabc61c13152a3f7296fbd4c3
Reviewed-on: https://gerrit.libreoffice.org/40554
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Diffstat (limited to 'sd')
-rwxr-xr-x | sd/qa/unit/data/pptx/tdf109223.pptx | bin | 0 -> 34023 bytes | |||
-rw-r--r-- | sd/qa/unit/import-tests.cxx | 34 |
2 files changed, 34 insertions, 0 deletions
diff --git a/sd/qa/unit/data/pptx/tdf109223.pptx b/sd/qa/unit/data/pptx/tdf109223.pptx Binary files differnew file mode 100755 index 000000000000..0f68796e8e14 --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf109223.pptx diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index 58681c8e4224..dab76b1dde7d 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -163,6 +163,7 @@ public: void testTdf108925(); void testTdf109067(); void testSmartArt1(); + void testTdf109223(); bool checkPattern(sd::DrawDocShellRef& rDocRef, int nShapeNumber, std::vector<sal_uInt8>& rExpected); void testPatternImport(); @@ -234,6 +235,7 @@ public: CPPUNIT_TEST(testTdf108925); CPPUNIT_TEST(testTdf109067); CPPUNIT_TEST(testSmartArt1); + CPPUNIT_TEST(testTdf109223); CPPUNIT_TEST_SUITE_END(); }; @@ -2254,6 +2256,38 @@ void SdImportTest::testSmartArt1() xDocShRef->DoClose(); } +void SdImportTest::testTdf109223() +{ + // In the test document flipV attribute is defined for a group shape + // This transformation is not applied on child shapes + // To make the text direction right at least I added an additional text rotation when parent shape is flipped. + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf109223.pptx"), PPTX); + uno::Reference< container::XIndexAccess > xGroupShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW); + uno::Reference< beans::XPropertySet > xShape(xGroupShape->getByIndex(1), uno::UNO_QUERY); + + // Check the shape text to make sure we test the right shape + OUString sText = uno::Reference<text::XTextRange>(xShape, uno::UNO_QUERY)->getString(); + CPPUNIT_ASSERT_EQUAL(OUString("Tested child shape"), sText); + + // Check the attribute inherited from parent shape + bool bAttributeFound = false; + uno::Sequence<beans::PropertyValue> aProps; + CPPUNIT_ASSERT(xShape->getPropertyValue("CustomShapeGeometry") >>= aProps); + for (sal_Int32 i = 0; i < aProps.getLength(); ++i) + { + const beans::PropertyValue& rProp = aProps[i]; + if (rProp.Name == "TextPreRotateAngle") + { + CPPUNIT_ASSERT_EQUAL(sal_Int32(180), rProp.Value.get<sal_Int32>()); + bAttributeFound = true; + break; + } + } + + CPPUNIT_ASSERT_EQUAL(true, bAttributeFound); + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); |