diff options
Diffstat (limited to 'sd/qa/unit')
-rw-r--r-- | sd/qa/unit/data/odp/tdf99224.odp | bin | 0 -> 11212 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests.cxx | 12 | ||||
-rw-r--r-- | sd/qa/unit/sdmodeltestbase.hxx | 16 |
3 files changed, 28 insertions, 0 deletions
diff --git a/sd/qa/unit/data/odp/tdf99224.odp b/sd/qa/unit/data/odp/tdf99224.odp Binary files differnew file mode 100644 index 000000000000..e52a000dec54 --- /dev/null +++ b/sd/qa/unit/data/odp/tdf99224.odp diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 4d1de955efc6..2387447dbdb9 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -112,6 +112,7 @@ public: void testBnc822341(); #endif void testTdf80224(); + void testTdf99224(); CPPUNIT_TEST_SUITE(SdExportTest); CPPUNIT_TEST(testFdo90607); @@ -148,6 +149,7 @@ public: CPPUNIT_TEST(testBnc822341); #endif CPPUNIT_TEST(testTdf80224); + CPPUNIT_TEST(testTdf99224); CPPUNIT_TEST_SUITE_END(); }; @@ -1238,6 +1240,16 @@ void SdExportTest::testTdf80224() xDocShRef->DoClose(); } +void SdExportTest::testTdf99224() +{ + sd::DrawDocShellRef xShell = loadURL(getURLFromSrc("/sd/qa/unit/data/odp/tdf99224.odp"), ODP); + xShell = saveAndReload(xShell, PPTX); + uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell); + // This was 0: the image with text was lost on export. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xPage->getCount()); + xShell->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/qa/unit/sdmodeltestbase.hxx b/sd/qa/unit/sdmodeltestbase.hxx index a5b136cc663f..717a5dbf87db 100644 --- a/sd/qa/unit/sdmodeltestbase.hxx +++ b/sd/qa/unit/sdmodeltestbase.hxx @@ -250,6 +250,22 @@ protected: } xDocShRef->DoClose(); } + + uno::Reference< drawing::XDrawPagesSupplier > getDoc( sd::DrawDocShellRef xDocShRef ) + { + uno::Reference< drawing::XDrawPagesSupplier > xDoc ( + xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT_MESSAGE( "no document", xDoc.is() ); + return xDoc; + } + + uno::Reference< drawing::XDrawPage > getPage( int nPage, sd::DrawDocShellRef xDocShRef ) + { + uno::Reference< drawing::XDrawPagesSupplier > xDoc( getDoc( xDocShRef ) ); + uno::Reference< drawing::XDrawPage > xPage( xDoc->getDrawPages()->getByIndex( nPage ), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT_MESSAGE( "no page", xPage.is() ); + return xPage; + } }; #endif |