diff options
author | Zolnai Tamás <tamas.zolnai@collabora.com> | 2014-12-21 15:39:36 +0100 |
---|---|---|
committer | Zolnai Tamás <tamas.zolnai@collabora.com> | 2014-12-22 16:36:59 +0100 |
commit | 89206c472ecf18bfde6824cea8004921cd404365 (patch) | |
tree | fcea9dca04db68631d3028c79486b5ab6b147159 /sd | |
parent | 0c3d5fb0ad35ff7fc18917fc86fa58d9312fe3ae (diff) |
bnc#862510: PPTX import: Wrong text color inside shape
When theme index is 0, it means it's unset so we should not
apply that.
Change-Id: I62a9cd2a9b4c19f5acffc334d5e8263fe24fc8fd
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/unit/data/pptx/bnc862510_6.pptx | bin | 0 -> 48707 bytes | |||
-rw-r--r-- | sd/qa/unit/import-tests.cxx | 40 |
2 files changed, 40 insertions, 0 deletions
diff --git a/sd/qa/unit/data/pptx/bnc862510_6.pptx b/sd/qa/unit/data/pptx/bnc862510_6.pptx Binary files differnew file mode 100644 index 000000000000..fc5f008c5c32 --- /dev/null +++ b/sd/qa/unit/data/pptx/bnc862510_6.pptx diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index 1ee45bf677db..771746b0634d 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -89,6 +89,7 @@ public: void testBnc584721_4(); void testBnc904423(); void testShapeLineStyle(); + void testBnc862510_6(); CPPUNIT_TEST_SUITE(SdImportTest); CPPUNIT_TEST(testDocumentLayout); @@ -118,6 +119,7 @@ public: CPPUNIT_TEST(testBnc584721_4); CPPUNIT_TEST(testBnc904423); CPPUNIT_TEST(testShapeLineStyle); + CPPUNIT_TEST(testBnc862510_6); CPPUNIT_TEST_SUITE_END(); }; @@ -993,6 +995,44 @@ void SdImportTest::testShapeLineStyle() xDocShRef->DoClose(); } +void SdImportTest::testBnc862510_6() +{ + // Black text was imported instead of gray + ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc862510_6.pptx"), PPTX); + + uno::Reference< drawing::XDrawPagesSupplier > xDoc( + xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW ); + + uno::Reference< drawing::XDrawPage > xPage( + xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW ); + + uno::Reference< beans::XPropertySet > xShape( + xPage->getByIndex(0), uno::UNO_QUERY ); + CPPUNIT_ASSERT_MESSAGE( "no shape", xShape.is() ); + + // Get first paragraph of the text + uno::Reference<text::XText> xText = uno::Reference<text::XTextRange>(xShape, uno::UNO_QUERY)->getText(); + CPPUNIT_ASSERT_MESSAGE( "not a text shape", xText.is() ); + uno::Reference<container::XEnumerationAccess> paraEnumAccess; + paraEnumAccess.set(xText, uno::UNO_QUERY); + uno::Reference<container::XEnumeration> paraEnum = paraEnumAccess->createEnumeration(); + uno::Reference<text::XTextRange> const xParagraph(paraEnum->nextElement(), + uno::UNO_QUERY_THROW); + + // Get first run of the paragraph + uno::Reference<container::XEnumerationAccess> xRunEnumAccess(xParagraph, uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xRunEnum = xRunEnumAccess->createEnumeration(); + uno::Reference<text::XTextRange> xRun(xRunEnum->nextElement(), uno::UNO_QUERY); + uno::Reference< beans::XPropertySet > xPropSet( xRun, uno::UNO_QUERY_THROW ); + sal_Int32 nCharColor; + xPropSet->getPropertyValue( "CharColor" ) >>= nCharColor; + + // Color should be black + CPPUNIT_ASSERT_EQUAL( sal_Int32(0x8B8B8B), nCharColor ); + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); |