CppunitTest_sc_shapetest: use member XComponent
Change-Id: If881b238991cfce8d866edd662fb6eb70c8f29a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141336
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/sc/qa/unit/scshapetest.cxx b/sc/qa/unit/scshapetest.cxx
index 299ef1f..ac01be4 100644
--- a/sc/qa/unit/scshapetest.cxx
+++ b/sc/qa/unit/scshapetest.cxx
@@ -42,8 +42,7 @@ class ScShapeTest : public CalcUnoApiTest
{
public:
ScShapeTest();
void saveAndReload(css::uno::Reference<css::lang::XComponent>& xComponent,
const OUString& rFilter);
void saveAndReload(const OUString& rFilter);
void testTdf143619_validation_circle_pos();
void testTdf140252_DragCreateFormControl();
void testTdf134355_DragCreateCustomShape();
@@ -97,6 +96,9 @@ public:
CPPUNIT_TEST(testTdf144242_OpenBezier_noSwapWH);
CPPUNIT_TEST(testLargeAnchorOffset);
CPPUNIT_TEST_SUITE_END();
private:
uno::Reference<lang::XComponent> mxComponent;
};
ScShapeTest::ScShapeTest()
@@ -104,19 +106,18 @@ ScShapeTest::ScShapeTest()
{
}
void ScShapeTest::saveAndReload(css::uno::Reference<css::lang::XComponent>& xComponent,
const OUString& rFilter)
void ScShapeTest::saveAndReload(const OUString& rFilter)
{
utl::TempFileNamed aTempFile;
aTempFile.EnableKillingFile();
css::uno::Sequence aArgs{ comphelper::makePropertyValue("FilterName",
rFilter) }; // e.g. "calc8"
css::uno::Reference<css::frame::XStorable> xStorable(xComponent, css::uno::UNO_QUERY_THROW);
css::uno::Reference<css::frame::XStorable> xStorable(mxComponent, css::uno::UNO_QUERY_THROW);
xStorable->storeAsURL(aTempFile.GetURL(), aArgs);
css::uno::Reference<css::util::XCloseable> xCloseable(xComponent, css::uno::UNO_QUERY_THROW);
css::uno::Reference<css::util::XCloseable> xCloseable(mxComponent, css::uno::UNO_QUERY_THROW);
xCloseable->close(true);
xComponent = loadFromDesktop(aTempFile.GetURL(), "com.sun.star.sheet.SpreadsheetDocument");
mxComponent = loadFromDesktop(aTempFile.GetURL(), "com.sun.star.sheet.SpreadsheetDocument");
}
static void lcl_AssertRectEqualWithTolerance(std::string_view sInfo,
@@ -209,11 +210,11 @@ void ScShapeTest::testTdf144242_OpenBezier_noSwapWH()
// swapped, because they report a rotation. (Rotation was introduced to align text with curve.)
// Create a spreadsheet document with default row height and col width
uno::Reference<lang::XComponent> xComponent
mxComponent
= loadFromDesktop("private:factory/scalc", "com.sun.star.sheet.SpreadsheetDocument");
// Get ScDocShell
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
// Insert default open Bezier curve
ScTabViewShell* pTabViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
@@ -232,8 +233,8 @@ void ScShapeTest::testTdf144242_OpenBezier_noSwapWH()
tools::Rectangle aExpectRect(pObj->GetSnapRect());
// Save, reload and compare
saveAndReload(xComponent, "Calc Office Open XML");
pDocSh = lcl_getScDocShellWithAssert(xComponent);
saveAndReload("Calc Office Open XML");
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = lcl_getSdrObjectWithAssert(rDoc2, 0);
tools::Rectangle aSnapRect(pObj->GetSnapRect());
@@ -249,11 +250,11 @@ void ScShapeTest::testTdf144242_Line_noSwapWH()
// swapped, because they report a rotation. (Rotation was introduced to align text with line.)
// Create a spreadsheet document with default row height and col width
uno::Reference<lang::XComponent> xComponent
mxComponent
= loadFromDesktop("private:factory/scalc", "com.sun.star.sheet.SpreadsheetDocument");
// Get ScDocShell
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
// Insert default line
ScTabViewShell* pTabViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
@@ -272,8 +273,8 @@ void ScShapeTest::testTdf144242_Line_noSwapWH()
tools::Rectangle aExpectRect(pObj->GetSnapRect());
// Save, reload and compare
saveAndReload(xComponent, "Calc Office Open XML");
pDocSh = lcl_getScDocShellWithAssert(xComponent);
saveAndReload("Calc Office Open XML");
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = lcl_getSdrObjectWithAssert(rDoc2, 0);
tools::Rectangle aSnapRect(pObj->GetSnapRect());
@@ -289,10 +290,10 @@ void ScShapeTest::testTdf143619_validation_circle_pos()
OUString aFileURL;
createFileURL(u"tdf143619_validationCirclePos.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
// Get shape. That is the validation circle.
@@ -303,10 +304,10 @@ void ScShapeTest::testTdf143619_validation_circle_pos()
uno::Sequence<beans::PropertyValue> aPropertyValues = {
comphelper::makePropertyValue("ToPoint", OUString("$A$1")),
};
dispatchCommand(xComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(xComponent, ".uno:DeleteRows", {});
dispatchCommand(xComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(xComponent, ".uno:DeleteColumns", {});
dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(mxComponent, ".uno:DeleteRows", {});
dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(mxComponent, ".uno:DeleteColumns", {});
// Without fix in place the position was (2007, 833)
Point aPos = pObj->GetSnapRect().TopLeft();
@@ -322,10 +323,10 @@ void ScShapeTest::testTdf140252_DragCreateFormControl()
// Load an empty document.
OUString aFileURL;
createFileURL(u"ManualColWidthRowHeight.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get ScTabViewShell
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScTabViewShell* pTabViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
// drag-create a push button as example of form control
@@ -373,10 +374,10 @@ void ScShapeTest::testTdf134355_DragCreateCustomShape()
// Load an empty document.
OUString aFileURL;
createFileURL(u"ManualColWidthRowHeight.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get ScTabView
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScTabViewShell* pTabViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
ScTabView* pTabView = pTabViewShell->GetViewData().GetView();
@@ -384,7 +385,7 @@ void ScShapeTest::testTdf134355_DragCreateCustomShape()
uno::Sequence<beans::PropertyValue> aPropertyValues = {
comphelper::makePropertyValue("SymbolShapes", OUString("smiley")),
};
dispatchCommand(xComponent, ".uno:SymbolShapes", aPropertyValues);
dispatchCommand(mxComponent, ".uno:SymbolShapes", aPropertyValues);
// above includes creation of FuConstCustomShape and call of its Activate() method
FuConstCustomShape* pFuConstCS = static_cast<FuConstCustomShape*>(pTabView->GetDrawFuncPtr());
CPPUNIT_ASSERT(pFuConstCS);
@@ -417,10 +418,10 @@ void ScShapeTest::testTdf140252_LayerOfControl()
// Load an empty document.
OUString aFileURL;
createFileURL(u"ManualColWidthRowHeight.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get ScDocShell
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
// Create default push button
SfxUInt16Item aIdentifierItem(SID_FM_CONTROL_IDENTIFIER,
@@ -453,10 +454,10 @@ void ScShapeTest::testTdf137082_LTR_to_RTL()
OUString aFileURL;
createFileURL(u"tdf137082_LTR_arrow_image.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
// Get objects and their transformation angles
@@ -487,10 +488,10 @@ void ScShapeTest::testTdf137082_RTL_cell_anchored()
// reloading. The file contains one custom shape with "resize" and another one without.
OUString aFileURL;
createFileURL(u"tdf137082_RTL_cell_anchored.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
// Expected values.
@@ -507,11 +508,11 @@ void ScShapeTest::testTdf137082_RTL_cell_anchored()
lcl_AssertRectEqualWithTolerance("load shape B: ", aSnapRectB, pObj->GetSnapRect(), 1);
// Save and reload.
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
// And test again
@@ -529,10 +530,10 @@ void ScShapeTest::testTdf137081_RTL_page_anchored()
// contains measure line, polyline and transformed custom shape.
OUString aFileURL;
createFileURL(u"tdf137081_RTL_page_anchored.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
// Expected values.
@@ -564,11 +565,11 @@ void ScShapeTest::testTdf137081_RTL_page_anchored()
pObjCS->GetLogicRect().TopLeft(), 1);
// Save and reload.
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
// And test again
@@ -595,10 +596,10 @@ void ScShapeTest::testTdf139583_Rotate180deg()
// Load an empty document.
OUString aFileURL;
createFileURL(u"ManualColWidthRowHeight.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and draw page
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrPage* pPage = lcl_getSdrPageWithAssert(rDoc);
@@ -617,11 +618,11 @@ void ScShapeTest::testTdf139583_Rotate180deg()
pObj.clear();
// Save and reload.
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and object
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = static_cast<SdrRectObj*>(lcl_getSdrObjectWithAssert(rDoc2, 0));
@@ -636,10 +637,10 @@ void ScShapeTest::testTdf137033_FlipHori_Resize()
// if such shape was anchored "resize with cell", then after save and reload it was distorted.
OUString aFileURL;
createFileURL(u"tdf137033_FlipHoriRotCustomShape.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObjCustomShape* pObj = static_cast<SdrObjCustomShape*>(lcl_getSdrObjectWithAssert(rDoc, 0));
@@ -650,11 +651,11 @@ void ScShapeTest::testTdf137033_FlipHori_Resize()
ScDrawLayer::SetCellAnchoredFromPosition(*pObj, rDoc, 0 /*SCTAB*/, true /*bResizeWithCell*/);
// Save and reload.
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and shape
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = static_cast<SdrObjCustomShape*>(lcl_getSdrObjectWithAssert(rDoc2, 0));
@@ -674,10 +675,10 @@ void ScShapeTest::testTdf137033_RotShear_ResizeHide()
// Load a document, which has a rotated and sheared shape, anchored to cell with resize.
OUString aFileURL;
createFileURL(u"tdf137033_RotShearResizeAnchor.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
// Hide rows 4 and 5 (UI number), which are inside the shape and thus change shape geometry
@@ -703,11 +704,11 @@ void ScShapeTest::testTdf137033_RotShear_ResizeHide()
lcl_AssertRectEqualWithTolerance("Load: wrong pos or size", aExpectRect, aSnapRect, 1);
// Save and reload.
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and shape
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = lcl_getSdrObjectWithAssert(rDoc2, 0);
@@ -733,10 +734,10 @@ void ScShapeTest::testTdf137033_RotShear_Hide()
// Load a document, which has a rotated and sheared shape, anchored to cell, without resize.
OUString aFileURL;
createFileURL(u"tdf137033_RotShearCellAnchor.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
// Hide column C, which is left from logic rect, but right from left edge of snap rect
@@ -744,11 +745,11 @@ void ScShapeTest::testTdf137033_RotShear_Hide()
rDoc.SetDrawPageSize(0); // trigger recalcpos, otherwise shapes are not changed
// Save and reload.
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and shape
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
SdrObject* pObj = lcl_getSdrObjectWithAssert(rDoc2, 0);
@@ -772,10 +773,10 @@ void ScShapeTest::testTdf137576_LogicRectInDefaultMeasureline()
// Load an empty document.
OUString aFileURL;
createFileURL(u"ManualColWidthRowHeight.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get ScDocShell
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
// Create default measureline by SfxRequest that corresponds to Ctrl+Click
ScTabViewShell* pTabViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
@@ -796,17 +797,17 @@ void ScShapeTest::testTdf137576_LogicRectInDefaultMeasureline()
uno::Sequence<beans::PropertyValue> aPropertyValues = {
comphelper::makePropertyValue("ToPoint", OUString("$A$1")),
};
dispatchCommand(xComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(xComponent, ".uno:HideColumn", {});
dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(mxComponent, ".uno:HideColumn", {});
// Get current position. I will not use absolute values for comparison, because document is loaded
// in full screen mode of unknown size and default object is placed in center of window.
Point aOldPos = pObj->GetRelativePos();
// Save and reload, get ScDocShell
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
pDocSh = lcl_getScDocShellWithAssert(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
// Get document and object
ScDocument& rDoc2 = pDocSh->GetDocument();
@@ -827,10 +828,10 @@ void ScShapeTest::testTdf137576_LogicRectInNewMeasureline()
// Load an empty document
OUString aFileURL;
createFileURL(u"ManualColWidthRowHeight.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and draw page
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrPage* pPage = lcl_getSdrPageWithAssert(rDoc);
@@ -864,10 +865,10 @@ void ScShapeTest::testMeasurelineHideColSave()
// position were lost.
OUString aFileURL;
createFileURL(u"measurelineHideColSave.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObject* pObj = lcl_getSdrObjectWithAssert(rDoc, 0);
@@ -887,11 +888,11 @@ void ScShapeTest::testMeasurelineHideColSave()
lcl_AssertPointEqualWithTolerance("Hide col A: ", aEndPoint, pObj->GetPoint(1), 1);
// save and reload
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and shape
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = lcl_getSdrObjectWithAssert(rDoc2, 0);
@@ -910,10 +911,10 @@ void ScShapeTest::testHideColsShow()
OUString aFileURL;
createFileURL(u"hideColsShow.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObjCustomShape* pObj = static_cast<SdrObjCustomShape*>(lcl_getSdrObjectWithAssert(rDoc, 0));
@@ -924,7 +925,7 @@ void ScShapeTest::testHideColsShow()
uno::Sequence<beans::PropertyValue> aPropertyValues = {
comphelper::makePropertyValue("ToPoint", OUString("$C$1:$D$1")),
};
dispatchCommand(xComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
ScTabViewShell* pViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
pViewShell->GetViewData().GetDispatcher().Execute(FID_COL_HIDE);
@@ -936,7 +937,7 @@ void ScShapeTest::testHideColsShow()
aPropertyValues = {
comphelper::makePropertyValue("ToPoint", OUString("$C$1:$D$1")),
};
dispatchCommand(xComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
pViewShell->GetViewData().GetDispatcher().Execute(FID_COL_SHOW);
// Check object is visible and has old size
@@ -954,10 +955,10 @@ void ScShapeTest::testTdf138138_MoveCellWithRotatedShape()
// after column B, save and reload. The shape was not correctly moved to column F.
OUString aFileURL;
createFileURL(u"tdf138138_MoveCellWithRotatedShape.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObject* pObj = lcl_getSdrObjectWithAssert(rDoc, 0);
@@ -970,7 +971,7 @@ void ScShapeTest::testTdf138138_MoveCellWithRotatedShape()
uno::Sequence<beans::PropertyValue> aPropertyValues = {
comphelper::makePropertyValue("ToPoint", OUString("$A$1:$B$1")),
};
dispatchCommand(xComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
ScTabViewShell* pViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
pViewShell->GetViewData().GetDispatcher().Execute(FID_INS_COLUMNS_AFTER);
@@ -980,11 +981,11 @@ void ScShapeTest::testTdf138138_MoveCellWithRotatedShape()
aSnapRect, 1);
// Save and reload
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and shape
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = lcl_getSdrObjectWithAssert(rDoc2, 0);
@@ -1002,10 +1003,10 @@ void ScShapeTest::testLoadVerticalFlip()
// flip was lost on loading.
OUString aFileURL;
createFileURL(u"loadVerticalFlip.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObjCustomShape* pObj = static_cast<SdrObjCustomShape*>(lcl_getSdrObjectWithAssert(rDoc, 0));
@@ -1022,10 +1023,10 @@ void ScShapeTest::testTdf117948_CollapseBeforeShape()
// After the fix for 'resize with cell', the custom shape had wrong position and size too.
OUString aFileURL;
createFileURL(u"tdf117948_CollapseBeforeShape.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and objects
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObject* pObj0 = lcl_getSdrObjectWithAssert(rDoc, 0);
SdrObject* pObj1 = lcl_getSdrObjectWithAssert(rDoc, 1);
@@ -1046,11 +1047,11 @@ void ScShapeTest::testTdf117948_CollapseBeforeShape()
lcl_AssertRectEqualWithTolerance("Collapse: Line", aExpectedRect1, aSnapRect1Collapse, 1);
// Save and reload
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and objects
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj0 = lcl_getSdrObjectWithAssert(rDoc2, 0);
pObj1 = lcl_getSdrObjectWithAssert(rDoc2, 1);
@@ -1075,10 +1076,10 @@ void ScShapeTest::testTdf137355_UndoHideRows()
// Actually it was not lost but hidden.
OUString aFileURL;
createFileURL(u"tdf137355_UndoHideRows.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObject* pObj = lcl_getSdrObjectWithAssert(rDoc, 0);
@@ -1090,7 +1091,7 @@ void ScShapeTest::testTdf137355_UndoHideRows()
uno::Sequence<beans::PropertyValue> aPropertyValues = {
comphelper::makePropertyValue("ToPoint", OUString("$A$3:$A$6")),
};
dispatchCommand(xComponent, ".uno:GoToCell", aPropertyValues);
dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
ScTabViewShell* pViewShell = lcl_getScTabViewShellWithAssert(pDocSh);
pViewShell->GetViewData().GetDispatcher().Execute(FID_ROW_HIDE);
@@ -1118,10 +1119,10 @@ void ScShapeTest::testTdf115655_HideDetail()
// was "lost". Actually is was resized to zero height.
OUString aFileURL;
createFileURL(u"tdf115655_HideDetail.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and image
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObject* pObj = lcl_getSdrObjectWithAssert(rDoc, 0);
@@ -1136,11 +1137,11 @@ void ScShapeTest::testTdf115655_HideDetail()
CPPUNIT_ASSERT_MESSAGE("Collapse: Image should not be visible", !pObj->IsVisible());
// Save and reload
saveAndReload(xComponent, "calc8");
CPPUNIT_ASSERT(xComponent);
saveAndReload("calc8");
CPPUNIT_ASSERT(mxComponent);
// Get document and image
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc2 = pDocSh->GetDocument();
pObj = lcl_getSdrObjectWithAssert(rDoc2, 0);
@@ -1167,10 +1168,10 @@ void ScShapeTest::testFitToCellSize()
// that it fits into its anchor cell. That did not happened.
OUString aFileURL;
createFileURL(u"tdf119191_FitToCellSize.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObjCustomShape* pObj = dynamic_cast<SdrObjCustomShape*>(lcl_getSdrObjectWithAssert(rDoc, 0));
@@ -1200,10 +1201,10 @@ void ScShapeTest::testCustomShapeCellAnchoredRotatedShape()
// loading.
OUString aFileURL;
createFileURL(u"tdf119191_transformedShape.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
// Get document and shape
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrObjCustomShape* pObj = dynamic_cast<SdrObjCustomShape*>(lcl_getSdrObjectWithAssert(rDoc, 0));
@@ -1233,18 +1234,18 @@ void ScShapeTest::testLargeAnchorOffset()
// next cell below.
OUString aFileURL;
createFileURL(u"LargeAnchorOffset.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent = loadFromDesktop(aFileURL);
mxComponent = loadFromDesktop(aFileURL);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(mxComponent);
SdrObject* pObj = lcl_getSdrObjectWithAssert(pDocSh->GetDocument(), 0);
const Point aOldPos = pObj->GetRelativePos();
// Just to check that it imports correctly
lcl_AssertPointEqualWithTolerance("before reload", { 9504, 9089 }, aOldPos, 1);
saveAndReload(xComponent, "calc8");
saveAndReload("calc8");
pDocSh = lcl_getScDocShellWithAssert(xComponent);
pDocSh = lcl_getScDocShellWithAssert(mxComponent);
pObj = lcl_getSdrObjectWithAssert(pDocSh->GetDocument(), 0);
// Without the fix, this would fail: