[Libreoffice-commits] core.git: sd/CppunitTest_sd_export_tests-ooxml3.mk sd/Module_sd.mk sd/qa

Xisco Fauli (via logerrit) logerrit at kemper.freedesktop.org
Tue Jun 8 16:33:58 UTC 2021


 sd/CppunitTest_sd_export_tests-ooxml3.mk |   14 
 sd/Module_sd.mk                          |    1 
 sd/qa/unit/export-tests-ooxml2.cxx       | 1588 ----------------------------
 sd/qa/unit/export-tests-ooxml3.cxx       | 1730 +++++++++++++++++++++++++++++++
 4 files changed, 1751 insertions(+), 1582 deletions(-)

New commits:
commit 7782f9fd753845a02fef90e89b50323c561f9118
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Tue Jun 8 12:08:37 2021 +0200
Commit:     Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Tue Jun 8 18:33:13 2021 +0200

    sd: split CppunitTest_sd_export_tests-ooxml2 into two
    
    Change-Id: Ida23d59cd010d6fb9bf4fb8b5f82d2d764281773
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116826
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>

diff --git a/sd/CppunitTest_sd_export_tests-ooxml3.mk b/sd/CppunitTest_sd_export_tests-ooxml3.mk
new file mode 100644
index 000000000000..88b15f953261
--- /dev/null
+++ b/sd/CppunitTest_sd_export_tests-ooxml3.mk
@@ -0,0 +1,14 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*************************************************************************
+
+$(eval $(call sd_export_test,-ooxml3))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sd/Module_sd.mk b/sd/Module_sd.mk
index 1e0a9e8f2816..3fa1debe3958 100644
--- a/sd/Module_sd.mk
+++ b/sd/Module_sd.mk
@@ -35,6 +35,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sd,\
     CppunitTest_sd_import_tests_smartart \
     CppunitTest_sd_export_tests-ooxml1 \
     CppunitTest_sd_export_tests-ooxml2 \
+    CppunitTest_sd_export_tests-ooxml3 \
     CppunitTest_sd_export_tests \
     CppunitTest_sd_filters_test \
     CppunitTest_sd_layout_tests \
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 17664e632b35..b2d30225af44 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -146,74 +146,7 @@ public:
     void testGroupsRotatedPosition();
     void testAccentColor();
     void testThemeColors();
-    void testTdf114848();
-    void testTdf68759();
-    void testTdf127901();
-    void testTdf48735();
-    void testTdf90626();
-    void testTdf107608();
-    void testTdf111786();
-    void testFontScale();
-    void testShapeAutofitPPTX();
-    void testLegacyShapeAutofitPPTX();
-    void testTdf115394();
-    void testTdf115394Zero();
-    void testTdf115005();
-    int testTdf115005_FallBack_Images(bool bAddReplacementImages);
-    void testTdf115005_FallBack_Images_On();
-    void testTdf115005_FallBack_Images_Off();
-    void testTdf118806();
-    void testTdf130058();
-    void testTdf111789();
-    void testTdf100348_convert_Fontwork2TextWarp();
-    void testTdf1225573_FontWorkScaleX();
-    void testTdf99497_keepAppearanceOfCircleKind();
-    /// SmartArt animated elements
-    void testTdf104792();
-    void testTdf90627();
-    void testTdf104786();
-    void testTdf118783();
-    void testTdf104789();
-    void testOpenDocumentAsReadOnly();
-    void testTdf118835();
-    void testTdf118768();
-    void testTdf118836();
-    void testTdf116350TextEffects();
-    void testTdf128096();
-    void testTdf120573();
     void testTdf118825();
-    void testTdf119118();
-    void testTdf99213();
-    void testPotxExport();
-    void testTdf44223();
-    void testSmartArtPreserve();
-    void testTdf125346();
-    void testTdf125346_2();
-    void testTdf125360();
-    void testTdf125360_1();
-    void testTdf125360_2();
-    void testTdf125551();
-    void testTdf136830();
-    void testTdf126234();
-    void testTdf126741();
-    void testTdf127372();
-    void testTdf127379();
-    void testTdf98603();
-    void testTdf79082();
-    void testTdf128213();
-    void testTdf129372();
-    void testShapeGlowEffect();
-    void testTdf119087();
-    void testTdf131554();
-    void testTdf132282();
-    void testTdf132201EffectOrder();
-    void testShapeSoftEdgeEffect();
-    void testShapeShadowBlurEffect();
-    void testTdf119223();
-    void testTdf128213ShapeRot();
-    void testTdf125560_textDeflate();
-    void testTdf125560_textInflateTop();
-    void testTdf96061_textHighlight();
     void testTextColumns_tdf140852();
     void testTextColumns_3columns();
 
@@ -277,72 +210,7 @@ public:
     CPPUNIT_TEST(testGroupsRotatedPosition);
     CPPUNIT_TEST(testAccentColor);
     CPPUNIT_TEST(testThemeColors);
-    CPPUNIT_TEST(testTdf114848);
-    CPPUNIT_TEST(testTdf68759);
-    CPPUNIT_TEST(testTdf127901);
-    CPPUNIT_TEST(testTdf48735);
-    CPPUNIT_TEST(testTdf90626);
-    CPPUNIT_TEST(testTdf107608);
-    CPPUNIT_TEST(testTdf111786);
-    CPPUNIT_TEST(testFontScale);
-    CPPUNIT_TEST(testShapeAutofitPPTX);
-    CPPUNIT_TEST(testLegacyShapeAutofitPPTX);
-    CPPUNIT_TEST(testTdf115394);
-    CPPUNIT_TEST(testTdf115394Zero);
-    CPPUNIT_TEST(testTdf115005);
-    CPPUNIT_TEST(testTdf115005_FallBack_Images_On);
-    CPPUNIT_TEST(testTdf115005_FallBack_Images_Off);
-    CPPUNIT_TEST(testTdf118806);
-    CPPUNIT_TEST(testTdf130058);
-    CPPUNIT_TEST(testTdf111789);
-    CPPUNIT_TEST(testTdf100348_convert_Fontwork2TextWarp);
-    CPPUNIT_TEST(testTdf1225573_FontWorkScaleX);
-    CPPUNIT_TEST(testTdf99497_keepAppearanceOfCircleKind);
-    CPPUNIT_TEST(testTdf104792);
-    CPPUNIT_TEST(testTdf90627);
-    CPPUNIT_TEST(testTdf104786);
-    CPPUNIT_TEST(testTdf118783);
-    CPPUNIT_TEST(testTdf104789);
-    CPPUNIT_TEST(testOpenDocumentAsReadOnly);
-    CPPUNIT_TEST(testTdf118835);
-    CPPUNIT_TEST(testTdf118768);
-    CPPUNIT_TEST(testTdf118836);
-    CPPUNIT_TEST(testTdf116350TextEffects);
-    CPPUNIT_TEST(testTdf128096);
-    CPPUNIT_TEST(testTdf120573);
     CPPUNIT_TEST(testTdf118825);
-    CPPUNIT_TEST(testTdf119118);
-    CPPUNIT_TEST(testTdf99213);
-    CPPUNIT_TEST(testPotxExport);
-    CPPUNIT_TEST(testTdf44223);
-    CPPUNIT_TEST(testSmartArtPreserve);
-    CPPUNIT_TEST(testTdf125346);
-    CPPUNIT_TEST(testTdf125346_2);
-    CPPUNIT_TEST(testTdf125360);
-    CPPUNIT_TEST(testTdf125360_1);
-    CPPUNIT_TEST(testTdf125360_2);
-    CPPUNIT_TEST(testTdf125551);
-    CPPUNIT_TEST(testTdf136830);
-    CPPUNIT_TEST(testTdf126234);
-    CPPUNIT_TEST(testTdf126741);
-    CPPUNIT_TEST(testTdf127372);
-    CPPUNIT_TEST(testTdf127379);
-    CPPUNIT_TEST(testTdf98603);
-    CPPUNIT_TEST(testTdf79082);
-    CPPUNIT_TEST(testTdf128213);
-    CPPUNIT_TEST(testTdf129372);
-    CPPUNIT_TEST(testShapeGlowEffect);
-    CPPUNIT_TEST(testTdf119087);
-    CPPUNIT_TEST(testTdf131554);
-    CPPUNIT_TEST(testTdf132282);
-    CPPUNIT_TEST(testTdf132201EffectOrder);
-    CPPUNIT_TEST(testShapeSoftEdgeEffect);
-    CPPUNIT_TEST(testShapeShadowBlurEffect);
-    CPPUNIT_TEST(testTdf119223);
-    CPPUNIT_TEST(testTdf128213ShapeRot);
-    CPPUNIT_TEST(testTdf125560_textDeflate);
-    CPPUNIT_TEST(testTdf125560_textInflateTop);
-    CPPUNIT_TEST(testTdf96061_textHighlight);
     CPPUNIT_TEST(testTextColumns_tdf140852);
     CPPUNIT_TEST(testTextColumns_3columns);
 
@@ -350,10 +218,8 @@ public:
 
     virtual void registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) override
     {
-        XmlTestTools::registerODFNamespaces(pXmlXPathCtx);
         XmlTestTools::registerOOXMLNamespaces(pXmlXPathCtx);
     }
-
 };
 
 void SdOOXMLExportTest2::testTdf131905()
@@ -1744,1464 +1610,22 @@ void SdOOXMLExportTest2::testThemeColors()
     assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:accent3/a:srgbClr", "val", "a5a5a5");
 }
 
