sd/import_setup.mk                   |    1 
 sd/qa/unit/import-tests-smartart.cxx |  377 ++++++++++-------------------------
 2 files changed, 110 insertions(+), 268 deletions(-)

New commits:
commit a4c8658964c129a00aea151da00db6b447b7ffb3
Author:     Xisco Fauli <[email protected]>
AuthorDate: Mon Oct 31 11:33:56 2022 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Mon Oct 31 13:48:42 2022 +0100

    CppunitTest_sd_import_tests-smartart: inherit from UnoApiTest
    
    Change-Id: I4ef95f3899cc67aaba0d9d657341890b3cb73fc8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142069
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sd/import_setup.mk b/sd/import_setup.mk
index 3fa7ac740cc2..f4788040d3fa 100644
--- a/sd/import_setup.mk
+++ b/sd/import_setup.mk
@@ -44,6 +44,7 @@ $(eval $(call 
gb_CppunitTest_use_libraries,sd_import_tests$(1), \
     sd \
     sfx \
     sot \
+    subsequenttest \
     svl \
     svt \
     svx \
diff --git a/sd/qa/unit/import-tests-smartart.cxx 
b/sd/qa/unit/import-tests-smartart.cxx
index 9dda19f31a65..4658cde73244 100644
--- a/sd/qa/unit/import-tests-smartart.cxx
+++ b/sd/qa/unit/import-tests-smartart.cxx
@@ -65,9 +65,14 @@ uno::Reference<drawing::XShape> findChildShapeByText(const 
uno::Reference<drawin
 }
 }
 
-class SdImportTestSmartArt : public SdModelTestBase
+class SdImportTestSmartArt : public SdUnoApiTest
 {
 public:
+    SdImportTestSmartArt()
+        : SdUnoApiTest("/sd/qa/unit/data/")
+    {
+    }
+
     void testBase();
     void testChildren();
     void testText();
@@ -195,10 +200,8 @@ public:
 
 void SdImportTestSmartArt::testBase()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart1.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart1.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(6), xShapeGroup->getCount());
 
     uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
@@ -259,16 +262,12 @@ void SdImportTestSmartArt::testBase()
     CPPUNIT_ASSERT(xShape2->getPosition().X < xShape3->getPosition().X);
     CPPUNIT_ASSERT((xShape2->getPosition().X < xShape4->getPosition().X));
     CPPUNIT_ASSERT((xShape3->getPosition().X > xShape4->getPosition().X));
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testChildren()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-children.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-children.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xShapeGroup->getCount());
 
     uno::Reference<drawing::XShapes> xShapeGroup0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
