From e9986153e44d7ec6ca9c5f1373971de74dcbacda Mon Sep 17 00:00:00 2001 From: Grzegorz Araminowicz Date: Thu, 14 Mar 2019 08:25:12 +0100 Subject: PPTX import: import SmartArt drawing into single GroupShape before that there were imported two GroupShapes: - empty one with properties like id, name, InteropGrapBag - second one with actual shapes also fixed tests that relyed on that behaviour Change-Id: I2b94a53e21666b16725c4353448d75e916e4f9df Reviewed-on: https://gerrit.libreoffice.org/69252 Tested-by: Jenkins Reviewed-by: Miklos Vajna --- sd/qa/unit/data/xml/n819614_0.xml | 10 +--------- sd/qa/unit/export-tests-ooxml1.cxx | 12 ++++++------ sd/qa/unit/export-tests-ooxml2.cxx | 8 ++++---- sd/qa/unit/import-tests.cxx | 7 ++++--- 4 files changed, 15 insertions(+), 22 deletions(-) (limited to 'sd/qa') diff --git a/sd/qa/unit/data/xml/n819614_0.xml b/sd/qa/unit/data/xml/n819614_0.xml index 8238da646086..fc109917c460 100644 --- a/sd/qa/unit/data/xml/n819614_0.xml +++ b/sd/qa/unit/data/xml/n819614_0.xml @@ -14,15 +14,7 @@ - - - - - - - - - + diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx index e7a5ec7b0f16..7161b327e98b 100644 --- a/sd/qa/unit/export-tests-ooxml1.cxx +++ b/sd/qa/unit/export-tests-ooxml1.cxx @@ -223,7 +223,7 @@ void SdOOXMLExportTest1::testBnc870233_2() // First smart art has blue font color (direct formatting) { - const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(1)); + const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(0)); CPPUNIT_ASSERT(pObjGroup); const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(0)); checkFontAttributes(pObj, Color(0x0000ff)); @@ -231,7 +231,7 @@ void SdOOXMLExportTest1::testBnc870233_2() // Second smart art has "dk2" font color (style) { - const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(3)); // FIXME should be 1, smartart import creates an additional empty group for some reason + const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(1)); CPPUNIT_ASSERT(pObjGroup); const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(0)); checkFontAttributes( pObj, Color(0x1F497D) ); @@ -239,7 +239,7 @@ void SdOOXMLExportTest1::testBnc870233_2() // Third smart art has white font color (style) { - const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(5)); // FIXME should be 2, smartart import creates an additional empty group for some reason + const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(2)); CPPUNIT_ASSERT(pObjGroup); const SdrTextObj *pObj = dynamic_cast(pObjGroup->GetSubList()->GetObj(0)); checkFontAttributes(pObj, Color(0xffffff)); @@ -367,14 +367,14 @@ void SdOOXMLExportTest1::testBnc880763() // Check z-order of the two shapes, use background color to identify them // First object in the background has blue background color - const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(1)); + const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(0)); CPPUNIT_ASSERT(pObjGroup); const SdrObject *pObj = pObjGroup->GetSubList()->GetObj(0); CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr); CPPUNIT_ASSERT_EQUAL( Color(0x0000ff),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue()); // Second object at the front has green background color - pObj = pPage->GetObj(2); // FIXME should be 1, smartart import creates an additional empty group for some reason + pObj = pPage->GetObj(1); CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr); CPPUNIT_ASSERT_EQUAL( Color(0x00ff00),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue()); @@ -389,7 +389,7 @@ void SdOOXMLExportTest1::testBnc862510_5() const SdrPage *pPage = GetPage( 1, xDocShRef ); // Same as testBnc870237, but here we check the horizontal spacing - const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(1)); + const SdrObjGroup *pObjGroup = dynamic_cast(pPage->GetObj(0)); CPPUNIT_ASSERT(pObjGroup); const SdrObject* pObj = pObjGroup->GetSubList()->GetObj(1); CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr); diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index eda6827a6869..157e9029b75e 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -1413,10 +1413,10 @@ void SdOOXMLExportTest2::testGroupsPosition() xDocShRef->DoClose(); xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml"); - assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[2]/p:sp[1]/p:spPr/a:xfrm/a:off", "x", "4040640"); - assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[2]/p:sp[1]/p:spPr/a:xfrm/a:off", "y", "4273920"); - assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[2]/p:sp[3]/p:spPr/a:xfrm/a:off", "x", "6796800"); - assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[2]/p:sp[3]/p:spPr/a:xfrm/a:off", "y", "4273920"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[1]/p:spPr/a:xfrm/a:off", "x", "4040640"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[1]/p:spPr/a:xfrm/a:off", "y", "4273920"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[3]/p:spPr/a:xfrm/a:off", "x", "6796800"); + assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:grpSp[1]/p:sp[3]/p:spPr/a:xfrm/a:off", "y", "4273920"); } void SdOOXMLExportTest2::testGroupsRotatedPosition() diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index ef62c5bfecdc..696a4e5ded83 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -447,7 +447,8 @@ void SdImportTest::testN862510_2() const SdrPage *pPage = GetPage( 1, xDocShRef ); { - SdrObjGroup *pGrpObj = dynamic_cast( pPage->GetObj( 1 ) ); + CPPUNIT_ASSERT_EQUAL(size_t(1), pPage->GetObjCount()); + SdrObjGroup *pGrpObj = dynamic_cast( pPage->GetObj( 0 ) ); CPPUNIT_ASSERT( pGrpObj ); SdrObjCustomShape *pObj = dynamic_cast( pGrpObj->GetSubList()->GetObj( 0 ) ); CPPUNIT_ASSERT( pObj ); @@ -827,7 +828,7 @@ void SdImportTest::testBnc870237() const SdrPage *pPage = GetPage( 1, xDocShRef ); // Simulate a:ext inside dsp:txXfrm with changing the lower distance - const SdrObjGroup* pObj = dynamic_cast( pPage->GetObj( 1 ) ); + const SdrObjGroup* pObj = dynamic_cast( pPage->GetObj( 0 ) ); CPPUNIT_ASSERT_MESSAGE( "no object", pObj != nullptr); CPPUNIT_ASSERT_EQUAL( sal_Int32(0), pObj->GetMergedItem(SDRATTR_TEXT_UPPERDIST).GetValue()); CPPUNIT_ASSERT_EQUAL( sal_Int32(9919), pObj->GetMergedItem(SDRATTR_TEXT_LOWERDIST).GetValue()); @@ -1274,7 +1275,7 @@ void SdImportTest::testTdf93830() uno::Reference< drawing::XDrawPage > xPage( getPage( 0, xDocShRef ) ); // Get the first text box from group shape - uno::Reference< container::XIndexAccess > xShape( xPage->getByIndex(1), uno::UNO_QUERY ); + uno::Reference< container::XIndexAccess > xShape( xPage->getByIndex(0), uno::UNO_QUERY ); uno::Reference< beans::XPropertySet > xPropSet( xShape->getByIndex(2), uno::UNO_QUERY ); CPPUNIT_ASSERT_MESSAGE( "no textbox shape", xPropSet.is() ); -- cgit