-void SdOOXMLExportTest2::testTdf114848()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf114848.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocTheme1 = parseExport(tempFile, "ppt/theme/theme1.xml");
-    assertXPath(pXmlDocTheme1, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val", "1f497d");
-    xmlDocUniquePtr pXmlDocTheme2 = parseExport(tempFile, "ppt/theme/theme2.xml");
-    assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val", "1f497d");
-}
-
-void SdOOXMLExportTest2::testTdf68759()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf68759.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[1]/p:spPr/a:xfrm/a:off", "x", "1687320");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[1]/p:spPr/a:xfrm/a:off", "y", "1615320");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm", "flipH", "1");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm", "rot", "9600000");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm/a:off", "x", "3847320");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm/a:off", "y", "1614600");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm", "flipH", "1");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm/a:off", "x", "5934960");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm/a:off", "y", "1615320");
-
-}
-
-void SdOOXMLExportTest2::testTdf127901()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf127901.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:lum", "bright", "70000");
-    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:lum", "contrast", "-70000");
-
-    xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
-    assertXPath(pXmlDocContent2, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:grayscl", 1);
-
-    xmlDocUniquePtr pXmlDocContent3 = parseExport(tempFile, "ppt/slides/slide3.xml");
-    assertXPath(pXmlDocContent3, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:biLevel", "thresh", "50000");
-
-}
-
-void SdOOXMLExportTest2::testTdf48735()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf48735.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "b", "23627");
-    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "l", "23627");
-    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "r", "23627");
-    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "t", "18842");
-}
-
-void SdOOXMLExportTest2::testTdf90626()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf90626.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocContent =  parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[1]/a:pPr/a:buSzPct", "val", "100000");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[2]/a:pPr/a:buSzPct", "val", "150142");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[3]/a:pPr/a:buSzPct", "val", "100000");
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[4]/a:pPr/a:buSzPct", "val", "150142");
-}
-
-void SdOOXMLExportTest2::testTdf107608()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf107608.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-    uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
-
-    drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
-    xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
-    CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_HATCH, aFillStyle);
-
-    bool bBackgroundFill = false;
-    xPropSet->getPropertyValue("FillBackground") >>= bBackgroundFill;
-    CPPUNIT_ASSERT(bBackgroundFill);
-
-    Color nBackgroundColor;
-    xPropSet->getPropertyValue("FillColor") >>= nBackgroundColor;
-    CPPUNIT_ASSERT_EQUAL(Color(0x92D050), nBackgroundColor);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf111786()
-{
-    // Export line transparency with the color
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf111786.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-    uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
-
-    Color nLineColor;
-    xPropSet->getPropertyValue("LineColor") >>= nLineColor;
-    CPPUNIT_ASSERT_EQUAL(Color(0x3465A4), nLineColor);
-
-    sal_Int16 nTransparency;
-    xPropSet->getPropertyValue("LineTransparence") >>= nTransparency;
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(33), nTransparency);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testFontScale()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/font-scale.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-
-    // Rounding errors possible, approximate value (+/- 1%)
-    OUString sScale = getXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr/a:normAutofit", "fontScale");
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(76000), sScale.toInt32(), 1000);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testShapeAutofitPPTX()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/testShapeAutofit.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    CPPUNIT_ASSERT(pXmlDocContent);
-
-    // TextAutoGrowHeight --> "Resize shape to fit text" --> true
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:spAutoFit", 1);
-    // TextAutoGrowHeight --> "Resize shape to fit text" --> false
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr/a:noAutofit", 1);
-}
-
-void SdOOXMLExportTest2::testLegacyShapeAutofitPPTX()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/testLegacyShapeAutofit.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    CPPUNIT_ASSERT(pXmlDocContent);
-
-    // Text in a legacy rectangle
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:noAutofit", 1);
-    // Text in (closed) Polygon
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr/a:noAutofit", 1);
-    // Text in a legacy ellipse
-    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:txBody/a:bodyPr/a:noAutofit", 1);
-}
-
-void SdOOXMLExportTest2::testTdf115394()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf115394.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    double fTransitionDuration;
-
-    // Slow in MS formats
-    SdPage* pPage1 = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
-    fTransitionDuration = pPage1->getTransitionDuration();
-    CPPUNIT_ASSERT_EQUAL(1.0, fTransitionDuration);
-
-    // Medium in MS formats
-    SdPage* pPage2 = xDocShRef->GetDoc()->GetSdPage(1, PageKind::Standard);
-    fTransitionDuration = pPage2->getTransitionDuration();
-    CPPUNIT_ASSERT_EQUAL(0.75, fTransitionDuration);
-
-    // Fast in MS formats
-    SdPage* pPage3 = xDocShRef->GetDoc()->GetSdPage(2, PageKind::Standard);
-    fTransitionDuration = pPage3->getTransitionDuration();
-    CPPUNIT_ASSERT_EQUAL(0.5, fTransitionDuration);
-
-    // Custom values
-    SdPage* pPage4 = xDocShRef->GetDoc()->GetSdPage(3, PageKind::Standard);
-    fTransitionDuration = pPage4->getTransitionDuration();
-    CPPUNIT_ASSERT_EQUAL(0.25, fTransitionDuration);
-
-    SdPage* pPage5 = xDocShRef->GetDoc()->GetSdPage(4, PageKind::Standard);
-    fTransitionDuration = pPage5->getTransitionDuration();
-    CPPUNIT_ASSERT_EQUAL(4.25, fTransitionDuration);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf115394Zero()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf115394-zero.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    double fTransitionDuration;
-
-    SdPage* pPage = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
-    fTransitionDuration = pPage->getTransitionDuration();
-    CPPUNIT_ASSERT_EQUAL(0.01, fTransitionDuration);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf115005()
-{
-    sd::DrawDocShellRef xDocShRefOriginal = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf115005.odp"), ODP);
-    utl::TempFile tempFile;
-    sd::DrawDocShellRef xDocShRefResaved = saveAndReload(xDocShRefOriginal.get(), ODP, &tempFile);
-
-    // additional checks of the output file
-    uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory), tempFile.GetURL());
-
-    // check that the document contains original vector images
-    const uno::Sequence<OUString> names = xNameAccess->getElementNames();
-    int nSVMFiles = 0;
-    for (OUString const & s : names)
-    {
-        if(s.endsWith(".svm"))
-            nSVMFiles++;
-    }
-    CPPUNIT_ASSERT_EQUAL(3, nSVMFiles);
-}
-
-int SdOOXMLExportTest2::testTdf115005_FallBack_Images(bool bAddReplacementImages)
-{
-    sd::DrawDocShellRef xDocShRefOriginal = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf115005_no_fallback_images.odp"), ODP);
-
-    // check if fallback images were not created if AddReplacementImages=true/false
-    // set AddReplacementImages
-    {
-        std::shared_ptr<comphelper::ConfigurationChanges> batch( comphelper::ConfigurationChanges::create() );
-        if ( !officecfg::Office::Common::Save::Graphic::AddReplacementImages::isReadOnly() )
-            officecfg::Office::Common::Save::Graphic::AddReplacementImages::set(bAddReplacementImages, batch);
-        batch->commit();
-    }
-
-    // save the file with already set options
-    utl::TempFile tempFile;
-    sd::DrawDocShellRef xDocShRefResaved = saveAndReload(xDocShRefOriginal.get(), ODP, &tempFile);
-
-    // additional checks of the output file
-    uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory), tempFile.GetURL());
-
-    // check that the document contains original vector images
-    const uno::Sequence<OUString> names = xNameAccess->getElementNames();
-    int nSVMFiles = 0;
-    int nPNGFiles = 0;
-    for (OUString const & n :names)
-    {
-        if(n.endsWith(".svm"))
-            nSVMFiles++;
-        if(n.endsWith(".png"))
-            nPNGFiles++;
-    }
-
-    // check results
-    CPPUNIT_ASSERT_EQUAL(1, nSVMFiles);
-    return nPNGFiles;
-}
-
-void SdOOXMLExportTest2::testTdf115005_FallBack_Images_On()
-{
-    const int nPNGFiles = testTdf115005_FallBack_Images(true);
-    CPPUNIT_ASSERT_EQUAL(1, nPNGFiles);
-}
-
-void SdOOXMLExportTest2::testTdf115005_FallBack_Images_Off()
-{
-    const int nPNGFiles = testTdf115005_FallBack_Images(false);
-    CPPUNIT_ASSERT_EQUAL(0, nPNGFiles);
-}
-
-void SdOOXMLExportTest2::testTdf118806()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf118806.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "//p:animMotion", "origin", "layout");
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf130058()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf130058.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-    bool bHasShadow = false;
-    xShape->getPropertyValue("Shadow") >>= bHasShadow;
-    CPPUNIT_ASSERT(bHasShadow);
-    double fShadowDist = 0.0;
-    xShape->getPropertyValue("ShadowXDistance") >>= fShadowDist;
-    CPPUNIT_ASSERT_EQUAL(static_cast<double>(0), fShadowDist);
-    xShape->getPropertyValue("ShadowYDistance") >>= fShadowDist;
-    CPPUNIT_ASSERT_EQUAL(static_cast<double>(141), fShadowDist);
-    Color nColor;
-    xShape->getPropertyValue("ShadowColor") >>= nColor;
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, nColor);
-    sal_Int32 nTransparency = 0;
-    xShape->getPropertyValue("ShadowTransparence") >>= nTransparency;
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(57), nTransparency);
-    double fShadowSizeX = 0.0;
-    xShape->getPropertyValue("ShadowSizeX") >>= fShadowSizeX;
-    CPPUNIT_ASSERT_EQUAL(static_cast<double>(1000), fShadowSizeX);
-    double fShadowSizeY = 0.0;
-    xShape->getPropertyValue("ShadowSizeY") >>= fShadowSizeY;
-    CPPUNIT_ASSERT_EQUAL(static_cast<double>(1000), fShadowSizeY);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf111789()
-{
-    // Shadow properties were not exported for text shapes.
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf111789.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    // First text shape has some shadow
-    {
-        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-        bool bHasShadow = false;
-        xShape->getPropertyValue("Shadow") >>= bHasShadow;
-        CPPUNIT_ASSERT(bHasShadow);
-        double fShadowDist = 0.0;
-        xShape->getPropertyValue("ShadowXDistance") >>= fShadowDist;
-        CPPUNIT_ASSERT_EQUAL(static_cast<double>(273), fShadowDist);
-        xShape->getPropertyValue("ShadowYDistance") >>= fShadowDist;
-        CPPUNIT_ASSERT_EQUAL(static_cast<double>(273), fShadowDist);
-        Color nColor;
-        xShape->getPropertyValue("ShadowColor") >>= nColor;
-        CPPUNIT_ASSERT_EQUAL(Color(0xFF0000), nColor);
-        sal_Int32 nTransparency = 0;
-        xShape->getPropertyValue("ShadowTransparence") >>= nTransparency;
-        CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(7), nTransparency);
-        double fShadowSizeX = 0.0;
-        xShape->getPropertyValue("ShadowSizeX") >>= fShadowSizeX;
-        CPPUNIT_ASSERT_EQUAL(static_cast<double>(100000), fShadowSizeX);
-        double fShadowSizeY = 0.0;
-        xShape->getPropertyValue("ShadowSizeY") >>= fShadowSizeY;
-        CPPUNIT_ASSERT_EQUAL(static_cast<double>(100000), fShadowSizeY);
-    }
-
-    // Second text shape has no shadow
-    {
-        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 1, 0, xDocShRef ) );
-        bool bHasShadow = false;
-        xShape->getPropertyValue("Shadow") >>= bHasShadow;
-        CPPUNIT_ASSERT(!bHasShadow);
-    }
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf104792()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(
-        m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf104792-smart-art-animation.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst[1]/p:seq/p:cTn/p:childTnLst[1]/p:par[1]/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:set/p:cBhvr/p:tgtEl/p:spTgt", 1);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf90627()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf90627.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    // Don't export empty endCondLst without cond.
-    assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst[1]/p:seq/p:cTn/p:childTnLst[1]/p:par[2]/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:endCondLst[not(*)]", 0);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf104786()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf104786.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide2.xml");
-    // Don't export empty 'to'
-    assertXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst[1]/p:seq/p:cTn/p:childTnLst[1]/p:par[2]/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst[1]/p:par/p:cTn/p:childTnLst/p:set[2]/p:to", 0);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf118783()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf118783.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    OUString sAttributeName = getXPathContent(pXmlDocContent, "//p:animRot/p:cBhvr/p:attrNameLst/p:attrName");
-    CPPUNIT_ASSERT_EQUAL(OUString("r"), sAttributeName);
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf104789()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf104789.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    OUString sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:attrNameLst/p:attrName");
-    CPPUNIT_ASSERT_EQUAL(OUString("style.opacity"), sAttributeName);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testOpenDocumentAsReadOnly()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/open-as-read-only.pptx"), PPTX);
-    CPPUNIT_ASSERT(xDocShRef->IsSecurityOptOpenReadOnly());
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    CPPUNIT_ASSERT(xDocShRef->IsSecurityOptOpenReadOnly());
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf118835()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf118835.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "(//p:animClr)[1]", "clrSpc", "rgb");
-    assertXPathContent(pXmlDocContent, "(//p:animClr)[1]//p:attrName", "style.color");
-    assertXPath(pXmlDocContent, "(//p:animClr)[1]//p:to/a:srgbClr", "val", "ed1c24");
-
-    assertXPath(pXmlDocContent, "(//p:animClr)[2]", "clrSpc", "rgb");
-    assertXPathContent(pXmlDocContent, "(//p:animClr)[2]//p:attrName", "stroke.color");
-    assertXPath(pXmlDocContent, "(//p:animClr)[2]//p:to/a:srgbClr", "val", "333399");
 