@@ -298,16 +297,12 @@ void SdImportTestSmartArt::testChildren()
     uno::Reference<drawing::XShapes> xChildZ(xChildren1->getByIndex(1), 
uno::UNO_QUERY_THROW);
     uno::Reference<text::XText> xTextZ(xChildZ->getByIndex(0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(OUString("z"), xTextZ->getString());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testText()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-text.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-text.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     uno::Reference<drawing::XShapes> xShapeGroup2(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
 
     uno::Reference<text::XText> xText0(xShapeGroup2->getByIndex(0), 
uno::UNO_QUERY_THROW);
@@ -315,16 +310,12 @@ void SdImportTestSmartArt::testText()
 
     uno::Reference<text::XText> xText1(xShapeGroup2->getByIndex(1), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(OUString("test"), xText1->getString());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testCnt()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-cnt.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-cnt.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     sal_Int32 nCount = xShapeGroup->getCount();
     sal_Int32 nCorrect = 0;
     for (sal_Int32 i = 0; i < nCount; i++)
@@ -334,32 +325,24 @@ void SdImportTestSmartArt::testCnt()
             nCorrect++;
     }
     CPPUNIT_ASSERT_EQUAL(sal_Int32(3), nCorrect);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testDir()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-dir.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-dir.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xShapeGroup->getCount());
 
     uno::Reference<drawing::XShape> xShape0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
     uno::Reference<drawing::XShape> xShape1(xShapeGroup->getByIndex(2), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT(xShape0->getPosition().X > xShape1->getPosition().X);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf148665()
 {
     // Without the fix in place, this test would have crashed at import time
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf148665.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/tdf148665.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xShapeGroup->getCount());
 
     uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
@@ -368,16 +351,12 @@ void SdImportTestSmartArt::testTdf148665()
     CPPUNIT_ASSERT_EQUAL(OUString("Susu"), xText1->getString());
     uno::Reference<text::XText> xText2(xShapeGroup->getByIndex(3), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(OUString("Sasa Haha"), xText2->getString());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf148921()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf148921.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/tdf148921.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xShapeGroup->getCount());
 
     uno::Reference<drawing::XShapes> xShapeGroup2(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
@@ -394,16 +373,12 @@ void SdImportTestSmartArt::testTdf148921()
     CPPUNIT_ASSERT(xShape0->getPosition().Y < xShape1->getPosition().Y);
     CPPUNIT_ASSERT(xShape0->getSize().Height > xShape1->getSize().Height);
     CPPUNIT_ASSERT(xShape0->getSize().Width > xShape1->getSize().Width);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testMaxDepth()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-maxdepth.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-maxdepth.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xShapeGroup->getCount());
 
     uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
@@ -415,16 +390,12 @@ void SdImportTestSmartArt::testMaxDepth()
     uno::Reference<drawing::XShape> xShape1(xShapeGroup->getByIndex(2), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(xShape0->getPosition().Y,
                          xShape1->getPosition().Y); // Confirms shapes are in 
same Y axis-level.
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testRotation()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-rotation.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-rotation.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
 
     uno::Reference<beans::XPropertySet> xShape0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), 
xShape0->getPropertyValue("RotateAngle").get<sal_Int32>());
@@ -436,19 +407,16 @@ void SdImportTestSmartArt::testRotation()
     uno::Reference<beans::XPropertySet> xShape2(xShapeGroup->getByIndex(3), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(12000),
                          
xShape2->getPropertyValue("RotateAngle").get<sal_Int32>());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTextAutoRotation()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-autoTxRot.pptx"), 
PPTX);
+    loadFromURL(u"pptx/smartart-autoTxRot.pptx");
 
     auto testText = [&](int pageNo, sal_Int32 txtNo, const OUString& expTx, 
sal_Int32 expShRot,
                         sal_Int32 expTxRot) {
         OString msgText = "Page: " + OString::number(pageNo) + " text: " + 
OString::number(txtNo);
-        uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 
pageNo, xDocShRef),
+        uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 
pageNo),
                                                      uno::UNO_QUERY_THROW);
 
         txtNo++; //skip background
@@ -526,8 +494,6 @@ void SdImportTestSmartArt::testTextAutoRotation()
     testText(2, 13, "n", 6750, 0);
     testText(2, 14, "o", 4500, 0);
     testText(2, 15, "p", 2250, 0);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testBasicProcess()
@@ -544,9 +510,8 @@ void SdImportTestSmartArt::testPyramidOneChild()
 {
     // Load a document with a pyra algorithm in it.
     // Without the accompanying fix in place, this test would have crashed.
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-pyramid-1child.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-pyramid-1child.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<text::XTextRange> xText(getChildShape(getChildShape(xGroup, 
1), 1),
                                            uno::UNO_QUERY);
     // Verify that the text of the only child is imported correctly.
@@ -555,10 +520,8 @@ void SdImportTestSmartArt::testPyramidOneChild()
 
 void SdImportTestSmartArt::testChevron()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-chevron.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-chevron.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xShapeGroup->getCount());
 
     uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
@@ -576,15 +539,12 @@ void SdImportTestSmartArt::testChevron()
     CPPUNIT_ASSERT(xShape1->getPosition().X < xShape2->getPosition().X);
     CPPUNIT_ASSERT_EQUAL(xShape0->getPosition().Y, xShape1->getPosition().Y);
     CPPUNIT_ASSERT_EQUAL(xShape1->getPosition().Y, xShape2->getPosition().Y);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testCycle()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-cycle.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-cycle.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     // 11 children: background, 5 shapes, 5 connectors
