summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/qa/unit/anchor.cxx111
-rw-r--r--sc/qa/unit/data/ods/tdf129552.fods (renamed from sc/qa/unit/data/fods/tdf129552.fods)0
2 files changed, 63 insertions, 48 deletions
diff --git a/sc/qa/unit/anchor.cxx b/sc/qa/unit/anchor.cxx
index c0eb4cd1ac71..789b6d777181 100644
--- a/sc/qa/unit/anchor.cxx
+++ b/sc/qa/unit/anchor.cxx
@@ -10,7 +10,7 @@
#include <sfx2/dispatch.hxx>
#include <svx/svdograf.hxx>
#include <svx/svdpage.hxx>
-#include "helper/qahelper.hxx"
+#include <test/unoapi_test.hxx>
#include <com/sun/star/sheet/XSpreadsheet.hpp>
#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
@@ -28,7 +28,9 @@
using namespace css;
-class ScAnchorTest : public ScBootstrapFixture
+namespace sc_apitest
+{
+class ScAnchorTest : public UnoApiTest
{
public:
ScAnchorTest();
@@ -57,17 +59,23 @@ public:
};
ScAnchorTest::ScAnchorTest()
- : ScBootstrapFixture("sc/qa/unit/data")
+ : UnoApiTest("sc/qa/unit/data/ods")
{
}
void ScAnchorTest::testUndoAnchor()
{
- ScDocShellRef xDocSh
- = loadDocAndSetupModelViewController(u"document_with_linked_graphic.", FORMAT_ODS);
+ loadFromURL(u"document_with_linked_graphic.ods");
+
+ // Get the document model
+ SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(mxComponent);
+ CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell);
+
+ ScDocShell* pDocSh = dynamic_cast<ScDocShell*>(pFoundShell);
+ CPPUNIT_ASSERT(pDocSh);
- ScDocument& rDoc = xDocSh->GetDocument();
// Check whether graphic imported well
+ ScDocument& rDoc = pDocSh->GetDocument();
ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
CPPUNIT_ASSERT(pDrawLayer);
@@ -83,7 +91,7 @@ void ScAnchorTest::testUndoAnchor()
CPPUNIT_ASSERT_EQUAL(sal_uLong(864900), rGraphicObj.GetGraphic().GetSizeBytes());
// Get the document controller
- ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false);
+ ScTabViewShell* pViewShell = pDocSh->GetBestViewShell(false);
CPPUNIT_ASSERT(pViewShell);
// Get the draw view of the document
@@ -147,14 +155,14 @@ void ScAnchorTest::testUndoAnchor()
CPPUNIT_ASSERT_EQUAL(newType, ScDrawLayer::GetAnchorType(*pObject));
CPPUNIT_ASSERT_EQUAL(int(GraphicType::Bitmap), int(rGraphicObj.GetGraphic().GetType()));
CPPUNIT_ASSERT_EQUAL(sal_uLong(864900), rGraphicObj.GetGraphic().GetSizeBytes());
-
- xDocSh->DoClose();
}
void ScAnchorTest::testTdf76183()
{
- ScDocShellRef xDocSh = loadEmptyDocument();
- ScDocument& rDoc = xDocSh->GetDocument();
+ mxComponent = loadFromDesktop("private:factory/scalc");
+ SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(mxComponent);
+ ScDocShell* pDocSh = dynamic_cast<ScDocShell*>(pFoundShell);
+ ScDocument& rDoc = pDocSh->GetDocument();
ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
SdrPage* pPage = pDrawLayer->GetPage(0);
@@ -169,8 +177,7 @@ void ScAnchorTest::testTdf76183()
// Set word wrap to true
rDoc.ApplyAttr(0, 0, 0, ScLineBreakCell(true));
// Add multi-line text to cell to initiate optimal height change
- uno::Reference<frame::XModel> xModel = xDocSh->GetModel();
- uno::Reference<sheet::XSpreadsheetDocument> xDoc(xModel, uno::UNO_QUERY_THROW);
+ uno::Reference<sheet::XSpreadsheetDocument> xDoc(mxComponent, uno::UNO_QUERY_THROW);
uno::Reference<container::XIndexAccess> xIA(xDoc->getSheets(), uno::UNO_QUERY_THROW);
uno::Reference<sheet::XSpreadsheet> xSheet(xIA->getByIndex(0), uno::UNO_QUERY_THROW);
uno::Reference<text::XText> xText(xSheet->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
@@ -180,15 +187,21 @@ void ScAnchorTest::testTdf76183()
CPPUNIT_ASSERT(aOrigRect.Top() < rNewRect.Top());
pObj.clear();
- xDocSh->DoClose();
}
void ScAnchorTest::testODFAnchorTypes()
{
- ScDocShellRef xDocSh = loadDoc(u"3AnchorTypes.", FORMAT_ODS);
+ loadFromURL(u"3AnchorTypes.ods");
+
+ // Get the document model
+ SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(mxComponent);
+ CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell);
+
+ ScDocShell* pDocSh = dynamic_cast<ScDocShell*>(pFoundShell);
+ CPPUNIT_ASSERT(pDocSh);
- ScDocument& rDoc = xDocSh->GetDocument();
// Check whether graphic imported well
+ ScDocument& rDoc = pDocSh->GetDocument();
ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
CPPUNIT_ASSERT(pDrawLayer);
@@ -212,21 +225,26 @@ void ScAnchorTest::testODFAnchorTypes()
CPPUNIT_ASSERT(pObject);
anchorType = ScDrawLayer::GetAnchorType(*pObject);
CPPUNIT_ASSERT_EQUAL(SCA_CELL, anchorType);
-
- xDocSh->DoClose();
}
/// Test that copying a column with an image anchored to it also copies the image
void ScAnchorTest::testCopyColumnWithImages()
{
- ScDocShellRef xDocSh = loadDocAndSetupModelViewController(u"3AnchorTypes.", FORMAT_ODS);
+ loadFromURL(u"3AnchorTypes.ods");
- ScDocument& rDoc = xDocSh->GetDocument();
- ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
+ // Get the document model
+ SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(mxComponent);
+ CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell);
+
+ ScDocShell* pDocSh = dynamic_cast<ScDocShell*>(pFoundShell);
+ CPPUNIT_ASSERT(pDocSh);
+
+ ScDocument* pDoc = &(pDocSh->GetDocument());
+ ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
CPPUNIT_ASSERT(pDrawLayer);
// Get the document controller
- ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false);
+ ScTabViewShell* pViewShell = pDocSh->GetBestViewShell(false);
CPPUNIT_ASSERT(pViewShell != nullptr);
ScDocument aClipDoc(SCDOCMODE_CLIP);
@@ -235,13 +253,13 @@ void ScAnchorTest::testCopyColumnWithImages()
{
// 1. Copy source range
ScRange aSrcRange;
- aSrcRange.Parse("A1:A11", rDoc, rDoc.GetAddressConvention());
+ aSrcRange.Parse("A1:A11", *pDoc, pDoc->GetAddressConvention());
pViewShell->GetViewData().GetMarkData().SetMarkArea(aSrcRange);
pViewShell->GetViewData().GetView()->CopyToClip(&aClipDoc, false, false, true, false);
// 2. Paste to target range
ScRange aDstRange;
- aDstRange.Parse("D1:D11", rDoc, rDoc.GetAddressConvention());
+ aDstRange.Parse("D1:D11", *pDoc, pDoc->GetAddressConvention());
pViewShell->GetViewData().GetMarkData().SetMarkArea(aDstRange);
pViewShell->GetViewData().GetView()->PasteFromClip(InsertDeleteFlags::ALL, &aClipDoc);
@@ -258,13 +276,13 @@ void ScAnchorTest::testCopyColumnWithImages()
{
// 1. Copy source cells
ScRange aSrcRange;
- aSrcRange.Parse("A3:B3", rDoc, rDoc.GetAddressConvention());
+ aSrcRange.Parse("A3:B3", *pDoc, pDoc->GetAddressConvention());
pViewShell->GetViewData().GetMarkData().SetMarkArea(aSrcRange);
pViewShell->GetViewData().GetView()->CopyToClip(&aClipDoc, false, false, true, false);
// 2. Paste to target cells
ScRange aDstRange;
- aDstRange.Parse("G3:H3", rDoc, rDoc.GetAddressConvention());
+ aDstRange.Parse("G3:H3", *pDoc, pDoc->GetAddressConvention());
pViewShell->GetViewData().GetMarkData().SetMarkArea(aDstRange);
pViewShell->GetViewData().GetView()->PasteFromClip(InsertDeleteFlags::ALL, &aClipDoc);
@@ -274,27 +292,33 @@ void ScAnchorTest::testCopyColumnWithImages()
CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be an image anchored to G3", 1,
static_cast<int>(aRowObjects[2].size()));
}
-
- xDocSh->DoClose();
}
void ScAnchorTest::testCutWithImages()
{
- ScDocShellRef xDocSh = loadDocAndSetupModelViewController(u"3AnchorTypes.", FORMAT_ODS);
+ loadFromURL(u"3AnchorTypes.ods");
+ // open the document with graphic included
- ScDocument& rDoc = xDocSh->GetDocument();
- ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
+ // Get the document model
+ SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(mxComponent);
+ CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell);
+
+ ScDocShell* pDocSh = dynamic_cast<ScDocShell*>(pFoundShell);
+ CPPUNIT_ASSERT(pDocSh);
+
+ ScDocument* pDoc = &(pDocSh->GetDocument());
+ ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
CPPUNIT_ASSERT(pDrawLayer);
// Get the document controller
- ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false);
+ ScTabViewShell* pViewShell = pDocSh->GetBestViewShell(false);
CPPUNIT_ASSERT(pViewShell != nullptr);
// Cut whole column
{
// Cut source range
ScRange aSrcRange;
- aSrcRange.Parse("A1:A11", rDoc, rDoc.GetAddressConvention());
+ aSrcRange.Parse("A1:A11", *pDoc, pDoc->GetAddressConvention());
pViewShell->GetViewData().GetMarkData().SetMarkArea(aSrcRange);
pViewShell->GetViewData().GetView()->CutToClip();
@@ -312,7 +336,7 @@ void ScAnchorTest::testCutWithImages()
{
// Cut source cells
ScRange aSrcRange;
- aSrcRange.Parse("A3:B3", rDoc, rDoc.GetAddressConvention());
+ aSrcRange.Parse("A3:B3", *pDoc, pDoc->GetAddressConvention());
pViewShell->GetViewData().GetMarkData().SetMarkArea(aSrcRange);
pViewShell->GetViewData().GetView()->CutToClip();
@@ -322,55 +346,46 @@ void ScAnchorTest::testCutWithImages()
CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be no image anchored to A3", 0,
static_cast<int>(aRowObjects[2].size()));
}
-
- xDocSh->DoClose();
}
void ScAnchorTest::testTdf121963()
{
- ScDocShellRef xDocSh = loadDoc(u"tdf121963.", FORMAT_ODS);
+ loadFromURL(u"tdf121963.ods");
// Without the accompanying fix in place, this test would have never returned due to an infinite
// invalidation loop, where ScGridWindow::Paint() invalidated itself.
Scheduler::ProcessEventsToIdle();
-
- xDocSh->DoClose();
}
void ScAnchorTest::testTdf129552()
{
- ScDocShellRef xDocSh = loadDoc(u"tdf129552.", FORMAT_FODS);
+ loadFromURL(u"tdf129552.fods");
// Without the accompanying fix in place, this test would have never returned due to an infinite
// invalidation loop, where ScGridWindow::Paint() invalidated itself.
Scheduler::ProcessEventsToIdle();
-
- xDocSh->DoClose();
}
void ScAnchorTest::testTdf130556()
{
- ScDocShellRef xDocSh = loadDoc(u"tdf130556.", FORMAT_ODS);
+ loadFromURL(u"tdf130556.ods");
// Without the accompanying fix in place, this test would have never returned due to an infinite
// invalidation loop, where ScGridWindow::Paint() invalidated itself.
Scheduler::ProcessEventsToIdle();
-
- xDocSh->DoClose();
}
void ScAnchorTest::testTdf134161()
{
- ScDocShellRef xDocSh = loadDoc(u"tdf134161.", FORMAT_ODS);
+ loadFromURL(u"tdf134161.ods");
// Without the accompanying fix in place, this test would have never returned due to an infinite
// invalidation loop
Scheduler::ProcessEventsToIdle();
-
- xDocSh->DoClose();
}
CPPUNIT_TEST_SUITE_REGISTRATION(ScAnchorTest);
+}
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sc/qa/unit/data/fods/tdf129552.fods b/sc/qa/unit/data/ods/tdf129552.fods
index b5bb83b76cd6..b5bb83b76cd6 100644
--- a/sc/qa/unit/data/fods/tdf129552.fods
+++ b/sc/qa/unit/data/ods/tdf129552.fods