-    assertXPath(pXmlDocContent, "(//p:animClr)[3]", "clrSpc", "rgb");
-    assertXPathContent(pXmlDocContent, "(//p:animClr)[3]//p:attrName", "fillcolor");
-    assertXPath(pXmlDocContent, "(//p:animClr)[3]//p:to/a:srgbClr", "val", "fcd3c1");
-
-    assertXPath(pXmlDocContent, "(//p:animClr)[5]", "clrSpc", "hsl");
-    assertXPathContent(pXmlDocContent, "(//p:animClr)[5]//p:attrName", "fillcolor");
-    assertXPath(pXmlDocContent, "(//p:animClr)[5]//p:by/p:hsl", "h", "10800000");
-    assertXPath(pXmlDocContent, "(//p:animClr)[5]//p:by/p:hsl", "s", "0");
-    assertXPath(pXmlDocContent, "(//p:animClr)[5]//p:by/p:hsl", "l", "0");
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf118768()
+void SdOOXMLExportTest2::testTdf118825()
 {
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf118768-brake.odp"), ODP);
+    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf118825-motionpath.odp"), ODP);
     utl::TempFile tempFile;
     xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
     xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "//p:anim[1]", "from", "(-#ppt_w/2)");
-    assertXPath(pXmlDocContent, "//p:anim[1]", "to", "(#ppt_x)");
-    assertXPath(pXmlDocContent, "//p:anim[2]", "from", "0");
 
-    assertXPath(pXmlDocContent, "//p:anim[2]", "to", "-1");
-    assertXPath(pXmlDocContent, "//p:anim[2]/p:cBhvr/p:cTn", "autoRev", "1");
 