@@ -639,10 +599,8 @@ void SdImportTestSmartArt::testInvertedPyramid()
 void SdImportTestSmartArt::testMultidirectional()
 {
     // similar document as cycle, but arrows are pointing in both directions
-
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-multidirectional.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-multidirectional.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     // 7 children: background, 3 shapes, 3 connectors
@@ -679,11 +637,8 @@ void SdImportTestSmartArt::testSegmentedCycle()
 
 void SdImportTestSmartArt::testBaseRtoL()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-rightoleftblockdiagram.pptx"),
-        PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-rightoleftblockdiagram.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(sal_Int32(6), xShapeGroup->getCount());
 
     uno::Reference<text::XText> xText0(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY_THROW);
@@ -744,17 +699,12 @@ void SdImportTestSmartArt::testBaseRtoL()
     CPPUNIT_ASSERT(xShape2->getPosition().X > xShape3->getPosition().X);
     CPPUNIT_ASSERT((xShape2->getPosition().X > xShape4->getPosition().X));
     CPPUNIT_ASSERT((xShape3->getPosition().X < xShape4->getPosition().X));
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testVerticalBoxList()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-vertical-box-list.pptx"),
-        PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/smartart-vertical-box-list.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     // Without the accompanying fix in place, this test would have failed with
     // 'actual: 0'.
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xShapeGroup->getCount());
@@ -781,16 +731,12 @@ void SdImportTestSmartArt::testVerticalBoxList()
     // 'Expected greater than: 25656, Actual  : 21165'.
     CPPUNIT_ASSERT_GREATER(xParentText->getPosition().X + 
xParentText->getSize().Width,
                            xChildText->getPosition().X + 
xChildText->getSize().Width);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testVerticalBracketList()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/vertical-bracket-list.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef),
-                                                 uno::UNO_QUERY_THROW);
+    loadFromURL(u"pptx/vertical-bracket-list.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY_THROW);
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xShapeGroup->getCount());
 
     uno::Reference<drawing::XShapes> xFirstChild(xShapeGroup->getByIndex(1), 
uno::UNO_QUERY);
@@ -798,15 +744,12 @@ void SdImportTestSmartArt::testVerticalBracketList()
     // Without the accompanying fix in place, this test would have failed with
     // 'actual: 2', i.e. one child shape (with its "A" text) was missing.
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xFirstChild->getCount());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTableList()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/table-list.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0, 
xDocShRef), uno::UNO_QUERY);
+    loadFromURL(u"pptx/table-list.pptx");
+    uno::Reference<drawing::XShapes> xShapeGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xShapeGroup.is());
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xShapeGroup->getCount());
 
