diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-08-16 16:21:06 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-08-16 19:44:21 +0200 |
commit | 8dabae1678348ccae72d231598402f3c8d3be1e7 (patch) | |
tree | 4d52eab1d40252dd39c1985bfe39d4a32c08920a /sc | |
parent | 8e5271e180e1f0c6239b7b078d065d5979d86d21 (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.cxx | 32 |
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(); |