summaryrefslogtreecommitdiff
path: root/sc/qa/unit/SparklineTest.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/qa/unit/SparklineTest.cxx')
-rw-r--r--sc/qa/unit/SparklineTest.cxx64
1 files changed, 64 insertions, 0 deletions
diff --git a/sc/qa/unit/SparklineTest.cxx b/sc/qa/unit/SparklineTest.cxx
index f8d07edc53e6..9c52ab1d1c65 100644
--- a/sc/qa/unit/SparklineTest.cxx
+++ b/sc/qa/unit/SparklineTest.cxx
@@ -58,6 +58,7 @@ public:
void testUndoRedoEditSparklineGroup();
void testUndoRedoUngroupSparklines();
void testUndoRedoGroupSparklines();
+ void testUndoRedoEditSparkline();
void testSparklineList();
CPPUNIT_TEST_SUITE(SparklineTest);
@@ -72,6 +73,7 @@ public:
CPPUNIT_TEST(testUndoRedoEditSparklineGroup);
CPPUNIT_TEST(testUndoRedoUngroupSparklines);
CPPUNIT_TEST(testUndoRedoGroupSparklines);
+ CPPUNIT_TEST(testUndoRedoEditSparkline);
CPPUNIT_TEST(testSparklineList);
CPPUNIT_TEST_SUITE_END();
};
@@ -867,6 +869,68 @@ void SparklineTest::testUndoRedoGroupSparklines()
xDocSh->DoClose();
}
+void SparklineTest::testUndoRedoEditSparkline()
+{
+ ScDocShellRef xDocSh = loadEmptyDocument();
+ CPPUNIT_ASSERT(xDocSh);
+
+ ScDocument& rDocument = xDocSh->GetDocument();
+ ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false);
+ CPPUNIT_ASSERT(pViewShell);
+
+ auto& rDocFunc = xDocSh->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);
+
+ // Sparkline range
+ ScAddress aAddress(0, 6, 0);
+ ScRange aRange(aAddress);
+
+ // Check Sparkline at cell A7 doesn't exists
+ auto pSparkline = rDocument.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);
+ 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]);
+
+ // Change Sparkline
+ CPPUNIT_ASSERT(
+ rDocFunc.ChangeSparkline(pSparkline, SCTAB(0), ScRangeList(ScRange(0, 1, 0, 0, 4, 0))));
+
+ pSparkline = rDocument.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();
+
+ pSparkline = rDocument.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();
+
+ pSparkline = rDocument.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();