@@ -830,15 +773,12 @@ void SdImportTestSmartArt::testTableList()
     // 'Expected less than: 100, Actual  : 22014', i.e. the second child was
     // shifted to the right too much.
     CPPUNIT_ASSERT_LESS(100, abs(nChild2Right - nParentRight));
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testAccentProcess()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-accent-process.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-accent-process.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
     // 3 children: first pair, connector, second pair.
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), xGroup->getCount());
@@ -921,17 +861,12 @@ void SdImportTestSmartArt::testAccentProcess()
     // 'Expected less than: 12700; Actual  : 18540', i.e. the "b" and "c"
     // shapes overlapped.
     CPPUNIT_ASSERT_LESS(nSecondParentLeft, nFirstChildRight);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testContinuousBlockProcess()
 {
-    sd::DrawDocShellRef xDocShRef
-        = loadURL(m_directories.getURLFromSrc(
-                      
u"/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx"),
-                  PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-continuous-block-process.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
     // 3 children: diagram background, background arrow, foreground.
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xGroup->getCount());
@@ -951,16 +886,13 @@ void SdImportTestSmartArt::testContinuousBlockProcess()
     // need to divide that to 1, 0.5, 1, 0.5 and 1 units), while the old value
     // was 4703 and the new one is 5461.
     CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(5000), 
xAShape->getSize().Width);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testOrgChart()
 {
     // Simple org chart with 1 manager and 1 employee only.
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-org-chart.pptx"), 
PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-org-chart.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     uno::Reference<text::XText> xManager(
@@ -1078,15 +1010,12 @@ void SdImportTestSmartArt::testOrgChart()
     // Without the accompanying fix in place, this test would have failed: an
     // employee was exactly the third of the total height, without any spacing.
     CPPUNIT_ASSERT_LESS(xGroup->getSize().Height / 3, aEmployeeSize.Height);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testCycleMatrix()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-cycle-matrix.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-cycle-matrix.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     // Without the accompanying fix in place, this test would have failed: the 
height was 12162,
@@ -1169,15 +1098,12 @@ void SdImportTestSmartArt::testCycleMatrix()
     uno::Reference<drawing::XShape> xA1Shape(xA1, uno::UNO_QUERY);
     CPPUNIT_ASSERT(xA1Shape.is());
     CPPUNIT_ASSERT_EQUAL(xA1Shape->getSize().Height, 
xA1Shape->getSize().Width);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testPictureStrip()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-picture-strip.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-picture-strip.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     uno::Reference<beans::XPropertySet> 
xFirstImage(getChildShape(getChildShape(xGroup, 1), 1),
@@ -1223,7 +1149,7 @@ void SdImportTestSmartArt::testPictureStrip()
     // Make sure that the title shape doesn't overlap with the diagram.
     // Note that real "no overlap" is asserted here, though in fact what we 
want is a less strict
     // condition: that no text part of the title shape and the diagram 
overlaps.
-    uno::Reference<drawing::XShape> xTitle(getShapeFromPage(1, 0, xDocShRef), 
uno::UNO_QUERY);
+    uno::Reference<drawing::XShape> xTitle(getShapeFromPage(1, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xTitle.is());
     // Without the accompanying fix in place, this test would have failed with 
'Expected greater
     // than: 2873; Actual  : 2320', i.e. the title shape and the diagram 
overlapped.
@@ -1250,15 +1176,12 @@ void SdImportTestSmartArt::testPictureStrip()
     // Without the accompanying fix in place, this test would have failed: bad 
width was 16932, good
     // width is 12540, but let's accept 12541 as well.
     CPPUNIT_ASSERT_LESSEQUAL(aFirstPairSize.Height * 3 + 1, 
aFirstPairSize.Width);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testInteropGrabBag()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-interopgrabbag.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-interopgrabbag.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     uno::Reference<beans::XPropertySet> xPropertySet(xGroup, 
uno::UNO_QUERY_THROW);
@@ -1270,15 +1193,12 @@ void SdImportTestSmartArt::testInteropGrabBag()
     CPPUNIT_ASSERT(aGrabBag.find("OOXStyle") != aGrabBag.end());
     CPPUNIT_ASSERT(aGrabBag.find("OOXColor") != aGrabBag.end());
     CPPUNIT_ASSERT(aGrabBag.find("OOXDrawing") != aGrabBag.end());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testBackground()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-background.pptx"), 
PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-background.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     // background should fill whole diagram
@@ -1305,19 +1225,14 @@ void SdImportTestSmartArt::testBackground()
     bool bSizeProtect = false;
     xPropertySet->getPropertyValue("SizeProtect") >>= bSizeProtect;
     CPPUNIT_ASSERT_EQUAL(true, bSizeProtect);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testBackgroundDrawingmlFallback()
 {
     // same as testBackground, but test file contains drawingML fallback
 
-    sd::DrawDocShellRef xDocShRef
-        = loadURL(m_directories.getURLFromSrc(
-                      
u"/sd/qa/unit/data/pptx/smartart-background-drawingml-fallback.pptx"),
-                  PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-background-drawingml-fallback.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     // background should fill whole diagram
@@ -1344,15 +1259,12 @@ void 
SdImportTestSmartArt::testBackgroundDrawingmlFallback()
     bool bSizeProtect = false;
     xPropertySet->getPropertyValue("SizeProtect") >>= bSizeProtect;
     CPPUNIT_ASSERT_EQUAL(true, bSizeProtect);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testCenterCycle()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-center-cycle.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-center-cycle.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     uno::Reference<drawing::XShapes> xGroupNested(xGroup->getByIndex(1), 
uno::UNO_QUERY);
@@ -1372,16 +1284,13 @@ void SdImportTestSmartArt::testCenterCycle()
     CPPUNIT_ASSERT_GREATER(xShapeCenter->getPosition().Y, 
xShapeB->getPosition().Y);
     CPPUNIT_ASSERT_LESS(xShapeCenter->getPosition().X, 
xShapeC->getPosition().X);
     CPPUNIT_ASSERT_GREATER(xShapeCenter->getPosition().Y, 
xShapeC->getPosition().Y);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testFontSize()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-font-size.pptx"), 
PPTX);
+    loadFromURL(u"pptx/smartart-font-size.pptx");
 
-    uno::Reference<drawing::XShapes> xGroup1(getShapeFromPage(0, 0, 
xDocShRef), uno::UNO_QUERY);
+    uno::Reference<drawing::XShapes> xGroup1(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<beans::XPropertySet> xShape1(xGroup1->getByIndex(1), 
uno::UNO_QUERY);
     uno::Reference<text::XTextRange> xParagraph1(getParagraphFromShape(0, 
xShape1));
     uno::Reference<text::XTextRange> xRun1(getRunFromParagraph(0, 
xParagraph1));
@@ -1389,7 +1298,7 @@ void SdImportTestSmartArt::testFontSize()
     double fFontSize1 = 
xPropSet1->getPropertyValue("CharHeight").get<double>();
     CPPUNIT_ASSERT_DOUBLES_EQUAL(65.0, fFontSize1, 0.01);
 
-    uno::Reference<drawing::XShapes> xGroup2(getShapeFromPage(1, 0, 
xDocShRef), uno::UNO_QUERY);
+    uno::Reference<drawing::XShapes> xGroup2(getShapeFromPage(1, 0), 
uno::UNO_QUERY);
     uno::Reference<beans::XPropertySet> xShape2(xGroup2->getByIndex(1), 
uno::UNO_QUERY);
     uno::Reference<text::XTextRange> xParagraph2(getParagraphFromShape(0, 
xShape2));
     uno::Reference<text::XTextRange> xRun2(getRunFromParagraph(0, 
xParagraph2));
@@ -1397,21 +1306,17 @@ void SdImportTestSmartArt::testFontSize()
     double fFontSize2 = 
xPropSet2->getPropertyValue("CharHeight").get<double>();
     CPPUNIT_ASSERT_EQUAL(32.0, fFontSize2);
 
-    uno::Reference<drawing::XShapes> xGroup3(getShapeFromPage(2, 0, 
xDocShRef), uno::UNO_QUERY);
+    uno::Reference<drawing::XShapes> xGroup3(getShapeFromPage(2, 0), 
uno::UNO_QUERY);
     uno::Reference<beans::XPropertySet> xShape3(xGroup3->getByIndex(1), 
uno::UNO_QUERY);
     drawing::TextFitToSizeType eTextFitToSize = 
drawing::TextFitToSizeType_NONE;
     xShape3->getPropertyValue("TextFitToSize") >>= eTextFitToSize;
     CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_AUTOFIT, eTextFitToSize);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testVerticalBlockList()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-vertical-block-list.pptx"),
-        PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-vertical-block-list.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     uno::Reference<drawing::XShapes> xGroup1(xGroup->getByIndex(1), 
uno::UNO_QUERY);
@@ -1448,15 +1353,12 @@ void SdImportTestSmartArt::testVerticalBlockList()
     uno::Reference<drawing::XShape> xGroupShape(xGroup, uno::UNO_QUERY);
     CPPUNIT_ASSERT_EQUAL(xGroupShape->getPosition().Y + 
xGroupShape->getSize().Height,
                          xShapeEmpty->getPosition().Y + 
xShapeEmpty->getSize().Height);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testMissingBulletAndIndent()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-missing-bullet.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-missing-bullet.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShapes> xGroup1(xGroup->getByIndex(2), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShapes> xGroup2(xGroup1->getByIndex(0), 
uno::UNO_QUERY);
     uno::Reference<text::XText> xText(xGroup2->getByIndex(0), uno::UNO_QUERY);
@@ -1487,9 +1389,8 @@ void SdImportTestSmartArt::testMissingBulletAndIndent()
 
 void SdImportTestSmartArt::testBulletList()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-bullet-list.pptx"),
 PPTX);
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-bullet-list.pptx");
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT(xGroup.is());
 
     uno::Reference<text::XText> xText(xGroup->getByIndex(1), uno::UNO_QUERY);
@@ -1509,16 +1410,13 @@ void SdImportTestSmartArt::testBulletList()
                                                     uno::UNO_QUERY);
     comphelper::SequenceAsHashMap aRule2(xRules2->getByIndex(2));
     CPPUNIT_ASSERT_EQUAL(OUString(u"•"), aRule2["BulletChar"].get<OUString>());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testRecursion()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-recursion.pptx"), 
PPTX);
+    loadFromURL(u"pptx/smartart-recursion.pptx");
 
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShapes> xGroup1(xGroup->getByIndex(1), 
uno::UNO_QUERY);
 
     uno::Reference<drawing::XShapes> xGroupA(xGroup1->getByIndex(0), 
uno::UNO_QUERY);
@@ -1553,8 +1451,6 @@ void SdImportTestSmartArt::testRecursion()
     uno::Reference<text::XText> xTextC3(
         getChildShape(getChildShape(getChildShape(xGroupC3, 0), 0), 0), 
uno::UNO_QUERY);
     CPPUNIT_ASSERT_EQUAL(OUString("C3"), xTextC3->getString());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testDataFollow()
@@ -1563,10 +1459,9 @@ void SdImportTestSmartArt::testDataFollow()
     // different variables are set for two presentation points with the same 
name
     // they should be layouted differently - one horizontally and one 
vertically
 
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-data-follow.pptx"),
 PPTX);
+    loadFromURL(u"pptx/smartart-data-follow.pptx");
 
-    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
 
     uno::Reference<drawing::XShapes> xGroupLeft(xGroup->getByIndex(1), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShape> xGroupB(xGroupLeft->getByIndex(1), 
uno::UNO_QUERY);
@@ -1597,15 +1492,12 @@ void SdImportTestSmartArt::testDataFollow()
     CPPUNIT_ASSERT_EQUAL(xShapeC1->getPosition().X, xShapeC2->getPosition().X);
     CPPUNIT_ASSERT_GREATEREQUAL(xShapeC1->getPosition().Y + 
xShapeC1->getSize().Height,
                                 xShapeC2->getPosition().Y);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testOrgChart2()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-org-chart2.pptx"), 
PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-org-chart2.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
 
     uno::Reference<drawing::XShape> xShapeC1 = findChildShapeByText(xGroup, 
"C1");
     uno::Reference<drawing::XShape> xShapeC2 = findChildShapeByText(xGroup, 
"C2");
@@ -1639,31 +1531,25 @@ void SdImportTestSmartArt::testOrgChart2()
 
     CPPUNIT_ASSERT_GREATEREQUAL(xShapeD1->getPosition().X + 
xShapeD1->getSize().Width,
                                 xShapeC4->getPosition().X);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf131553()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf131553.pptx"), 
PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf131553.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
 
-    const SdrPage* pPage = GetPage(1, xDocShRef);
+    const SdrPage* pPage = GetPage(1);
     const SdrObjGroup* pObjGroup = 
dynamic_cast<SdrObjGroup*>(pPage->GetObj(0));
     CPPUNIT_ASSERT(pObjGroup);
     const SdrObject* pObj = pObjGroup->GetSubList()->GetObj(1);
     CPPUNIT_ASSERT_MESSAGE("no object", pObj != nullptr);
     CPPUNIT_ASSERT_EQUAL(SdrObjKind::OLE2, pObj->GetObjIdentifier());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testFillColorList()
 {
-    sd::DrawDocShellRef xDocShRef
-        = 
loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/fill-color-list.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/fill-color-list.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShape> xShape = 
getChildShape(getChildShape(xGroup, 1), 0);
     uno::Reference<beans::XPropertySet> xPropertySet(xShape, 
uno::UNO_QUERY_THROW);
     Color nFillColor;
@@ -1690,32 +1576,26 @@ void SdImportTestSmartArt::testFillColorList()
     sal_Int32 nGroupTop = xGroup->getPosition().Y;
     sal_Int32 nShapeTop = xShape->getPosition().Y;
     CPPUNIT_ASSERT_GREATER(nGroupTop, nShapeTop);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf134221()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-tdf134221.pptx"), 
PPTX);
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/smartart-tdf134221.pptx");
+    saveAndReload("Impress Office Open XML");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShape> xShapeB = findChildShapeByText(xGroup, 
"B");
     CPPUNIT_ASSERT(xShapeB.is());
     uno::Reference<beans::XPropertySet> xTxtProps(xShapeB, 
uno::UNO_QUERY_THROW);
 
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-248),
                          
xTxtProps->getPropertyValue("TextUpperDistance").get<sal_Int32>());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testLinearRule()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-linear-rule.pptx"),
 PPTX);