-    assertXPath(pXmlDocContent, "//p:anim[3]", "by", "(#ppt_h/3+#ppt_w*0.1)");
-    assertXPath(pXmlDocContent, "//p:anim[3]/p:cBhvr/p:cTn", "autoRev", "1");
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf118836()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf118836.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "//p:animScale/p:by", "x", "250000");
-    assertXPath(pXmlDocContent, "//p:animScale/p:by", "y", "250000");
+    CPPUNIT_ASSERT_MOTIONPATH("M 0.0449285714285714 0.00368253968253968 C 0.0575714285714285 -0.00095238095238096 0.0704264795523803 -0.00370117418637049 0.0831071428571428 -0.00819047619047622 C 0.0953550597998766 -0.0125265741339082 0.107821870086751 -0.010397536991717 0.120321428571429 -0.0115555555555556 C 0.133179018681433 -0.0127467438724762 0.151318627483861 -0.0158700272533852 0.1585 0.00539682539682542 C 0.16478291361998 0.0240029898688431 0.15828642886492 0.0483806254341085 0.161392857142857 0.0698412698412698 C 0.165179286017685 0.0959996731216037 0.17453898927982 0.119735912694626 0.187142857142857 0.132634920634921 C 0.199788991845377 0.145577185161529 0.215607110490848 0.142889773028431 0.230107142857143 0.142857142857143 C 0.243821417584191 0.142826280916829 0.257716514999779 0.142685979556724 0.271142857142857 0.137777777777778 C 0.286895094567923 0.132019309914514 0.302318190711873 0.122962218306185 0.317928571428571 0.11568253968254 C 0.333496771884547 0.1084225312
 22479 0.348787823719556 0.0990570571890929 0.363714285714286 0.0885079365079364 C 0.374930683062651 0.080580865157908 0.385357142857143 0.0693333333333332 0.396178571428571 0.0596825396825396 L 0.404785714285714 0.0410158730158729 L 0.401892857142857 0.0342222222222221 E", getXPath(pXmlDocContent, "(//p:animMotion)[1]", "path"));
+    CPPUNIT_ASSERT_MOTIONPATH("M 0.025 0.0571428571428571 L 0.0821428571428571 0.184126984126984 L -0.175 0.234920634920635 L -0.246428571428571 -0.0190476190476191 L -0.0821428571428573 -0.133333333333333 E", getXPath(pXmlDocContent, "(//p:animMotion)[2]", "path"));
+    CPPUNIT_ASSERT_MOTIONPATH("M -0.0107142857142857 0.00634920634920635 C -0.110714285714286 0.501587301587301 -0.153571428571429 -0.00634920634920635 -0.246428571428572 0.184126984126984 C -0.339285714285715 0.374603174603175 -0.296428571428572 0.514285714285714 -0.267857142857143 0.603174603174603 C -0.239285714285715 0.692063492063492 0.0607142857142858 0.590476190476191 0.0607142857142858 0.590476190476191 E", getXPath(pXmlDocContent, "(//p:animMotion)[3]", "path"));
+    CPPUNIT_ASSERT_MOTIONPATH("M 0.0535714285714286 -0.0444444444444444 L 0.132142857142857 -0.0444444444444444 L 0.132142857142857 -0.146031746031746 L 0.0964285714285715 -0.146031746031746 E", getXPath(pXmlDocContent, "(//p:animMotion)[4]", "path"));
     xDocShRef->DoClose();
 }
 
-static double getAdjustmentValue( const uno::Reference<beans::XPropertySet>& xSet )
-{
-    auto aGeomPropSeq = xSet->getPropertyValue( "CustomShapeGeometry" )
-                            .get<uno::Sequence<beans::PropertyValue>>();
-    auto aGeomPropVec
-        = comphelper::sequenceToContainer<std::vector<beans::PropertyValue>>(
-            aGeomPropSeq );
-
-    auto aIterator = std::find_if(
-        aGeomPropVec.begin(), aGeomPropVec.end(),
-        []( const beans::PropertyValue& rValue ) { return rValue.Name == "AdjustmentValues"; } );
-
-    if (aIterator != aGeomPropVec.end())
-    {
-        uno::Sequence<drawing::EnhancedCustomShapeAdjustmentValue> aAdjustment;
-        double fResult = 0.0;
-        aIterator->Value >>= aAdjustment;
-        aAdjustment[0].Value >>= fResult;
-        return fResult;
-    }
-
-    return -1.0;
-}
-
-static bool getScaleXValue(const uno::Reference<beans::XPropertySet>& xSet)
-{
-    bool bScaleX = false;
-
-    auto aGeomPropSeq = xSet->getPropertyValue("CustomShapeGeometry")
-        .get<uno::Sequence<beans::PropertyValue>>();
-    auto aGeomPropVec
-        = comphelper::sequenceToContainer<std::vector<beans::PropertyValue>>(
-            aGeomPropSeq);
-
-    auto aIterator = std::find_if(
-        aGeomPropVec.begin(), aGeomPropVec.end(),
-        [](const beans::PropertyValue& rValue) { return rValue.Name == "TextPath"; });
-
-    if (aIterator != aGeomPropVec.end())
-    {
-        uno::Sequence<beans::PropertyValue> aTextPathProperties;
-        aIterator->Value >>= aTextPathProperties;
-        auto aIterator2 = std::find_if(
-            aTextPathProperties.begin(), aTextPathProperties.end(),
-            [](const beans::PropertyValue& rValue) { return rValue.Name == "ScaleX"; });
-
-        if (aIterator2 != aTextPathProperties.end())
-        {
-            aIterator2->Value >>= bScaleX;
-        }
-    }
-
-    return bScaleX;
-}
-
-void SdOOXMLExportTest2::testTdf116350TextEffects()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc( u"sd/qa/unit/data/pptx/tdf116350-texteffects.pptx" ), PPTX );
-
-    // Default angle for ArchUp
-    uno::Reference<beans::XPropertySet> xShape0( getShapeFromPage( 0, 0, xDocShRef ) );
-    double fAdjust = getAdjustmentValue( xShape0 );
-    CPPUNIT_ASSERT_EQUAL( 180.0, fAdjust );
-
-    bool bScaleX = getScaleXValue( xShape0 );
-    CPPUNIT_ASSERT_EQUAL( true, bScaleX );
-
-    // Default angle for ArchDown
-    uno::Reference<beans::XPropertySet> xShape14( getShapeFromPage( 14, 0, xDocShRef ) );
-    fAdjust = getAdjustmentValue( xShape14 );
-    CPPUNIT_ASSERT_EQUAL( 0.0, fAdjust );
-
-    bScaleX = getScaleXValue( xShape14 );
-    CPPUNIT_ASSERT_EQUAL( true, bScaleX );
-
-    // Angle directly set
-    uno::Reference<beans::XPropertySet> xShape1( getShapeFromPage( 1, 0, xDocShRef ) );
-    fAdjust = getAdjustmentValue( xShape1 );
-    CPPUNIT_ASSERT_EQUAL( 213.25, fAdjust );
-
-    bScaleX = getScaleXValue( xShape1 );
-    CPPUNIT_ASSERT_EQUAL( true, bScaleX );
-
-    // Export
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "//p:sp[1]/p:txBody/a:bodyPr/a:prstTxWarp", "prst", "textArchUp");
-    assertXPath(pXmlDocContent, "//p:sp[14]/p:txBody/a:bodyPr/a:prstTxWarp", "prst", "textCircle");
-    assertXPath(pXmlDocContent, "//p:sp[14]/p:spPr/a:solidFill/a:srgbClr", 0);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf128096()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf128096.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent1, "//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:highlight/a:srgbClr", "val", "ffff00");
-
-    // Check that underlined content is also highlighted
-    xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
-    assertXPath(pXmlDocContent2, "//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr/a:highlight/a:srgbClr", "val", "ffff00");
-}
-void SdOOXMLExportTest2::testTdf120573()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc( u"sd/qa/unit/data/pptx/tdf120573.pptx" ), PPTX );
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
-
-    xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:nvPr/a:audioFile", 1);
-    assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:pic/p:nvPicPr/p:nvPr/a:videoFile", 0);
-
-    xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
-    assertXPath(pXmlDocRels,
-        "(/rels:Relationships/rels:Relationship[@Target='../media/media1.wav'])[1]",
-        "Type",
-        "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio");
-
-    xmlDocUniquePtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");
-    assertXPath(pXmlContentType,
-                "/ContentType:Types/ContentType:Override[@PartName='/ppt/media/media1.wav']",
-                "ContentType",
-                "audio/x-wav");
-}
-
-void SdOOXMLExportTest2::testTdf118825()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf118825-motionpath.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-
-
-    CPPUNIT_ASSERT_MOTIONPATH("M 0.0449285714285714 0.00368253968253968 C 0.0575714285714285 -0.00095238095238096 0.0704264795523803 -0.00370117418637049 0.0831071428571428 -0.00819047619047622 C 0.0953550597998766 -0.0125265741339082 0.107821870086751 -0.010397536991717 0.120321428571429 -0.0115555555555556 C 0.133179018681433 -0.0127467438724762 0.151318627483861 -0.0158700272533852 0.1585 0.00539682539682542 C 0.16478291361998 0.0240029898688431 0.15828642886492 0.0483806254341085 0.161392857142857 0.0698412698412698 C 0.165179286017685 0.0959996731216037 0.17453898927982 0.119735912694626 0.187142857142857 0.132634920634921 C 0.199788991845377 0.145577185161529 0.215607110490848 0.142889773028431 0.230107142857143 0.142857142857143 C 0.243821417584191 0.142826280916829 0.257716514999779 0.142685979556724 0.271142857142857 0.137777777777778 C 0.286895094567923 0.132019309914514 0.302318190711873 0.122962218306185 0.317928571428571 0.11568253968254 C 0.333496771884547 0.1084225312
 22479 0.348787823719556 0.0990570571890929 0.363714285714286 0.0885079365079364 C 0.374930683062651 0.080580865157908 0.385357142857143 0.0693333333333332 0.396178571428571 0.0596825396825396 L 0.404785714285714 0.0410158730158729 L 0.401892857142857 0.0342222222222221 E", getXPath(pXmlDocContent, "(//p:animMotion)[1]", "path"));
-    CPPUNIT_ASSERT_MOTIONPATH("M 0.025 0.0571428571428571 L 0.0821428571428571 0.184126984126984 L -0.175 0.234920634920635 L -0.246428571428571 -0.0190476190476191 L -0.0821428571428573 -0.133333333333333 E", getXPath(pXmlDocContent, "(//p:animMotion)[2]", "path"));
-    CPPUNIT_ASSERT_MOTIONPATH("M -0.0107142857142857 0.00634920634920635 C -0.110714285714286 0.501587301587301 -0.153571428571429 -0.00634920634920635 -0.246428571428572 0.184126984126984 C -0.339285714285715 0.374603174603175 -0.296428571428572 0.514285714285714 -0.267857142857143 0.603174603174603 C -0.239285714285715 0.692063492063492 0.0607142857142858 0.590476190476191 0.0607142857142858 0.590476190476191 E", getXPath(pXmlDocContent, "(//p:animMotion)[3]", "path"));
-    CPPUNIT_ASSERT_MOTIONPATH("M 0.0535714285714286 -0.0444444444444444 L 0.132142857142857 -0.0444444444444444 L 0.132142857142857 -0.146031746031746 L 0.0964285714285715 -0.146031746031746 E", getXPath(pXmlDocContent, "(//p:animMotion)[4]", "path"));
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf119118()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc( u"sd/qa/unit/data/pptx/tdf119118.pptx" ), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, "//p:iterate", "type", "lt");
-    assertXPath(pXmlDocContent, "//p:tmAbs", "val", "200");
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf99213()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc( u"sd/qa/unit/data/odp/tdf99213-target-missing.odp" ), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    // Number of nodes with p:attrNameLst was 3, including one that missed tgtEl
-    assertXPath(pXmlDocContent, "//p:attrNameLst", 2);
-    // Timenode that miss its target element should be filtered.
-    assertXPath(pXmlDocContent, "//p:attrNameLst/preceding-sibling::p:tgtEl", 2);
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testPotxExport()
-{
-    // Create new document
-    sd::DrawDocShellRef xDocShRef
-        = new sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Draw);
-    uno::Reference<frame::XLoadable> xLoadable(xDocShRef->GetModel(), uno::UNO_QUERY);
-    CPPUNIT_ASSERT(xLoadable.is());
-    xLoadable->initNew();
-
-    // Export as a POTM template
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), POTX, &tempFile);
-    xDocShRef->DoClose();
-
-    // Load and check content type
-    xmlDocUniquePtr pContentTypes = parseExport(tempFile, "[Content_Types].xml");
-    CPPUNIT_ASSERT(pContentTypes);
-    assertXPath(pContentTypes, "/ContentType:Types/ContentType:Override[@PartName='/ppt/presentation.xml']",
-        "ContentType", "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml");
-}
-
-void SdOOXMLExportTest2::testTdf44223()
-{
-    utl::TempFile tempFile;
-    ::sd::DrawDocShellRef xDocShRef
-        = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf44223.pptx"), PPTX);
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    std::unique_ptr<SvStream> const pStream1(parseExportStream(tempFile, "ppt/media/audio1.wav"));
-    CPPUNIT_ASSERT_EQUAL(sal_uInt64(11140), pStream1->remainingSize());
-
-    std::unique_ptr<SvStream> const pStream2(parseExportStream(tempFile, "ppt/media/audio2.wav"));
-    CPPUNIT_ASSERT_EQUAL(sal_uInt64(28074), pStream2->remainingSize());
-
-    xmlDocUniquePtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");
-    assertXPath(pXmlContentType,
-                "/ContentType:Types/ContentType:Override[@PartName='/ppt/media/audio1.wav']",
-                "ContentType",
-                "audio/x-wav");
-
-    assertXPath(pXmlContentType,
-                "/ContentType:Types/ContentType:Override[@PartName='/ppt/media/audio2.wav']",
-                "ContentType",
-                "audio/x-wav");
-
-    xmlDocUniquePtr pDoc1 = parseExport(tempFile, "ppt/slides/slide1.xml");
-
-    // Start condition: 0s after timenode id 5 begins.
-    assertXPath(pDoc1 , "//p:audio/p:cMediaNode/p:cTn/p:stCondLst/p:cond", "evt", "begin");
-    assertXPath(pDoc1 , "//p:audio/p:cMediaNode/p:cTn/p:stCondLst/p:cond", "delay", "0");
-    assertXPath(pDoc1 , "//p:audio/p:cMediaNode/p:cTn/p:stCondLst/p:cond/p:tn", "val", "5");
-
-    xmlDocUniquePtr pDoc2 = parseExport(tempFile, "ppt/slides/slide2.xml");
-    assertXPath(pDoc2 , "//p:transition/p:sndAc/p:stSnd/p:snd[@r:embed]", 2);
-
-    xmlDocUniquePtr pRels1 = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
-    assertXPath(pRels1, "//rels:Relationship[@Id='rId1']", "Type",
-            "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio");
-    assertXPath(pRels1, "//rels:Relationship[@Id='rId1']", "Target", "../media/audio1.wav");
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testSmartArtPreserve()
-{
-    ::sd::DrawDocShellRef xDocShRef
-        = loadURL(
-            m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/smartart-preserve.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xmlDocUniquePtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/p:nvGraphicFramePr/p:cNvPr");
-    assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/dgm:relIds");
-    assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/p:nvGraphicFramePr/p:nvPr/p:extLst/p:ext",
-                "uri", "{D42A27DB-BD31-4B8C-83A1-F6EECF244321}");
-    assertXPath(pXmlDoc, "//p:sld/p:cSld/p:spTree/p:graphicFrame/p:nvGraphicFramePr/p:nvPr/p:extLst/p:ext/p14:modId");
-
-    xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
-    assertXPath(pXmlDocRels,
-                "(/rels:Relationships/rels:Relationship[@Target='../diagrams/layout1.xml'])[1]", "Type",
-                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout");
-    assertXPath(pXmlDocRels,
-                "(/rels:Relationships/rels:Relationship[@Target='../diagrams/data1.xml'])[1]", "Type",
-                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramData");
-    assertXPath(pXmlDocRels,
-                "(/rels:Relationships/rels:Relationship[@Target='../diagrams/colors1.xml'])[1]", "Type",
-                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors");
-    assertXPath(pXmlDocRels,
-                "(/rels:Relationships/rels:Relationship[@Target='../diagrams/quickStyle1.xml'])[1]", "Type",
-                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramQuickStyle");
-
-    xmlDocUniquePtr pXmlContentType = parseExport(tempFile, "[Content_Types].xml");
-    assertXPath(pXmlContentType,
-                "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/layout1.xml']",
-                "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml");
-    assertXPath(pXmlContentType,
-                "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/data1.xml']",
-                "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml");
-    assertXPath(pXmlContentType,
-                "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/colors1.xml']",
-                "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml");
-    assertXPath(pXmlContentType,
-                "/ContentType:Types/ContentType:Override[@PartName='/ppt/diagrams/quickStyle1.xml']",
-                "ContentType", "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml");
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf125346()
-{
-    // There are two themes in the test document, make sure we use the right theme
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf125346.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-    uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
-
-    drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
-    xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
-    CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
-
-    Color nFillColor;
-    xPropSet->getPropertyValue("FillColor") >>= nFillColor;
-    CPPUNIT_ASSERT_EQUAL(Color(0x90C226), nFillColor);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf125346_2()
-{
-    // There are two themes in the test document, make sure we use the right theme
-    // Test more slides with different themes
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf125346_2.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    {
-        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-        uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
-
-        drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
-        xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
-        CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
-
-        Color nFillColor;
-        xPropSet->getPropertyValue("FillColor") >>= nFillColor;
-        CPPUNIT_ASSERT_EQUAL(Color(0x90C226), nFillColor);
-    }
-
-    {
-        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 1, xDocShRef ) );
-        uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
-
-        drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
-        xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
-        CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
-
-        Color nFillColor;
-        xPropSet->getPropertyValue("FillColor") >>= nFillColor;
-        CPPUNIT_ASSERT_EQUAL(Color(0x052F61), nFillColor);
-    }
-
-    {
-        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 2, xDocShRef ) );
-        uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
-
-        drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
-        xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
-        CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
-
-        Color nFillColor;
-        xPropSet->getPropertyValue("FillColor") >>= nFillColor;
-        CPPUNIT_ASSERT_EQUAL(Color(0x90C226), nFillColor);
-    }
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf125360()
-{
-    // Check whether the changed fill transparency is exported correctly.
-    // Color is defined by shape style
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf125360.pptx"), PPTX);
-
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-
-    xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
-
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
-
-    sal_Int32 nTransparence = 0;
-    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf125360_1()
-{
-    // Check whether the changed fill transparency is exported correctly.
-    // Color is defined by color scheme
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf125360_1.pptx"), PPTX);
-
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-
-    xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
-
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
-
-    sal_Int32 nTransparence = 0;
-    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf125360_2()
-{
-    // Check whether the changed fill transparency is exported correctly.
-    // Color is defined by color scheme with a transparency
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf125360_2.pptx"), PPTX);
-
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-
-    sal_Int32 nTransparence = 0;
-    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(82), nTransparence);
-
-    xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
-
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
-
-    nTransparence = 0;
-    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf125551()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf125551.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    uno::Reference<drawing::XShapes> xGroupShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
-    uno::Reference<drawing::XShape> xShapeBg(xGroupShape->getByIndex(0), uno::UNO_QUERY);
-
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1024), xShapeBg->getPosition().X);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(576), xShapeBg->getPosition().Y);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(10815), xShapeBg->getSize().Width);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(8587), xShapeBg->getSize().Height);
-}
-
-void SdOOXMLExportTest2::testTdf136830()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf136830.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    // Without the fix in place, the X position of the shapes would have been 0
-    uno::Reference<drawing::XShapes> xGroupShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
-
-    uno::Reference<drawing::XShape> xShape1(xGroupShape->getByIndex(0), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(14134), xShape1->getPosition().X);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-5321), xShape1->getPosition().Y);
-
-    uno::Reference<drawing::XShape> xShape2(xGroupShape->getByIndex(1), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(8085), xShape2->getPosition().X);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(8085), xShape2->getPosition().Y);
-
-    uno::Reference<drawing::XShape> xShape3(xGroupShape->getByIndex(2), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(8283), xShape3->getPosition().X);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4620), xShape3->getPosition().Y);
-}
-
-void SdOOXMLExportTest2::testTdf100348_convert_Fontwork2TextWarp()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(
-        m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/tdf100348_Fontwork2TextWarp.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    // Resulting pptx has to contain the TextWarp shape
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    const OString sPathStart("/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:prstTxWarp");
-    assertXPath(pXmlDocContent, sPathStart + "[@prst='textWave1']");
-    const OString sPathAdj(sPathStart + "/a:avLst/a:gd");
-    assertXPath(pXmlDocContent, sPathAdj + "[@name='adj1' and  @fmla='val 18750']");
-    assertXPath(pXmlDocContent, sPathAdj + "[@name='adj2' and  @fmla='val -7500']");
-
-    // Reloading has to get the Fontwork shape back
-    // TextPath makes a custom shape to a Fontwork shape, so must exist
-    uno::Reference<beans::XPropertySet> xShapeWavePropSet(getShapeFromPage(0, 0, xDocShRef));
-    auto aGeomPropSeq = xShapeWavePropSet->getPropertyValue("CustomShapeGeometry")
-                            .get<uno::Sequence<beans::PropertyValue>>();
-    auto aGeomPropVec
-        = comphelper::sequenceToContainer<std::vector<beans::PropertyValue>>(aGeomPropSeq);
-    OUString sName = "TextPath";
-    auto aIterator = std::find_if(
-        aGeomPropVec.begin(), aGeomPropVec.end(),
-        [sName](const beans::PropertyValue& rValue) { return rValue.Name == sName; });
-    CPPUNIT_ASSERT_MESSAGE("No TextPath", aIterator != aGeomPropVec.end());
-
-    // Type has to be same as in original document on roundtrip.
-    sName = "Type";
-    auto aIterator2 = std::find_if(
-        aGeomPropVec.begin(), aGeomPropVec.end(),
-        [sName](const beans::PropertyValue& rValue) { return rValue.Name == sName; });
-    CPPUNIT_ASSERT_MESSAGE("No Type", aIterator2 != aGeomPropVec.end());
-    OUString sOwnName;
-    aIterator2->Value >>= sOwnName;
-    CPPUNIT_ASSERT_EQUAL(OUString("fontwork-wave"), sOwnName);
-
-    // Adjustmentvalues need to be the same.
-    sName = "AdjustmentValues";
-    auto aIterator3 = std::find_if(
-        aGeomPropVec.begin(), aGeomPropVec.end(),
-        [sName](const beans::PropertyValue& rValue) { return rValue.Name == sName; });
-    CPPUNIT_ASSERT_MESSAGE("No AdjustmentValues", aIterator3 != aGeomPropVec.end());
-    uno::Sequence<drawing::EnhancedCustomShapeAdjustmentValue> aAdjValueSeq;
-    aIterator3->Value >>= aAdjValueSeq;
-    double fAdj1;
-    aAdjValueSeq[0].Value >>= fAdj1;
-    double fAdj2;
-    aAdjValueSeq[1].Value >>= fAdj2;
-    CPPUNIT_ASSERT_EQUAL(4050.0, fAdj1); // odp values, not pptx values
-    CPPUNIT_ASSERT_EQUAL(9180.0, fAdj2);
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf1225573_FontWorkScaleX()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf125573_FontWorkScaleX.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    // Error was, that attribute 'fromWordArt' was ignored
-    // ensure, resulting pptx has fromWordArt="1" on textArchDown shape
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(
-        pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr[@fromWordArt='1']");
-
-    // Error was, that text in legacy shapes of category "Follow Path" was not scaled to the path.
-    uno::Reference<beans::XPropertySet> xShapeArchProps(getShapeFromPage(0, 0, xDocShRef));
-    awt::Rectangle aBoundRectArch;
-    xShapeArchProps->getPropertyValue(UNO_NAME_MISC_OBJ_BOUNDRECT) >>= aBoundRectArch;
-    // difference should be zero, but allow some range for stroke thickness
-    CPPUNIT_ASSERT_LESS(sal_Int32(50), std::abs(aBoundRectArch.Width - 13081));
-
-    // Error was, that text in shapes of category "Warp" was not scaled to the path.
-    uno::Reference<beans::XPropertySet> xShapeWaveProps(getShapeFromPage(0, 1, xDocShRef));
-    awt::Rectangle aBoundRectWave;
-    xShapeWaveProps->getPropertyValue(UNO_NAME_MISC_OBJ_BOUNDRECT) >>= aBoundRectWave;
-    // difference should be zero, but allow some range for stroke thickness
-    CPPUNIT_ASSERT_LESS(sal_Int32(50), std::abs(aBoundRectWave.Width - 11514));
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf126234()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf126234.pptx"), PPTX );
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    // check relative size of the bullet, 400% is a legitimate value for MS Office document
-    // Without a fix, it will fail to set the size correctly
-    const SdrPage *pPage = GetPage( 1, xDocShRef );
-    SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pPage->GetObj(0) );
-    CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != nullptr);
-    const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
-    const SvxNumBulletItem *pNumFmt = aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET);
-    CPPUNIT_ASSERT(pNumFmt);
-    CPPUNIT_ASSERT_EQUAL(sal_uInt16(400), pNumFmt->GetNumRule().GetLevel(0).GetBulletRelSize());
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf126741()
-{
-    sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf126741.pptx"), PPTX );
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    // dash dot dot line style import fix
-    // The original fixed values are replaced with the percent values, because
-    // with fix for tdf#127166 the MS Office preset styles are correctly detected.
-    const SdrPage *pPage = GetPage( 1, xDocShRef );
-    SdrObject *const pObj = pPage->GetObj(0);
-    CPPUNIT_ASSERT(pObj);
-
-    const XLineStyleItem& rStyleItem = dynamic_cast<const XLineStyleItem&>(
-        pObj->GetMergedItem(XATTR_LINESTYLE));
-    const XLineDashItem& rDashItem = dynamic_cast<const XLineDashItem&>(
-        pObj->GetMergedItem(XATTR_LINEDASH));
-
-    CPPUNIT_ASSERT_EQUAL(drawing::LineStyle_DASH, rStyleItem.GetValue());
-    CPPUNIT_ASSERT_EQUAL(sal_uInt16(1), rDashItem.GetDashValue().GetDots());
-    CPPUNIT_ASSERT_EQUAL(800.0, rDashItem.GetDashValue().GetDotLen());
-    CPPUNIT_ASSERT_EQUAL(sal_uInt16(2), rDashItem.GetDashValue().GetDashes());
-    CPPUNIT_ASSERT_EQUAL(100.0, rDashItem.GetDashValue().GetDashLen());
-    CPPUNIT_ASSERT_EQUAL(300.0, rDashItem.GetDashValue().GetDistance());
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf99497_keepAppearanceOfCircleKind()
-{
-    // Error was, that all CircleKind were exported to 'ellipse'.
-    // Resulting pptx has to contain the customshapes of the corresponding kind
-    // slide 1 ARC -> arc, slide 2 CUT -> chord, slide 3 SECTION -> pie
-    // Adjustment values need to exist and their values need to correspond to the
-    // original angles. Shape 'arc' needs to be unfilled.
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/tdf99497_CircleKind.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    // slide 1 45° -> adj1 = 20493903, 270° -> adj2 = 5400000, <a:noFill/> exists
-    xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
-    const OString sPathStart1("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
-    assertXPath(pXmlDocContent1, sPathStart1 + "[@prst='arc']");
-    const OString sPathAdj1(sPathStart1 + "/a:avLst/a:gd");
-    assertXPath(pXmlDocContent1, sPathAdj1 + "[@name='adj1' and  @fmla='val 20493903']");
-    assertXPath(pXmlDocContent1, sPathAdj1 + "[@name='adj2' and  @fmla='val 5400000']");
-    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:noFill");
-
-    // slide 2 270° -> adj1 = 5400000, 180° -> adj2 = 10800000
-    xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
-    const OString sPathStart2("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
-    assertXPath(pXmlDocContent2, sPathStart2 + "[@prst='chord']");
-    const OString sPathAdj2(sPathStart2 + "/a:avLst/a:gd");
-    assertXPath(pXmlDocContent2, sPathAdj2 + "[@name='adj1' and  @fmla='val 5400000']");
-    assertXPath(pXmlDocContent2, sPathAdj2 + "[@name='adj2' and  @fmla='val 10800000']");
-
-    // slide 3 120° -> adj1 = 12600000, 30° -> adj2 = 20946396
-    xmlDocUniquePtr pXmlDocContent3 = parseExport(tempFile, "ppt/slides/slide3.xml");
-    const OString sPathStart3("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
-    assertXPath(pXmlDocContent3, sPathStart3 + "[@prst='pie']");
-    const OString sPathAdj3(sPathStart3 + "/a:avLst/a:gd");
-    assertXPath(pXmlDocContent3, sPathAdj3 + "[@name='adj1' and  @fmla='val 12600000']");
-    assertXPath(pXmlDocContent3, sPathAdj3 + "[@name='adj2' and  @fmla='val 20946396']");
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf127372()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/tdf127372.odp"), ODP);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
-    awt::Gradient aTransparenceGradient;
-    xShape->getPropertyValue("FillTransparenceGradient") >>= aTransparenceGradient;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), aTransparenceGradient.StartColor);
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), aTransparenceGradient.EndColor);
-}
-
-void SdOOXMLExportTest2::testTdf127379()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/tdf127379.odp"), ODP);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    uno::Reference< drawing::XDrawPagesSupplier > xDoc(
-    xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDoc->getDrawPages()->getCount() );
-
-    uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) );
-    uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
-
-    uno::Any aAny = xPropSet->getPropertyValue( "Background" );
-    CPPUNIT_ASSERT_MESSAGE("Slide background is missing", aAny.hasValue());
-    uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
-    aAny >>= aXBackgroundPropSet;
-
-    drawing::FillStyle aFillStyle(drawing::FillStyle_NONE);
-    aXBackgroundPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
-    CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, aFillStyle);
-
-    awt::Gradient aGradient;
-    CPPUNIT_ASSERT(aXBackgroundPropSet->getPropertyValue("FillGradient") >>= aGradient);
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), aGradient.StartColor);
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(0x2A6099), aGradient.EndColor);
-}
-
-void SdOOXMLExportTest2::testTdf98603()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf98603.pptx"), PPTX);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
-    uno::Reference<text::XTextRange> const xParagraph(getParagraphFromShape(0, xShape));
-    uno::Reference<text::XTextRange> xRun(getRunFromParagraph(0, xParagraph));
-    uno::Reference< beans::XPropertySet> xPropSet(xRun, uno::UNO_QUERY_THROW);
-    css::lang::Locale aLocale;
-    xPropSet->getPropertyValue("CharLocaleComplex") >>= aLocale;
-    CPPUNIT_ASSERT_EQUAL(OUString("he"), aLocale.Language);
-    CPPUNIT_ASSERT_EQUAL(OUString("IL"), aLocale.Country);
-}
-
-void SdOOXMLExportTest2::testTdf128213()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf128213.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPathNoAttribute(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:xfrm", "rot");
-}
-
-void SdOOXMLExportTest2::testTdf79082()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf79082.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX, &tempFile );
-
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[1]",
-        "pos",
-        "360000");
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[1]",
-        "algn",
-        "l");
-
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[2]",
-        "pos",
-        "756000");
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[2]",
-        "algn",
-        "l");
-
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[3]",
-        "pos",
-        "1440000");
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[3]",
-        "algn",
-        "ctr");
-
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[4]",
-        "pos",
-        "1800000");
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[4]",
-        "algn",
-        "r");
-
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[5]",
-        "pos",
-        "3240000");
-    assertXPath(pXmlDocContent,
-        "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p/a:pPr/a:tabLst/a:tab[5]",
-        "algn",
-        "dec");
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testTdf129372()
-{
-    //Without the fix in place, it would crash at import time
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf129372.pptx"), PPTX);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    const SdrPage *pPage = GetPage( 1, xDocShRef.get() );
-
-    const SdrObject* pObj = pPage->GetObj(0);
-    CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr);
-    CPPUNIT_ASSERT_EQUAL( OBJ_OLE2, pObj->GetObjIdentifier() );
-}
-
-void SdOOXMLExportTest2::testShapeGlowEffect()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/shape-glow-effect.pptx"), PPTX);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
-    sal_Int32 nRadius = -1;
-    xShape->getPropertyValue("GlowEffectRadius") >>= nRadius;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(388), nRadius); // 139700 EMU = 388.0556 mm/100
-    Color nColor;
-    xShape->getPropertyValue("GlowEffectColor") >>= nColor;
-    CPPUNIT_ASSERT_EQUAL(Color(0xFFC000), nColor);
-    sal_Int16 nTransparency;
-    xShape->getPropertyValue("GlowEffectTransparency") >>= nTransparency;
-    CPPUNIT_ASSERT_EQUAL(sal_Int16(60), nTransparency);
-}
-
-void SdOOXMLExportTest2::testTdf119087()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf119087.pptx"), PPTX);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    // This would fail both on export validation, and reloading the saved pptx file.
-}
-
-void SdOOXMLExportTest2::testTdf131554()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf131554.pptx"), PPTX);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    uno::Reference<drawing::XShape> xShape(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5622), xShape->getPosition().X);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(13251), xShape->getPosition().Y);
-}
-
-void SdOOXMLExportTest2::testTdf132282()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf132282.pptx"), PPTX);
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-    uno::Reference<drawing::XShape> xShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY);
-    // Without the fix in place, the position would be 0,0, height = 1 and width = 1
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1736), xShape->getPosition().X);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(763), xShape->getPosition().Y);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(30523), xShape->getSize().Width);
-    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2604), xShape->getSize().Height);
-}
-
-void SdOOXMLExportTest2::testTdf132201EffectOrder()
-{
-    auto xDocShRef = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/effectOrder.pptx"),
-                             PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPathChildren(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:effectLst", 2);
-    // The relative order of effects is important: glow must be before shadow
-    CPPUNIT_ASSERT_EQUAL(0, getXPathPosition(pXmlDocContent,
-                                             "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:effectLst",
-                                             "glow"));
-    CPPUNIT_ASSERT_EQUAL(1, getXPathPosition(pXmlDocContent,
-                                             "/p:sld/p:cSld/p:spTree/p:sp[3]/p:spPr/a:effectLst",
-                                             "outerShdw"));
-
-    xDocShRef->DoClose();
-}
-
-void SdOOXMLExportTest2::testShapeSoftEdgeEffect()
-{
-    auto xDocShRef
-        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/shape-soft-edges.pptx"), PPTX);
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
-    auto xShapeProps(getShapeFromPage(0, 0, xDocShRef));
-    sal_Int32 nRadius = -1;
-    xShapeProps->getPropertyValue("SoftEdgeRadius") >>= nRadius;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(635), nRadius); // 18 pt
-}
-
-void SdOOXMLExportTest2::testShapeShadowBlurEffect()
-{
-    auto xDocShRef
-            = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/shape-blur-effect.pptx"), PPTX);
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
-    uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
-    bool bHasShadow = false;
-    xShape->getPropertyValue("Shadow") >>= bHasShadow;
-    CPPUNIT_ASSERT(bHasShadow);
-    sal_Int32 nRadius = -1;
-    xShape->getPropertyValue("ShadowBlur") >>= nRadius;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(388), nRadius); // 11 pt
-}
-
-void SdOOXMLExportTest2::testTdf119223()
-{
-    auto xDocShRef
-        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf119223.odp"), ODP);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/slide1.xml");
-    assertXPath(pXmlDocRels,
-                "//p:cNvPr[@name='SomeCustomShape']");
-
-    assertXPath(pXmlDocRels,
-                "//p:cNvPr[@name='SomePicture']");
-
-    assertXPath(pXmlDocRels,
-                "//p:cNvPr[@name='SomeFormula']");
-
-    assertXPath(pXmlDocRels,
-                "//p:cNvPr[@name='SomeLine']");
-
-    assertXPath(pXmlDocRels,
-                "//p:cNvPr[@name='SomeTextbox']");
-
-    assertXPath(pXmlDocRels,
-                "//p:cNvPr[@name='SomeTable']");
-
-    assertXPath(pXmlDocRels,
-                "//p:cNvPr[@name='SomeGroup']");
-}
-
-void SdOOXMLExportTest2::testTdf128213ShapeRot()
-{
-    auto xDocShRef
-            = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf128213-shaperot.pptx"), PPTX);
-    utl::TempFile tempFile;
-    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "ppt/slides/slide1.xml");
-
-    assertXPath(pXmlDocRels, "/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr/a:scene3d");
-    assertXPath(pXmlDocRels, "/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr/a:scene3d/a:camera/a:rot", "rev", "5400000");
-}
-
-void SdOOXMLExportTest2::testTdf125560_textDeflate()
-{
-    auto xDocShRef
-        = loadURL( m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/ShapePlusImage.pptx"), PPTX );
-    utl::TempFile tempFile;
-
-    // This problem did not affect the pptx export, only the ODP so assert that
-    xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "content.xml");
-    assertXPath(pXmlDocRels, "/office:document-content/office:body/office:presentation/draw:page/draw:custom-shape/draw:enhanced-geometry", "type", "mso-spt161");
-}
-
-void SdOOXMLExportTest2::testTdf125560_textInflateTop()
-{
-    auto xDocShRef
-        = loadURL( m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/ShapeTextInflateTop.pptx"), PPTX );
-    utl::TempFile tempFile;
-
-    // This problem did not affect the pptx export, only the ODP so assert that
-    xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile);
-    xDocShRef->DoClose();
-
-    xmlDocUniquePtr pXmlDocRels = parseExport(tempFile, "content.xml");
-    assertXPath(pXmlDocRels, "/office:document-content/office:body/office:presentation/draw:page/draw:custom-shape/draw:enhanced-geometry", "type", "mso-spt164");
-}
-
-void SdOOXMLExportTest2::testTdf96061_textHighlight()
-{
-    ::sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf96061.pptx"), PPTX);
-
-    uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
-    uno::Reference<text::XTextRange> const xParagraph1(getParagraphFromShape(0, xShape));
-    uno::Reference<text::XTextRange> xRun1(getRunFromParagraph(0, xParagraph1));
-    uno::Reference< beans::XPropertySet> xPropSet1(xRun1, uno::UNO_QUERY_THROW);
-    sal_Int32 aColor;
-    xPropSet1->getPropertyValue("CharBackColor") >>= aColor;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(16776960), aColor);
-
-    uno::Reference<text::XTextRange> const xParagraph2(getParagraphFromShape(1, xShape));
-    uno::Reference<text::XTextRange> xRun2(getRunFromParagraph(0, xParagraph2));
-    uno::Reference< beans::XPropertySet> xPropSet2(xRun2, uno::UNO_QUERY_THROW);
-    xPropSet2->getPropertyValue("CharBackColor") >>= aColor;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), aColor);
-
-    xDocShRef = saveAndReload( xDocShRef.get(), PPTX );
-
-    uno::Reference<beans::XPropertySet> xShape2(getShapeFromPage(0, 0, xDocShRef));
-    uno::Reference<text::XTextRange> const xParagraph3(getParagraphFromShape(0, xShape2));
-    uno::Reference<text::XTextRange> xRun3(getRunFromParagraph(0, xParagraph3));
-    uno::Reference< beans::XPropertySet> xPropSet3(xRun3, uno::UNO_QUERY_THROW);
-    xPropSet3->getPropertyValue("CharBackColor") >>= aColor;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(16776960), aColor);
-
-    uno::Reference<text::XTextRange> const xParagraph4(getParagraphFromShape(1, xShape2));
-    uno::Reference<text::XTextRange> xRun4(getRunFromParagraph(0, xParagraph4));
-    uno::Reference< beans::XPropertySet> xPropSet4(xRun4, uno::UNO_QUERY_THROW);
-    xPropSet4->getPropertyValue("CharBackColor") >>= aColor;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), aColor);
-}
 
 void SdOOXMLExportTest2::testTextColumns_tdf140852()
 {
diff --git a/sd/qa/unit/export-tests-ooxml3.cxx b/sd/qa/unit/export-tests-ooxml3.cxx
new file mode 100644
index 000000000000..fb2db18e8d22
--- /dev/null
+++ b/sd/qa/unit/export-tests-ooxml3.cxx
@@ -0,0 +1,1730 @@
+
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#include <officecfg/Office/Common.hxx>
+#include "sdmodeltestbase.hxx"
+#include <comphelper/propertysequence.hxx>
+#include <comphelper/sequence.hxx>
+#include <editeng/eeitem.hxx>
+#include <editeng/editobj.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/numitem.hxx>
+#include <editeng/unoprnms.hxx>
+
+#include <svx/svdotext.hxx>
+#include <svx/svdomedia.hxx>
+#include <svx/svdotable.hxx>
+#include <svx/xlineit0.hxx>
+#include <svx/xlndsit.hxx>
+#include <rtl/ustring.hxx>
+
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/animations/TransitionType.hpp>
+#include <com/sun/star/animations/TransitionSubType.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
+#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/style/LineSpacing.hpp>
+#include <com/sun/star/style/LineSpacingMode.hpp>
+#include <com/sun/star/frame/XLoadable.hpp>
+
+#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
+
+#include <sdpage.hxx>
+#include <cfloat>
+#include <cstdlib>
+
+#include <rtl/character.hxx>
+
+class SdOOXMLExportTest3 : public SdModelTestBaseXML
+{
+public:
+    void testTdf114848();
+    void testTdf68759();
+    void testTdf127901();
+    void testTdf48735();
+    void testTdf90626();
+    void testTdf107608();
+    void testTdf111786();
+    void testFontScale();
+    void testShapeAutofitPPTX();
+    void testLegacyShapeAutofitPPTX();
+    void testTdf115394();
+    void testTdf115394Zero();
+    void testTdf115005();
+    int testTdf115005_FallBack_Images(bool bAddReplacementImages);
+    void testTdf115005_FallBack_Images_On();
+    void testTdf115005_FallBack_Images_Off();
+    void testTdf118806();
+    void testTdf130058();
+    void testTdf111789();
+    void testTdf100348_convert_Fontwork2TextWarp();
+    void testTdf1225573_FontWorkScaleX();
+    void testTdf99497_keepAppearanceOfCircleKind();
+    /// SmartArt animated elements
+    void testTdf104792();
+    void testTdf90627();
+    void testTdf104786();
+    void testTdf118783();
+    void testTdf104789();
+    void testOpenDocumentAsReadOnly();
+    void testTdf118835();
+    void testTdf118768();
+    void testTdf118836();
+    void testTdf116350TextEffects();
+    void testTdf128096();
+    void testTdf120573();
+    void testTdf119118();
+    void testTdf99213();
+    void testPotxExport();
+    void testTdf44223();
+    void testSmartArtPreserve();
+    void testTdf125346();
+    void testTdf125346_2();
+    void testTdf125360();
+    void testTdf125360_1();
+    void testTdf125360_2();
+    void testTdf125551();
+    void testTdf136830();
+    void testTdf126234();
+    void testTdf126741();
+    void testTdf127372();
+    void testTdf127379();
+    void testTdf98603();
+    void testTdf79082();
+    void testTdf128213();
+    void testTdf129372();
+    void testShapeGlowEffect();
+    void testTdf119087();
+    void testTdf131554();
+    void testTdf132282();
+    void testTdf132201EffectOrder();
+    void testShapeSoftEdgeEffect();
+    void testShapeShadowBlurEffect();
+    void testTdf119223();
+    void testTdf128213ShapeRot();
+    void testTdf125560_textDeflate();
+    void testTdf125560_textInflateTop();
+    void testTdf96061_textHighlight();
+
+    CPPUNIT_TEST_SUITE(SdOOXMLExportTest3);
+
+    CPPUNIT_TEST(testTdf114848);
+    CPPUNIT_TEST(testTdf68759);
+    CPPUNIT_TEST(testTdf127901);
+    CPPUNIT_TEST(testTdf48735);
+    CPPUNIT_TEST(testTdf90626);
+    CPPUNIT_TEST(testTdf107608);
+    CPPUNIT_TEST(testTdf111786);
+    CPPUNIT_TEST(testFontScale);
+    CPPUNIT_TEST(testShapeAutofitPPTX);
+    CPPUNIT_TEST(testLegacyShapeAutofitPPTX);
+    CPPUNIT_TEST(testTdf115394);
+    CPPUNIT_TEST(testTdf115394Zero);
+    CPPUNIT_TEST(testTdf115005);
+    CPPUNIT_TEST(testTdf115005_FallBack_Images_On);
+    CPPUNIT_TEST(testTdf115005_FallBack_Images_Off);
+    CPPUNIT_TEST(testTdf118806);
+    CPPUNIT_TEST(testTdf130058);
+    CPPUNIT_TEST(testTdf111789);
+    CPPUNIT_TEST(testTdf100348_convert_Fontwork2TextWarp);
+    CPPUNIT_TEST(testTdf1225573_FontWorkScaleX);
+    CPPUNIT_TEST(testTdf99497_keepAppearanceOfCircleKind);
+    CPPUNIT_TEST(testTdf104792);
+    CPPUNIT_TEST(testTdf90627);
+    CPPUNIT_TEST(testTdf104786);
+    CPPUNIT_TEST(testTdf118783);
+    CPPUNIT_TEST(testTdf104789);
+    CPPUNIT_TEST(testOpenDocumentAsReadOnly);
+    CPPUNIT_TEST(testTdf118835);
+    CPPUNIT_TEST(testTdf118768);
+    CPPUNIT_TEST(testTdf118836);
+    CPPUNIT_TEST(testTdf116350TextEffects);
+    CPPUNIT_TEST(testTdf128096);
+    CPPUNIT_TEST(testTdf120573);
+    CPPUNIT_TEST(testTdf119118);
+    CPPUNIT_TEST(testTdf99213);
+    CPPUNIT_TEST(testPotxExport);
+    CPPUNIT_TEST(testTdf44223);
+    CPPUNIT_TEST(testSmartArtPreserve);
+    CPPUNIT_TEST(testTdf125346);
+    CPPUNIT_TEST(testTdf125346_2);
+    CPPUNIT_TEST(testTdf125360);
+    CPPUNIT_TEST(testTdf125360_1);
+    CPPUNIT_TEST(testTdf125360_2);
+    CPPUNIT_TEST(testTdf125551);
+    CPPUNIT_TEST(testTdf136830);
+    CPPUNIT_TEST(testTdf126234);
+    CPPUNIT_TEST(testTdf126741);
+    CPPUNIT_TEST(testTdf127372);
+    CPPUNIT_TEST(testTdf127379);
+    CPPUNIT_TEST(testTdf98603);
+    CPPUNIT_TEST(testTdf79082);
+    CPPUNIT_TEST(testTdf128213);
+    CPPUNIT_TEST(testTdf129372);
+    CPPUNIT_TEST(testShapeGlowEffect);
+    CPPUNIT_TEST(testTdf119087);
+    CPPUNIT_TEST(testTdf131554);
+    CPPUNIT_TEST(testTdf132282);
+    CPPUNIT_TEST(testTdf132201EffectOrder);
+    CPPUNIT_TEST(testShapeSoftEdgeEffect);
+    CPPUNIT_TEST(testShapeShadowBlurEffect);
+    CPPUNIT_TEST(testTdf119223);
+    CPPUNIT_TEST(testTdf128213ShapeRot);
+    CPPUNIT_TEST(testTdf125560_textDeflate);
+    CPPUNIT_TEST(testTdf125560_textInflateTop);
+    CPPUNIT_TEST(testTdf96061_textHighlight);
+    CPPUNIT_TEST_SUITE_END();
+
+    virtual void registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) override
+    {
+        XmlTestTools::registerODFNamespaces(pXmlXPathCtx);
+        XmlTestTools::registerOOXMLNamespaces(pXmlXPathCtx);
+    }
+};
+
+void SdOOXMLExportTest3::testTdf114848()
+{
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf114848.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xDocShRef->DoClose();
+
+    xmlDocUniquePtr pXmlDocTheme1 = parseExport(tempFile, "ppt/theme/theme1.xml");
+    assertXPath(pXmlDocTheme1, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val",
+                "1f497d");
+    xmlDocUniquePtr pXmlDocTheme2 = parseExport(tempFile, "ppt/theme/theme2.xml");
+    assertXPath(pXmlDocTheme2, "/a:theme/a:themeElements/a:clrScheme/a:dk2/a:srgbClr", "val",
+                "1f497d");
+}
+
+void SdOOXMLExportTest3::testTdf68759()
+{
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf68759.odp"), ODP);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xDocShRef->DoClose();
+
+    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[1]/p:spPr/a:xfrm/a:off", "x",
+                "1687320");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[1]/p:spPr/a:xfrm/a:off", "y",
+                "1615320");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm", "flipH", "1");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm", "rot", "9600000");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm/a:off", "x",
+                "3847320");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[2]/p:spPr/a:xfrm/a:off", "y",
+                "1614600");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm", "flipH", "1");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm/a:off", "x",
+                "5934960");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:pic[3]/p:spPr/a:xfrm/a:off", "y",
+                "1615320");
+}
+
+void SdOOXMLExportTest3::testTdf127901()
+{
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf127901.odp"), ODP);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xDocShRef->DoClose();
+
+    xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:lum", "bright",
+                "70000");
+    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:lum", "contrast",
+                "-70000");
+
+    xmlDocUniquePtr pXmlDocContent2 = parseExport(tempFile, "ppt/slides/slide2.xml");
+    assertXPath(pXmlDocContent2, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:grayscl", 1);
+
+    xmlDocUniquePtr pXmlDocContent3 = parseExport(tempFile, "ppt/slides/slide3.xml");
+    assertXPath(pXmlDocContent3, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:biLevel",
+                "thresh", "50000");
+}
+
+void SdOOXMLExportTest3::testTdf48735()
+{
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf48735.odp"), ODP);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xDocShRef->DoClose();
+
+    xmlDocUniquePtr pXmlDocContent1 = parseExport(tempFile, "ppt/slides/slide1.xml");
+    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "b", "23627");
+    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "l", "23627");
+    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "r", "23627");
+    assertXPath(pXmlDocContent1, "/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:srcRect", "t", "18842");
+}
+
+void SdOOXMLExportTest3::testTdf90626()
+{
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf90626.odp"), ODP);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xDocShRef->DoClose();
+
+    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[1]/a:pPr/a:buSzPct",
+                "val", "100000");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[2]/a:pPr/a:buSzPct",
+                "val", "150142");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[3]/a:pPr/a:buSzPct",
+                "val", "100000");
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:p[4]/a:pPr/a:buSzPct",
+                "val", "150142");
+}
+
+void SdOOXMLExportTest3::testTdf107608()
+{
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf107608.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+    uno::Reference<beans::XPropertySet> xPropSet(xShape, uno::UNO_SET_THROW);
+
+    drawing::FillStyle aFillStyle(drawing::FillStyle_NONE);
+    xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+    CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_HATCH, aFillStyle);
+
+    bool bBackgroundFill = false;
+    xPropSet->getPropertyValue("FillBackground") >>= bBackgroundFill;
+    CPPUNIT_ASSERT(bBackgroundFill);
+
+    Color nBackgroundColor;
+    xPropSet->getPropertyValue("FillColor") >>= nBackgroundColor;
+    CPPUNIT_ASSERT_EQUAL(Color(0x92D050), nBackgroundColor);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest3::testTdf111786()
+{
+    // Export line transparency with the color
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/pptx/tdf111786.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0, xDocShRef));
+    uno::Reference<beans::XPropertySet> xPropSet(xShape, uno::UNO_SET_THROW);
+
+    Color nLineColor;
+    xPropSet->getPropertyValue("LineColor") >>= nLineColor;
+    CPPUNIT_ASSERT_EQUAL(Color(0x3465A4), nLineColor);
+
+    sal_Int16 nTransparency;
+    xPropSet->getPropertyValue("LineTransparence") >>= nTransparency;
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(33), nTransparency);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest3::testFontScale()
+{
+    sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/font-scale.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+    // Rounding errors possible, approximate value (+/- 1%)
+    OUString sScale = getXPath(
+        pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:bodyPr/a:normAutofit", "fontScale");
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(sal_Int32(76000), sScale.toInt32(), 1000);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest3::testShapeAutofitPPTX()
+{
+    sd::DrawDocShellRef xDocShRef = loadURL(
+        m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/testShapeAutofit.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+    CPPUNIT_ASSERT(pXmlDocContent);
+
+    // TextAutoGrowHeight --> "Resize shape to fit text" --> true
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:spAutoFit", 1);
+    // TextAutoGrowHeight --> "Resize shape to fit text" --> false
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr/a:noAutofit", 1);
+}
+
+void SdOOXMLExportTest3::testLegacyShapeAutofitPPTX()
+{
+    sd::DrawDocShellRef xDocShRef = loadURL(
+        m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/testLegacyShapeAutofit.odp"), ODP);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+    CPPUNIT_ASSERT(pXmlDocContent);
+
+    // Text in a legacy rectangle
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:noAutofit", 1);
+    // Text in (closed) Polygon
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr/a:noAutofit", 1);
+    // Text in a legacy ellipse
+    assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[3]/p:txBody/a:bodyPr/a:noAutofit", 1);
+}
+
+void SdOOXMLExportTest3::testTdf115394()
+{
+    sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf115394.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    double fTransitionDuration;
+
+    // Slow in MS formats
+    SdPage* pPage1 = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+    fTransitionDuration = pPage1->getTransitionDuration();
+    CPPUNIT_ASSERT_EQUAL(1.0, fTransitionDuration);
+
+    // Medium in MS formats
+    SdPage* pPage2 = xDocShRef->GetDoc()->GetSdPage(1, PageKind::Standard);
+    fTransitionDuration = pPage2->getTransitionDuration();
+    CPPUNIT_ASSERT_EQUAL(0.75, fTransitionDuration);
+
+    // Fast in MS formats
+    SdPage* pPage3 = xDocShRef->GetDoc()->GetSdPage(2, PageKind::Standard);
+    fTransitionDuration = pPage3->getTransitionDuration();
+    CPPUNIT_ASSERT_EQUAL(0.5, fTransitionDuration);
+
+    // Custom values
+    SdPage* pPage4 = xDocShRef->GetDoc()->GetSdPage(3, PageKind::Standard);
+    fTransitionDuration = pPage4->getTransitionDuration();
+    CPPUNIT_ASSERT_EQUAL(0.25, fTransitionDuration);
+
+    SdPage* pPage5 = xDocShRef->GetDoc()->GetSdPage(4, PageKind::Standard);
+    fTransitionDuration = pPage5->getTransitionDuration();
+    CPPUNIT_ASSERT_EQUAL(4.25, fTransitionDuration);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest3::testTdf115394Zero()
+{
+    sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf115394-zero.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    double fTransitionDuration;
+
+    SdPage* pPage = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+    fTransitionDuration = pPage->getTransitionDuration();
+    CPPUNIT_ASSERT_EQUAL(0.01, fTransitionDuration);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest3::testTdf115005()
+{
+    sd::DrawDocShellRef xDocShRefOriginal
+        = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf115005.odp"), ODP);
+    utl::TempFile tempFile;
+    sd::DrawDocShellRef xDocShRefResaved = saveAndReload(xDocShRefOriginal.get(), ODP, &tempFile);
+
+    // additional checks of the output file
+    uno::Reference<packages::zip::XZipFileAccess2> xNameAccess
+        = packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory),
+                                                      tempFile.GetURL());
+
+    // check that the document contains original vector images
+    const uno::Sequence<OUString> names = xNameAccess->getElementNames();
+    int nSVMFiles = 0;
+    for (OUString const& s : names)
+    {
+        if (s.endsWith(".svm"))
+            nSVMFiles++;
+    }
+    CPPUNIT_ASSERT_EQUAL(3, nSVMFiles);
+}
+
+int SdOOXMLExportTest3::testTdf115005_FallBack_Images(bool bAddReplacementImages)
+{
+    sd::DrawDocShellRef xDocShRefOriginal = loadURL(
+        m_directories.getURLFromSrc(u"sd/qa/unit/data/odp/tdf115005_no_fallback_images.odp"), ODP);
+
+    // check if fallback images were not created if AddReplacementImages=true/false
+    // set AddReplacementImages
+    {
+        std::shared_ptr<comphelper::ConfigurationChanges> batch(
+            comphelper::ConfigurationChanges::create());
+        if (!officecfg::Office::Common::Save::Graphic::AddReplacementImages::isReadOnly())
+            officecfg::Office::Common::Save::Graphic::AddReplacementImages::set(

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list