CppunitTest_sd_import_tests-smartart: inherit from UnoApiTest

Change-Id: I4ef95f3899cc67aaba0d9d657341890b3cb73fc8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142069
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
This commit is contained in:
Xisco Fauli 2022-10-31 11:33:56 +01:00
parent 190cd40e01
commit a4c8658964
2 changed files with 110 additions and 268 deletions

View file

@ -44,6 +44,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sd_import_tests$(1), \
sd \
sfx \
sot \
subsequenttest \
svl \
svt \
svx \

View file

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