+    loadFromURL(u"pptx/smartart-linear-rule.pptx");
 
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // Last child, then first child inside that.
     // It is first as backgroundArrow is last, but chOrder="t" is set to 
reverse the order.
     uno::Reference<drawing::XShape> xShape = 
getChildShape(getChildShape(xGroup, 1), 0);
@@ -1744,16 +1624,13 @@ void SdImportTestSmartArt::testLinearRule()
     // - Actual  : 20183
     // i.e. the arrow height was larger than the canvas given to the smartart 
on slide 1.
     CPPUNIT_ASSERT_LESSEQUAL(static_cast<sal_Int32>(10092), 
xShape->getSize().Height);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testLinearRuleVert()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-linear-rule-vert.pptx"),
 PPTX);
+    loadFromURL(u"pptx/smartart-linear-rule-vert.pptx");
 
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // Get the P1 shape.
     uno::Reference<drawing::XShape> xShape = 
getChildShape(getChildShape(xGroup, 1), 1);
     uno::Reference<text::XTextRange> xShapeText(xShape, uno::UNO_QUERY);
@@ -1765,16 +1642,13 @@ void SdImportTestSmartArt::testLinearRuleVert()
     // i.e. the first item on the vertical linear layout used ~all space, the 
other items were not
     // visible.
     CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2020), 
