diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2018-01-14 14:45:58 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2018-01-14 14:45:58 +0100 |
commit | 3fe8a90c164ad4b8e5f0e1998c1cf59186658362 (patch) | |
tree | 69a93f1a7863481fe7f2d91d350cb0b9ac5f466b /sd | |
parent | 640a7c791b4665c16be7ad8f5f7dda30dcc88eda (diff) |
change testN821567 to work on more import/export filters
- rename the test to something sensible
- comment the test use case
- change the test to cover more import/export filters
Change-Id: Ib9be1148d239d99e70e62efaafb69daf25c72164
Reviewed-on: https://gerrit.libreoffice.org/47852
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/unit/export-tests.cxx | 79 |
1 files changed, 61 insertions, 18 deletions
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 44099cbac91b..8bc274400520 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -76,7 +76,7 @@ using namespace css::animations; class SdExportTest : public SdModelTestBaseXML { public: - void testN821567(); + void testBackgroundImage(); void testMediaEmbedding(); void testFdo84043(); void testTdf97630(); @@ -96,7 +96,7 @@ public: CPPUNIT_TEST_SUITE(SdExportTest); - CPPUNIT_TEST(testN821567); + CPPUNIT_TEST(testBackgroundImage); CPPUNIT_TEST(testMediaEmbedding); CPPUNIT_TEST(testFdo84043); CPPUNIT_TEST(testTdf97630); @@ -144,27 +144,70 @@ public: }; -void SdExportTest::testN821567() +void SdExportTest::testBackgroundImage() { - OUString bgImage; - ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n821567.pptx"), PPTX ); + // Initial bug: N821567 - xDocShRef = saveAndReload( xDocShRef.get(), ODP ); - uno::Reference< drawing::XDrawPagesSupplier > xDoc( - xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW ); - CPPUNIT_ASSERT_EQUAL_MESSAGE( "not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount() ); - uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) ); + // Check if Slide background image is imported from PPTX and exported to PPTX, PPT and ODP correctly - uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY ); - uno::Any aAny = xPropSet->getPropertyValue( "Background" ); - if(aAny.hasValue()) + OUString bgImageName; + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/n821567.pptx"), PPTX); + + // Check that imported background image from PPTX exists + { + uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT_EQUAL_MESSAGE("not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount()); + uno::Reference<drawing::XDrawPage> xPage(getPage(0, xDocShRef)); + + uno::Reference<beans::XPropertySet> xPropertySet(xPage, uno::UNO_QUERY); + uno::Any aAny = xPropertySet->getPropertyValue("Background"); + if (aAny.has<uno::Reference<beans::XPropertySet>>()) + { + uno::Reference<beans::XPropertySet> xBackgroundPropSet; + aAny >>= xBackgroundPropSet; + aAny = xBackgroundPropSet->getPropertyValue("FillBitmapName"); + aAny >>= bgImageName; + } + CPPUNIT_ASSERT_MESSAGE("Slide Background is not imported from PPTX correctly", !bgImageName.isEmpty()); + } + + // Save as PPTX, reload and check again so we make sure exporting to PPTX is working correctly + { + xDocShRef = saveAndReload(xDocShRef.get(), PPTX); + uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT_EQUAL_MESSAGE("not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount()); + uno::Reference<drawing::XDrawPage> xPage(getPage(0, xDocShRef)); + + uno::Reference<beans::XPropertySet> xPropertySet(xPage, uno::UNO_QUERY); + uno::Any aAny = xPropertySet->getPropertyValue("Background"); + if (aAny.hasValue()) + { + uno::Reference<beans::XPropertySet> xBackgroundPropSet; + aAny >>= xBackgroundPropSet; + aAny = xBackgroundPropSet->getPropertyValue("FillBitmapName"); + aAny >>= bgImageName; + } + CPPUNIT_ASSERT_MESSAGE("Slide Background is not exported to PPTX correctly", !bgImageName.isEmpty()); + } + + // Save as ODP, reload and check again so we make sure exporting and importing to ODP is working correctly { - uno::Reference< beans::XPropertySet > aXBackgroundPropSet; - aAny >>= aXBackgroundPropSet; - aAny = aXBackgroundPropSet->getPropertyValue( "FillBitmapName" ); - aAny >>= bgImage; + xDocShRef = saveAndReload(xDocShRef.get(), ODP); + uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT_EQUAL_MESSAGE("not exactly one page", static_cast<sal_Int32>(1), xDoc->getDrawPages()->getCount()); + uno::Reference<drawing::XDrawPage> xPage(getPage(0, xDocShRef)); + + uno::Reference<beans::XPropertySet> xPropertySet(xPage, uno::UNO_QUERY); + uno::Any aAny = xPropertySet->getPropertyValue("Background"); + if (aAny.hasValue()) + { + uno::Reference<beans::XPropertySet> xBackgroundPropSet; + aAny >>= xBackgroundPropSet; + aAny = xBackgroundPropSet->getPropertyValue("FillBitmapName"); + aAny >>= bgImageName; + } + CPPUNIT_ASSERT_MESSAGE("Slide Background is not exported or imported to ODP correctly", !bgImageName.isEmpty()); } - CPPUNIT_ASSERT_MESSAGE("Slide Background is not exported properly", !bgImage.isEmpty()); xDocShRef->DoClose(); } |