sc/qa/unit/SparklineImportExportTest.cxx | 44 +- sc/qa/unit/SparklineTest.cxx | 552 ++++++++++++++----------------- 2 files changed, 289 insertions(+), 307 deletions(-)
New commits: commit 97ae965fa6f11078a48dc5a58455a024367fbc9e Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Thu Oct 27 10:24:51 2022 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Thu Oct 27 11:29:45 2022 +0200 CppunitTest_sc_sparkline_test: inherit from UnoApiTest Change-Id: I456165940ed2719cb854008f1450b7e97e334c3f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141900 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/qa/unit/SparklineImportExportTest.cxx b/sc/qa/unit/SparklineImportExportTest.cxx index 4ebf4cd627f8..4d8f9be3da5f 100644 --- a/sc/qa/unit/SparklineImportExportTest.cxx +++ b/sc/qa/unit/SparklineImportExportTest.cxx @@ -7,7 +7,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include "helper/qahelper.hxx" +#include <test/unoapi_test.hxx> #include "helper/xpath.hxx" #include <com/sun/star/lang/XComponent.hpp> @@ -18,11 +18,11 @@ using namespace css; /** Test import, export or roundtrip of sparklines for ODF and OOXML */ -class SparklineImportExportTest : public ScBootstrapFixture, public XmlTestTools +class SparklineImportExportTest : public UnoApiTest, public XmlTestTools { public: SparklineImportExportTest() - : ScBootstrapFixture("sc/qa/unit/data") + : UnoApiTest("sc/qa/unit/data") { } @@ -149,25 +149,26 @@ void checkSparklines(ScDocument& rDocument) void SparklineImportExportTest::testSparklinesRoundtripXLSX() { - ScDocShellRef xDocSh = loadDoc(u"Sparklines.", FORMAT_XLSX); + loadFromURL(u"xlsx/Sparklines.xlsx"); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); - checkSparklines(xDocSh->GetDocument()); + checkSparklines(*pModelObj->GetDocument()); - xDocSh = saveAndReload(*xDocSh, FORMAT_XLSX); + saveAndReload("Calc Office Open XML"); + pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); - checkSparklines(xDocSh->GetDocument()); - - xDocSh->DoClose(); + checkSparklines(*pModelObj->GetDocument()); } void SparklineImportExportTest::testSparklinesExportODS() { // Load the document containing sparklines - ScDocShellRef xDocSh = loadDoc(u"Sparklines.", FORMAT_XLSX); + loadFromURL(u"xlsx/Sparklines.xlsx"); // Save as ODS and check content.xml with XPath - std::shared_ptr<utl::TempFileNamed> pXPathFile - = ScBootstrapFixture::exportTo(*xDocSh, FORMAT_ODS); + auto pXPathFile = std::make_shared<utl::TempFileNamed>(save("calc8")); xmlDocUniquePtr pXmlDoc = XPathHelper::parseExport(pXPathFile, m_xSFactory, "content.xml"); // We have 3 sparkline groups = 3 tables that contain sparklines @@ -211,16 +212,18 @@ void SparklineImportExportTest::testSparklinesExportODS() void SparklineImportExportTest::testSparklinesRoundtripODS() { - ScDocShellRef xDocSh = loadDoc(u"Sparklines.", FORMAT_XLSX); + loadFromURL(u"xlsx/Sparklines.xlsx"); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); - checkSparklines(xDocSh->GetDocument()); + checkSparklines(*pModelObj->GetDocument()); // Trigger export and import of sparklines - xDocSh = saveAndReload(*xDocSh, FORMAT_ODS); - - checkSparklines(xDocSh->GetDocument()); + saveAndReload("calc8"); + pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); - xDocSh->DoClose(); + checkSparklines(*pModelObj->GetDocument()); } void SparklineImportExportTest::testNoSparklinesInDocumentXLSX() @@ -229,10 +232,9 @@ void SparklineImportExportTest::testNoSparklinesInDocumentXLSX() // Check no sparkline elements are written when there is none in the document // Load the document containing NO sparklines - ScDocShellRef xDocSh = loadDoc(u"empty.", FORMAT_XLSX); + loadFromURL(u"xlsx/empty.xlsx"); - std::shared_ptr<utl::TempFileNamed> pXPathFile - = ScBootstrapFixture::exportTo(*xDocSh, FORMAT_XLSX); + auto pXPathFile = std::make_shared<utl::TempFileNamed>(save("Calc Office Open XML")); xmlDocUniquePtr pXmlDoc = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/worksheets/sheet1.xml"); CPPUNIT_ASSERT(pXmlDoc); diff --git a/sc/qa/unit/SparklineTest.cxx b/sc/qa/unit/SparklineTest.cxx index 248ed14e8185..d6d8c9d23a2e 100644 --- a/sc/qa/unit/SparklineTest.cxx +++ b/sc/qa/unit/SparklineTest.cxx @@ -7,6 +7,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include <test/unoapi_test.hxx> #include "helper/qahelper.hxx" #include <docsh.hxx> #include <tabvwsh.hxx> @@ -21,11 +22,11 @@ using namespace css; /** Test operation for sparklines, sparkline groups and attributes */ -class SparklineTest : public ScBootstrapFixture +class SparklineTest : public UnoApiTest { public: SparklineTest() - : ScBootstrapFixture("sc/qa/unit/data") + : UnoApiTest("sc/qa/unit/data") { } @@ -62,25 +63,25 @@ public: namespace { -void insertTestData(ScDocument& rDocument) +void insertTestData(ScDocument& rDoc) { - rDocument.SetValue(0, 0, 0, 4); - rDocument.SetValue(0, 1, 0, -2); - rDocument.SetValue(0, 2, 0, 1); - rDocument.SetValue(0, 3, 0, -3); - rDocument.SetValue(0, 4, 0, 5); - rDocument.SetValue(0, 5, 0, 3); + rDoc.SetValue(0, 0, 0, 4); + rDoc.SetValue(0, 1, 0, -2); + rDoc.SetValue(0, 2, 0, 1); + rDoc.SetValue(0, 3, 0, -3); + rDoc.SetValue(0, 4, 0, 5); + rDoc.SetValue(0, 5, 0, 3); } -sc::Sparkline* createTestSparkline(ScDocument& rDocument) +sc::Sparkline* createTestSparkline(ScDocument& rDoc) { auto pSparklineGroup = std::make_shared<sc::SparklineGroup>(); - sc::Sparkline* pSparkline = rDocument.CreateSparkline(ScAddress(0, 6, 0), pSparklineGroup); + sc::Sparkline* pSparkline = rDoc.CreateSparkline(ScAddress(0, 6, 0), pSparklineGroup); if (!pSparkline) return nullptr; - insertTestData(rDocument); + insertTestData(rDoc); ScRangeList aList; aList.push_back(ScRange(0, 0, 0, 0, 5, 0)); @@ -93,20 +94,21 @@ sc::Sparkline* createTestSparkline(ScDocument& rDocument) void SparklineTest::testAddSparkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto pSparkline = createTestSparkline(rDocument); + auto pSparkline = createTestSparkline(*pDoc); CPPUNIT_ASSERT(pSparkline); - auto pGetSparkline = rDocument.GetSparkline(ScAddress(0, 6, 0)); + auto pGetSparkline = pDoc->GetSparkline(ScAddress(0, 6, 0)); CPPUNIT_ASSERT(pGetSparkline); CPPUNIT_ASSERT_EQUAL(pGetSparkline.get(), pSparkline); - sc::SparklineList* pList = rDocument.GetSparklineList(SCTAB(0)); + sc::SparklineList* pList = pDoc->GetSparklineList(SCTAB(0)); CPPUNIT_ASSERT(pList); CPPUNIT_ASSERT_EQUAL(size_t(1), pList->getSparklineGroups().size()); @@ -114,42 +116,40 @@ void SparklineTest::testAddSparkline() auto const& aSparklineVector = pList->getSparklinesFor(pGetSparkline->getSparklineGroup()); CPPUNIT_ASSERT_EQUAL(size_t(1), aSparklineVector.size()); CPPUNIT_ASSERT_EQUAL(aSparklineVector[0].get(), pSparkline); - - xDocSh->DoClose(); } void SparklineTest::testClearContentSprkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto pSparkline = createTestSparkline(rDocument); + auto pSparkline = createTestSparkline(*pDoc); CPPUNIT_ASSERT(pSparkline); - clearRange(&rDocument, ScRange(0, 6, 0, 0, 6, 0)); + clearRange(pDoc, ScRange(0, 6, 0, 0, 6, 0)); - auto pGetSparkline = rDocument.GetSparkline(ScAddress(0, 6, 0)); + auto pGetSparkline = pDoc->GetSparkline(ScAddress(0, 6, 0)); CPPUNIT_ASSERT(!pGetSparkline); - - xDocSh->DoClose(); } void SparklineTest::testCopyPasteSparkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto* pCreatedSparkline = createTestSparkline(rDocument); + ScTabViewShell* pViewShell = ScDocShell::GetViewData()->GetViewShell(); + + auto* pCreatedSparkline = createTestSparkline(*pDoc); CPPUNIT_ASSERT(pCreatedSparkline); ScRange aSourceRange(0, 6, 0, 0, 6, 0); - auto pSparkline = rDocument.GetSparkline(aSourceRange.aStart); + auto pSparkline = pDoc->GetSparkline(aSourceRange.aStart); auto const& pOriginalGroup = pSparkline->getSparklineGroup(); CPPUNIT_ASSERT(pSparkline); @@ -159,18 +159,18 @@ void SparklineTest::testCopyPasteSparkline() // CopyToClip / CopyFromClip with a aClipDoc { ScDocument aClipDoc(SCDOCMODE_CLIP); - copyToClip(&rDocument, aSourceRange, &aClipDoc); + copyToClip(pDoc, aSourceRange, &aClipDoc); auto pClipSparkline = aClipDoc.GetSparkline(aSourceRange.aStart); CPPUNIT_ASSERT(pClipSparkline); ScRange aPasteRange(0, 7, 0, 0, 7, 0); - ScMarkData aMark(rDocument.GetSheetLimits()); + ScMarkData aMark(pDoc->GetSheetLimits()); aMark.SetMarkArea(aPasteRange); - rDocument.CopyFromClip(aPasteRange, aMark, InsertDeleteFlags::ALL, nullptr, &aClipDoc); + pDoc->CopyFromClip(aPasteRange, aMark, InsertDeleteFlags::ALL, nullptr, &aClipDoc); - auto pSparklineCopy = rDocument.GetSparkline(aPasteRange.aStart); + auto pSparklineCopy = pDoc->GetSparkline(aPasteRange.aStart); CPPUNIT_ASSERT(pSparklineCopy); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparklineCopy->getColumn()); @@ -196,7 +196,7 @@ void SparklineTest::testCopyPasteSparkline() pViewShell->GetViewData().GetMarkData().SetMarkArea(aPasteRange); pViewShell->GetViewData().GetView()->PasteFromClip(InsertDeleteFlags::ALL, &aClipDoc); - auto pSparklineCopy = rDocument.GetSparkline(aPasteRange.aStart); + auto pSparklineCopy = pDoc->GetSparkline(aPasteRange.aStart); CPPUNIT_ASSERT(pSparklineCopy); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparklineCopy->getColumn()); @@ -207,24 +207,23 @@ void SparklineTest::testCopyPasteSparkline() CPPUNIT_ASSERT_EQUAL(pOriginalGroup->getID(), pCopyGroup->getID()); CPPUNIT_ASSERT_EQUAL(pOriginalGroup.get(), pCopyGroup.get()); } - - xDocSh->DoClose(); } void SparklineTest::testCutPasteSparkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto* pCreatedSparkline = createTestSparkline(rDocument); + ScTabViewShell* pViewShell = ScDocShell::GetViewData()->GetViewShell(); + + auto* pCreatedSparkline = createTestSparkline(*pDoc); CPPUNIT_ASSERT(pCreatedSparkline); ScRange aSourceRange(0, 6, 0, 0, 6, 0); - auto pSparkline = rDocument.GetSparkline(aSourceRange.aStart); + auto pSparkline = pDoc->GetSparkline(aSourceRange.aStart); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparkline->getColumn()); @@ -242,93 +241,89 @@ void SparklineTest::testCutPasteSparkline() ScClipUtil::PasteFromClipboard(pViewShell->GetViewData(), pViewShell, false); // Check - auto pSparklineCopy = rDocument.GetSparkline(aPasteRange.aStart); + auto pSparklineCopy = pDoc->GetSparkline(aPasteRange.aStart); CPPUNIT_ASSERT(pSparklineCopy); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparklineCopy->getColumn()); CPPUNIT_ASSERT_EQUAL(SCROW(7), pSparklineCopy->getRow()); - - xDocSh->DoClose(); } void SparklineTest::testUndoRedoInsertSparkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); // insert test data - A1:A6 - insertTestData(rDocument); + insertTestData(*pDoc); // Sparkline range ScRange aRange(0, 6, 0, 0, 6, 0); // Check Sparkline at cell A7 doesn't exists - auto pSparkline = rDocument.GetSparkline(aRange.aStart); + auto pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(!pSparkline); auto pSparklineGroup = std::make_shared<sc::SparklineGroup>(); rDocFunc.InsertSparklines(ScRange(0, 0, 0, 0, 5, 0), aRange, pSparklineGroup); // Check Sparkline at cell A7 exists - pSparkline = rDocument.GetSparkline(aRange.aStart); + pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparkline->getColumn()); CPPUNIT_ASSERT_EQUAL(SCROW(6), pSparkline->getRow()); // Undo - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); // Check Sparkline at cell A7 doesn't exists - pSparkline = rDocument.GetSparkline(aRange.aStart); + pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(!pSparkline); // Redo - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); // Check Sparkline at cell A7 exists - pSparkline = rDocument.GetSparkline(aRange.aStart); + pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparkline->getColumn()); CPPUNIT_ASSERT_EQUAL(SCROW(6), pSparkline->getRow()); - - xDocSh->DoClose(); } void SparklineTest::testUndoRedoDeleteSparkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); // Try to delete sparkline that doesn't exist - returns false CPPUNIT_ASSERT(!rDocFunc.DeleteSparkline(ScAddress(0, 6, 0))); // insert test data - A1:A6 - insertTestData(rDocument); + insertTestData(*pDoc); // Sparkline range ScRange aRange(0, 6, 0, 0, 6, 0); // Check Sparkline at cell A7 doesn't exists - auto pSparkline = rDocument.GetSparkline(aRange.aStart); + auto pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(!pSparkline); auto pSparklineGroup = std::make_shared<sc::SparklineGroup>(); CPPUNIT_ASSERT(rDocFunc.InsertSparklines(ScRange(0, 0, 0, 0, 5, 0), aRange, pSparklineGroup)); // Check Sparkline at cell A7 exists - pSparkline = rDocument.GetSparkline(aRange.aStart); + pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparkline->getColumn()); CPPUNIT_ASSERT_EQUAL(SCROW(6), pSparkline->getRow()); @@ -337,43 +332,41 @@ void SparklineTest::testUndoRedoDeleteSparkline() CPPUNIT_ASSERT(rDocFunc.DeleteSparkline(ScAddress(0, 6, 0))); // Check Sparkline at cell A7 doesn't exists - pSparkline = rDocument.GetSparkline(aRange.aStart); + pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(!pSparkline); // Undo - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); // Check Sparkline at cell A7 exists - pSparkline = rDocument.GetSparkline(aRange.aStart); + pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(SCCOL(0), pSparkline->getColumn()); CPPUNIT_ASSERT_EQUAL(SCROW(6), pSparkline->getRow()); // Redo - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); // Check Sparkline at cell A7 doesn't exists - pSparkline = rDocument.GetSparkline(aRange.aStart); + pSparkline = pDoc->GetSparkline(aRange.aStart); CPPUNIT_ASSERT(!pSparkline); - CPPUNIT_ASSERT(!rDocument.HasSparkline(aRange.aStart)); - - xDocSh->DoClose(); + CPPUNIT_ASSERT(!pDoc->HasSparkline(aRange.aStart)); } void SparklineTest::testUndoRedoDeleteSparklineGroup() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); // insert test data - A1:A6 - insertTestData(rDocument); + insertTestData(*pDoc); // Sparkline range ScRange aDataRange(0, 0, 0, 3, 5, 0); //A1:D6 @@ -383,63 +376,61 @@ void SparklineTest::testUndoRedoDeleteSparklineGroup() CPPUNIT_ASSERT(rDocFunc.InsertSparklines(aDataRange, aRange, pSparklineGroup)); // Check Sparklines - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 // Delete Sparkline CPPUNIT_ASSERT(rDocFunc.DeleteSparklineGroup(pSparklineGroup, SCTAB(0))); // Check Sparklines - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 // Undo - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); // Check Sparklines - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 // Check if the sparkline has the input range set - auto const& pSparkline = rDocument.GetSparkline(ScAddress(3, 6, 0)); + auto const& pSparkline = pDoc->GetSparkline(ScAddress(3, 6, 0)); ScRangeList rRangeList = pSparkline->getInputRange(); CPPUNIT_ASSERT_EQUAL(size_t(1), rRangeList.size()); CPPUNIT_ASSERT_EQUAL(ScRange(3, 0, 0, 3, 5, 0), rRangeList[0]); // Redo - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); // Check Sparklines - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(false, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 - - xDocSh->DoClose(); + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(false, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 } void SparklineTest::testUndoRedoClearContentForSparkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); // Try to delete sparkline that doesn't exist - returns false CPPUNIT_ASSERT(!rDocFunc.DeleteSparkline(ScAddress(0, 6, 0))); // insert test data - A1:A6 - insertTestData(rDocument); + insertTestData(*pDoc); // Sparkline range ScRange aDataRange(0, 0, 0, 3, 5, 0); //A1:D6 @@ -447,10 +438,10 @@ void SparklineTest::testUndoRedoClearContentForSparkline() // Check Sparklines - none should exist { - CPPUNIT_ASSERT(!rDocument.HasSparkline(ScAddress(0, 6, 0))); - CPPUNIT_ASSERT(!rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT(!rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT(!rDocument.HasSparkline(ScAddress(3, 6, 0))); + CPPUNIT_ASSERT(!pDoc->HasSparkline(ScAddress(0, 6, 0))); + CPPUNIT_ASSERT(!pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT(!pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT(!pDoc->HasSparkline(ScAddress(3, 6, 0))); } auto pSparklineGroup = std::make_shared<sc::SparklineGroup>(); @@ -458,19 +449,19 @@ void SparklineTest::testUndoRedoClearContentForSparkline() // Check Sparklines { - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(0, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(0, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(2, 6, 0))); // D7 exists - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(3, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(3, 6, 0))); // Check D7 - auto pSparkline = rDocument.GetSparkline(ScAddress(3, 6, 0)); + auto pSparkline = pDoc->GetSparkline(ScAddress(3, 6, 0)); CPPUNIT_ASSERT_EQUAL(SCCOL(3), pSparkline->getColumn()); CPPUNIT_ASSERT_EQUAL(SCROW(6), pSparkline->getRow()); // Check collections - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklineGroups.size()); @@ -480,21 +471,21 @@ void SparklineTest::testUndoRedoClearContentForSparkline() // Clear content of cell D7 - including sparkline { - ScMarkData aMark(rDocument.GetSheetLimits()); + ScMarkData aMark(pDoc->GetSheetLimits()); aMark.SetMarkArea(ScAddress(3, 6, 0)); rDocFunc.DeleteContents(aMark, InsertDeleteFlags::CONTENTS, true, true); } // Check Sparklines { - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(2, 6, 0))); // D7 is gone - CPPUNIT_ASSERT(!rDocument.HasSparkline(ScAddress(3, 6, 0))); + CPPUNIT_ASSERT(!pDoc->HasSparkline(ScAddress(3, 6, 0))); // Check collections - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklineGroups.size()); @@ -503,22 +494,22 @@ void SparklineTest::testUndoRedoClearContentForSparkline() } // Undo - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); // Check Sparkline { - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(0, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(0, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(2, 6, 0))); // D7 exists - again - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(3, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(3, 6, 0))); // Check D7 - auto pSparkline = rDocument.GetSparkline(ScAddress(3, 6, 0)); + auto pSparkline = pDoc->GetSparkline(ScAddress(3, 6, 0)); CPPUNIT_ASSERT_EQUAL(SCCOL(3), pSparkline->getColumn()); CPPUNIT_ASSERT_EQUAL(SCROW(6), pSparkline->getRow()); - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklineGroups.size()); @@ -527,38 +518,36 @@ void SparklineTest::testUndoRedoClearContentForSparkline() } // Redo - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); // Check Sparklines { - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT(rDocument.HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT(pDoc->HasSparkline(ScAddress(2, 6, 0))); // D7 is gone - again - CPPUNIT_ASSERT(!rDocument.HasSparkline(ScAddress(3, 6, 0))); + CPPUNIT_ASSERT(!pDoc->HasSparkline(ScAddress(3, 6, 0))); // Check collections - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklineGroups.size()); auto pSparklines = pSparklineList->getSparklinesFor(pSparklineGroups[0]); CPPUNIT_ASSERT_EQUAL(size_t(3), pSparklines.size()); } - - xDocSh->DoClose(); } void SparklineTest::testUndoRedoEditSparklineGroup() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); auto pSparklineGroup = std::make_shared<sc::SparklineGroup>(); { @@ -568,7 +557,7 @@ void SparklineTest::testUndoRedoEditSparklineGroup() rAttibutes.setColorAxis(COL_GREEN); } - rDocument.CreateSparkline(ScAddress(0, 6, 0), pSparklineGroup); + pDoc->CreateSparkline(ScAddress(0, 6, 0), pSparklineGroup); sc::SparklineAttributes aNewAttributes; aNewAttributes.setType(sc::SparklineType::Stacked); @@ -595,7 +584,7 @@ void SparklineTest::testUndoRedoEditSparklineGroup() CPPUNIT_ASSERT_EQUAL(COL_BLACK, pSparklineGroup->getAttributes().getColorSeries()); CPPUNIT_ASSERT_EQUAL(COL_BLUE, pSparklineGroup->getAttributes().getColorAxis()); - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); CPPUNIT_ASSERT_EQUAL(true, aInitialAttibutes == pSparklineGroup->getAttributes()); CPPUNIT_ASSERT_EQUAL(false, aNewAttributes == pSparklineGroup->getAttributes()); @@ -604,7 +593,7 @@ void SparklineTest::testUndoRedoEditSparklineGroup() CPPUNIT_ASSERT_EQUAL(COL_YELLOW, pSparklineGroup->getAttributes().getColorSeries()); CPPUNIT_ASSERT_EQUAL(COL_GREEN, pSparklineGroup->getAttributes().getColorAxis()); - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); CPPUNIT_ASSERT_EQUAL(false, aInitialAttibutes == pSparklineGroup->getAttributes()); CPPUNIT_ASSERT_EQUAL(true, aNewAttributes == pSparklineGroup->getAttributes()); @@ -612,23 +601,21 @@ void SparklineTest::testUndoRedoEditSparklineGroup() CPPUNIT_ASSERT_EQUAL(sc::SparklineType::Stacked, pSparklineGroup->getAttributes().getType()); CPPUNIT_ASSERT_EQUAL(COL_BLACK, pSparklineGroup->getAttributes().getColorSeries()); CPPUNIT_ASSERT_EQUAL(COL_BLUE, pSparklineGroup->getAttributes().getColorAxis()); - - xDocSh->DoClose(); } void SparklineTest::testUndoRedoUngroupSparklines() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); // insert test data - A1:A6 - insertTestData(rDocument); + insertTestData(*pDoc); // Sparkline range ScRange aDataRange(0, 0, 0, 3, 5, 0); //A1:D6 @@ -639,15 +626,15 @@ void SparklineTest::testUndoRedoUngroupSparklines() // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup2); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup3); @@ -659,15 +646,15 @@ void SparklineTest::testUndoRedoUngroupSparklines() // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup2); CPPUNIT_ASSERT(pGroup1 != pGroup3); @@ -676,19 +663,19 @@ void SparklineTest::testUndoRedoUngroupSparklines() } // Undo - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup2); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup3); @@ -697,42 +684,40 @@ void SparklineTest::testUndoRedoUngroupSparklines() } // Redo - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup2); CPPUNIT_ASSERT(pGroup1 != pGroup3); CPPUNIT_ASSERT(pGroup1 != pGroup4); CPPUNIT_ASSERT(pGroup3 != pGroup4); } - - xDocSh->DoClose(); } void SparklineTest::testUndoRedoGroupSparklines() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); // insert test data - A1:A6 - insertTestData(rDocument); + insertTestData(*pDoc); // Sparkline range ScRange aDataRange(0, 0, 0, 3, 5, 0); //A1:D6 @@ -743,15 +728,15 @@ void SparklineTest::testUndoRedoGroupSparklines() // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup2); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup3); @@ -763,15 +748,15 @@ void SparklineTest::testUndoRedoGroupSparklines() // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup2); CPPUNIT_ASSERT(pGroup1 != pGroup3); @@ -780,21 +765,21 @@ void SparklineTest::testUndoRedoGroupSparklines() } { - auto pGroup = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT(rDocFunc.GroupSparklines(ScRange(1, 6, 0, 3, 6, 0), pGroup)); } // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT(pGroup1 != pGroup2); CPPUNIT_ASSERT(pGroup1 != pGroup3); @@ -805,19 +790,19 @@ void SparklineTest::testUndoRedoGroupSparklines() } // Undo - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT_EQUAL(pGroup1, pGroup2); CPPUNIT_ASSERT(pGroup1 != pGroup3); @@ -826,19 +811,19 @@ void SparklineTest::testUndoRedoGroupSparklines() } // Redo - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); // Check Sparklines { - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(0, 6, 0))); // A7 - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(2, 6, 0))); - CPPUNIT_ASSERT_EQUAL(true, rDocument.HasSparkline(ScAddress(3, 6, 0))); // D7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(0, 6, 0))); // A7 + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(1, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(2, 6, 0))); + CPPUNIT_ASSERT_EQUAL(true, pDoc->HasSparkline(ScAddress(3, 6, 0))); // D7 - auto pGroup1 = rDocument.GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); - auto pGroup2 = rDocument.GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); - auto pGroup3 = rDocument.GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); - auto pGroup4 = rDocument.GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); + auto pGroup1 = pDoc->GetSparkline(ScAddress(0, 6, 0))->getSparklineGroup(); + auto pGroup2 = pDoc->GetSparkline(ScAddress(1, 6, 0))->getSparklineGroup(); + auto pGroup3 = pDoc->GetSparkline(ScAddress(2, 6, 0))->getSparklineGroup(); + auto pGroup4 = pDoc->GetSparkline(ScAddress(3, 6, 0))->getSparklineGroup(); CPPUNIT_ASSERT(pGroup1 != pGroup2); CPPUNIT_ASSERT(pGroup1 != pGroup3); @@ -847,40 +832,38 @@ void SparklineTest::testUndoRedoGroupSparklines() CPPUNIT_ASSERT_EQUAL(pGroup2, pGroup4); CPPUNIT_ASSERT_EQUAL(pGroup3, pGroup4); } - - xDocSh->DoClose(); } void SparklineTest::testUndoRedoEditSparkline() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); - ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false); - CPPUNIT_ASSERT(pViewShell); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); - auto& rDocFunc = xDocSh->GetDocFunc(); + ScDocShell* pDocSh = ScDocShell::GetViewData()->GetDocShell(); + auto& rDocFunc = pDocSh->GetDocFunc(); // Try to delete sparkline that doesn't exist - returns false CPPUNIT_ASSERT(!rDocFunc.DeleteSparkline(ScAddress(0, 6, 0))); // insert test data - A1:A6 - insertTestData(rDocument); + insertTestData(*pDoc); // Sparkline range ScAddress aAddress(0, 6, 0); ScRange aRange(aAddress); // Check Sparkline at cell A7 doesn't exists - auto pSparkline = rDocument.GetSparkline(aAddress); + auto pSparkline = pDoc->GetSparkline(aAddress); CPPUNIT_ASSERT(!pSparkline); auto pSparklineGroup = std::make_shared<sc::SparklineGroup>(); CPPUNIT_ASSERT(rDocFunc.InsertSparklines(ScRange(0, 0, 0, 0, 5, 0), aRange, pSparklineGroup)); // Check Sparkline at cell A7 - pSparkline = rDocument.GetSparkline(aAddress); + pSparkline = pDoc->GetSparkline(aAddress); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparkline->getInputRange().size()); CPPUNIT_ASSERT_EQUAL(ScRange(0, 0, 0, 0, 5, 0), pSparkline->getInputRange()[0]); @@ -889,54 +872,53 @@ void SparklineTest::testUndoRedoEditSparkline() CPPUNIT_ASSERT( rDocFunc.ChangeSparkline(pSparkline, SCTAB(0), ScRangeList(ScRange(0, 1, 0, 0, 4, 0)))); - pSparkline = rDocument.GetSparkline(aAddress); + pSparkline = pDoc->GetSparkline(aAddress); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparkline->getInputRange().size()); CPPUNIT_ASSERT_EQUAL(ScRange(0, 1, 0, 0, 4, 0), pSparkline->getInputRange()[0]); // Undo - rDocument.GetUndoManager()->Undo(); + pDoc->GetUndoManager()->Undo(); - pSparkline = rDocument.GetSparkline(aAddress); + pSparkline = pDoc->GetSparkline(aAddress); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparkline->getInputRange().size()); CPPUNIT_ASSERT_EQUAL(ScRange(0, 0, 0, 0, 5, 0), pSparkline->getInputRange()[0]); // Redo - rDocument.GetUndoManager()->Redo(); + pDoc->GetUndoManager()->Redo(); - pSparkline = rDocument.GetSparkline(aAddress); + pSparkline = pDoc->GetSparkline(aAddress); CPPUNIT_ASSERT(pSparkline); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparkline->getInputRange().size()); CPPUNIT_ASSERT_EQUAL(ScRange(0, 1, 0, 0, 4, 0), pSparkline->getInputRange()[0]); - - xDocSh->DoClose(); } void SparklineTest::testSparklineList() { - ScDocShellRef xDocSh = loadEmptyDocument(); - CPPUNIT_ASSERT(xDocSh); + mxComponent = loadFromDesktop("private:factory/scalc"); - ScDocument& rDocument = xDocSh->GetDocument(); + ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + CPPUNIT_ASSERT(pModelObj); + ScDocument* pDoc = pModelObj->GetDocument(); auto pSparklineGroup = std::make_shared<sc::SparklineGroup>(); - rDocument.CreateSparkline(ScAddress(0, 6, 0), pSparklineGroup); + pDoc->CreateSparkline(ScAddress(0, 6, 0), pSparklineGroup); { - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklineGroups.size()); auto pSparklines = pSparklineList->getSparklinesFor(pSparklineGroups[0]); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklines.size()); } - rDocument.CreateSparkline(ScAddress(1, 6, 0), pSparklineGroup); - rDocument.CreateSparkline(ScAddress(2, 6, 0), pSparklineGroup); + pDoc->CreateSparkline(ScAddress(1, 6, 0), pSparklineGroup); + pDoc->CreateSparkline(ScAddress(2, 6, 0), pSparklineGroup); { - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklineGroups.size()); @@ -946,9 +928,9 @@ void SparklineTest::testSparklineList() { auto pSparklineGroup2 = std::make_shared<sc::SparklineGroup>(); - rDocument.CreateSparkline(ScAddress(3, 6, 0), pSparklineGroup2); + pDoc->CreateSparkline(ScAddress(3, 6, 0), pSparklineGroup2); - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(2), pSparklineGroups.size()); @@ -957,10 +939,10 @@ void SparklineTest::testSparklineList() CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklines2.size()); } - rDocument.DeleteSparkline(ScAddress(3, 6, 0)); + pDoc->DeleteSparkline(ScAddress(3, 6, 0)); { - auto* pSparklineList = rDocument.GetSparklineList(SCTAB(0)); + auto* pSparklineList = pDoc->GetSparklineList(SCTAB(0)); auto pSparklineGroups = pSparklineList->getSparklineGroups(); CPPUNIT_ASSERT_EQUAL(size_t(1), pSparklineGroups.size()); @@ -968,8 +950,6 @@ void SparklineTest::testSparklineList() auto pSparklines = pSparklineList->getSparklinesFor(pSparklineGroups[0]); CPPUNIT_ASSERT_EQUAL(size_t(3), pSparklines.size()); } - - xDocSh->DoClose(); } CPPUNIT_TEST_SUITE_REGISTRATION(SparklineTest);