xShape->getSize().Height);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testAutofitSync()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-autofit-sync.pptx"),
 PPTX);
+    loadFromURL(u"pptx/smartart-autofit-sync.pptx");
 
-    uno::Reference<drawing::XShape> xDiagram(getShapeFromPage(0, 0, 
xDocShRef), uno::UNO_QUERY);
+    uno::Reference<drawing::XShape> xDiagram(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShape> xMiddle = getChildShape(xDiagram, 2);
     uno::Reference<beans::XPropertySet> 
xFirstInner(getChildShape(getChildShape(xMiddle, 0), 0),
                                                     uno::UNO_QUERY);
@@ -1804,18 +1678,15 @@ void SdImportTestSmartArt::testAutofitSync()
     drawing::TextFitToSizeType eType{};
     CPPUNIT_ASSERT(xThirdInner->getPropertyValue("TextFitToSize") >>= eType);
     CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, eType);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testSnakeRows()
 {
     // Load a smartart which contains a snake algorithm.
     // The expected layout of the 6 children is a 3x2 grid.
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-snake-rows.pptx"), 
PPTX);
+    loadFromURL(u"pptx/smartart-snake-rows.pptx");
 
-    uno::Reference<drawing::XShapes> xDiagram(getShapeFromPage(0, 0, 
xDocShRef), uno::UNO_QUERY);
+    uno::Reference<drawing::XShapes> xDiagram(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // Collect position of the background and the real child shapes. First row 
and background has
     // the same top position, unless some unexpected spacing happens, since 
this is a
     // "left-to-right, then top-to-bottom" snake direction.
@@ -1831,19 +1702,15 @@ void SdImportTestSmartArt::testSnakeRows()
     // - Actual  : 3
     // i.e. an unwanted row appeared.
     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aYPositions.size());
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testCompositeInferRight()
 {
     // Load a smartart which contains a composite algorithm.
     // One constraint says that the left of the text should be the right of 
the image.
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/smartart-composite-infer-right.pptx"),
-        PPTX);
+    loadFromURL(u"pptx/smartart-composite-infer-right.pptx");
 
