summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-16 16:21:06 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-16 19:44:21 +0200
commit8dabae1678348ccae72d231598402f3c8d3be1e7 (patch)
tree4d52eab1d40252dd39c1985bfe39d4a32c08920a /sc
parent8e5271e180e1f0c6239b7b078d065d5979d86d21 (diff)
add a test for storing formula cells in the cache
Change-Id: I094491c7a9be5384f88c30ed6a3271aa73674ad8 Reviewed-on: https://gerrit.libreoffice.org/41222 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/unit/datacache.cxx32
1 files changed, 32 insertions, 0 deletions
diff --git a/sc/qa/unit/datacache.cxx b/sc/qa/unit/datacache.cxx
index cdbd8db05e98..61e72ae01522 100644
--- a/sc/qa/unit/datacache.cxx
+++ b/sc/qa/unit/datacache.cxx
@@ -23,10 +23,12 @@ public:
void testCacheSimple();
void testCacheString();
+ void testCacheFormula();
CPPUNIT_TEST_SUITE(ScCacheTest);
CPPUNIT_TEST(testCacheSimple);
CPPUNIT_TEST(testCacheString);
+ CPPUNIT_TEST(testCacheFormula);
CPPUNIT_TEST_SUITE_END();
public:
@@ -83,6 +85,36 @@ void ScCacheTest::testCacheString()
CPPUNIT_ASSERT_EQUAL(OUString("da"), aNewDoc.GetString(0, 2, 0));
}
+void ScCacheTest::testCacheFormula()
+{
+ ScDocument aDoc;
+ aDoc.InsertTab(0, "test");
+
+ aDoc.SetString(0, 0, 0, "=B1");
+ aDoc.SetString(0, 1, 0, "=B2");
+ aDoc.SetString(0, 2, 0, "=B3");
+ aDoc.SetString(0, 3, 0, "=B4");
+ aDoc.SetString(0, 4, 0, "=B5");
+ aDoc.SetString(0, 5, 0, "=B1");
+
+ SvMemoryStream aStrm;
+ aDoc.StoreTabToCache(0, aStrm);
+
+ aStrm.Seek(0);
+
+ ScDocument aNewDoc;
+ aNewDoc.InsertTab(0, "test");
+ aNewDoc.RestoreTabFromCache(0, aStrm);
+
+ std::vector<OUString> aFormulas = {"=B1", "=B2", "=B3", "=B4", "=B5", "=B1"};
+ for (SCROW nRow = 0; nRow <= 5; ++nRow)
+ {
+ OUString aFormula;
+ aNewDoc.GetFormula(0, nRow, 0, aFormula);
+ CPPUNIT_ASSERT_EQUAL(aFormulas[nRow], aFormula);
+ }
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(ScCacheTest);
CPPUNIT_PLUGIN_IMPLEMENT();