-    uno::Reference<drawing::XShape> xDiagram(getShapeFromPage(0, 0, 
xDocShRef), uno::UNO_QUERY);
+    uno::Reference<drawing::XShape> xDiagram(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     uno::Reference<drawing::XShape> xMiddle = getChildShape(xDiagram, 1);
     uno::Reference<drawing::XShape> xImage = getChildShape(xMiddle, 1);
     uno::Reference<drawing::XShape> xText = getChildShape(xMiddle, 2);
@@ -1855,16 +1722,13 @@ void SdImportTestSmartArt::testCompositeInferRight()
     // - Actual  : 2430
     // i.e. the text was overlapping with the image.
     CPPUNIT_ASSERT_GREATER(nRightOfImage, nLeftOfText);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf149551Pie()
 {
     // The file contains a diagram of type "Basic Pie".
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf149551_SmartArt_Pie.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf149551_SmartArt_Pie.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // shape at index 0 is the background shape
     uno::Reference<drawing::XShape> xShape = getChildShape(xGroup, 1);
     CPPUNIT_ASSERT(xShape.is());
@@ -1879,17 +1743,13 @@ void SdImportTestSmartArt::testTdf149551Pie()
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(5073), sal_Int32(aTextRect.Top()), 
4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(15627), 
sal_Int32(aTextRect.Right()), 4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(7990), 
sal_Int32(aTextRect.Bottom()), 4);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf149551Pyramid()
 {
     // The file contains a diagram of type "Basic Pyramid".
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf149551_SmartArt_Pyramid.pptx"),
-        PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf149551_SmartArt_Pyramid.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // shape at index 0 is the background shape
     uno::Reference<drawing::XShape> xShape = getChildShape(xGroup, 1);
     CPPUNIT_ASSERT(xShape.is());
@@ -1904,16 +1764,13 @@ void SdImportTestSmartArt::testTdf149551Pyramid()
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(1515), sal_Int32(aTextRect.Top()), 
4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(16410), 
sal_Int32(aTextRect.Right()), 4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(7370), 
sal_Int32(aTextRect.Bottom()), 4);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf149551Venn()
 {
     // The file contains a diagram of type "Stacked Venn".
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf149551_SmartArt_Venn.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf149551_SmartArt_Venn.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // shape at index 0 is the background shape
     uno::Reference<drawing::XShape> xShape = getChildShape(xGroup, 1);
     CPPUNIT_ASSERT(xShape.is());
@@ -1928,16 +1785,13 @@ void SdImportTestSmartArt::testTdf149551Venn()
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(1834), sal_Int32(aTextRect.Top()), 
4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(15229), 
sal_Int32(aTextRect.Right()), 4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(6162), 
sal_Int32(aTextRect.Bottom()), 4);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf149551Gear()
 {
     // The file contains a diagram of type "Gear".
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf149551_SmartArt_Gear.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf149551_SmartArt_Gear.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // shape at index 0 is the background shape
     uno::Reference<drawing::XShape> xShape = getChildShape(xGroup, 1);
     CPPUNIT_ASSERT(xShape.is());
@@ -1952,17 +1806,14 @@ void SdImportTestSmartArt::testTdf149551Gear()
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(4500), sal_Int32(aTextRect.Top()), 
4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(11000), 
sal_Int32(aTextRect.Right()), 4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(9999), 
sal_Int32(aTextRect.Bottom()), 4);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf145528Matrix()
 {
     // The file contains a diagram of type "Titled Matrix". Such is build from 
shapes of type
     // 'round1Rect'.
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf145528_SmartArt_Matrix.pptx"),
 PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf145528_SmartArt_Matrix.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // expected values
     sal_Int32 nLeft[]{ 4001, 12001, 12001, 18501 };
     sal_Int32 nTop[]{ 9999, 1999, 12499, 5999 };
@@ -1986,18 +1837,14 @@ void SdImportTestSmartArt::testTdf145528Matrix()
         CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(10293), 
sal_Int32(aTextRect.GetWidth()), 4);
         CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(4500), 
sal_Int32(aTextRect.GetHeight()), 4);
     }
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf135953TextPosition()
 {
     // The file contains a diagram of type "Detailed Process". There the text 
area rectangle
     // is at the left edge of the shape and rotated there.
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf135953_SmartArt_textposition.pptx"),
-        PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf135953_SmartArt_textposition.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // shape at index 0 is the background shape
     uno::Reference<drawing::XShape> xShape = getChildShape(xGroup, 1);
     CPPUNIT_ASSERT(xShape.is());
@@ -2013,8 +1860,6 @@ void SdImportTestSmartArt::testTdf135953TextPosition()
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(-1661), sal_Int32(aTextRect.Top()), 
4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(9559), 
sal_Int32(aTextRect.Right()), 4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(578), 
sal_Int32(aTextRect.Bottom()), 4);
-
-    xDocShRef->DoClose();
 }
 
 void SdImportTestSmartArt::testTdf132302RightArrow()
@@ -2022,10 +1867,8 @@ void SdImportTestSmartArt::testTdf132302RightArrow()
     // The file contains a diagram of type "Process Arrows". It uses shapes of 
type "rightArrow".
     // The text starts not at the left edge but in the middle to have space 
for a circle. Error was
     // that the text starts left and so was hidden by the circle.
-    sd::DrawDocShellRef xDocShRef = loadURL(
-        
m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf132302_SmartArt_rightArrow.pptx"),
-        PPTX);
-    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0, xDocShRef), 
uno::UNO_QUERY);
+    loadFromURL(u"pptx/tdf132302_SmartArt_rightArrow.pptx");
+    uno::Reference<drawing::XShape> xGroup(getShapeFromPage(0, 0), 
uno::UNO_QUERY);
     // shape at index 0 is the background shape
     uno::Reference<drawing::XShape> xShape = getChildShape(xGroup, 1);
     CPPUNIT_ASSERT(xShape.is());
@@ -2040,8 +1883,6 @@ void SdImportTestSmartArt::testTdf132302RightArrow()
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(58), sal_Int32(aTextRect.Top()), 4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(11989), 
sal_Int32(aTextRect.Right()), 4);
     CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(7940), 
sal_Int32(aTextRect.Bottom()), 4);
-
-    xDocShRef->DoClose();
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTestSmartArt);

Reply via email to