sc/qa/unit/ucalc.cxx | 34 ++++++++++++++++++++++++++++++++++ sc/qa/unit/ucalc.hxx | 2 ++ 2 files changed, 36 insertions(+)
New commits: commit 55dbf8795467892abe210e4adcc6cf14f02516d7 Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Thu Aug 1 15:45:07 2013 -0400 fdo#67489: Add test for this. The master branch doesn't have this bug, but it's good to have a test case for this. Change-Id: I986d51bb78effc829f01f40b9ad63647f5341fa9 diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 9132cc5..468d7c6 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -2943,6 +2943,40 @@ void Test::testCopyPaste() m_pDoc->DeleteTab(0); } +void Test::testCopyPasteRelativeFormula() +{ + m_pDoc->InsertTab(0, "Formula"); + + sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); + + // Insert values to A2 and A4. + m_pDoc->SetValue(ScAddress(0,1,0), 1); + m_pDoc->SetValue(ScAddress(0,3,0), 2); + + // Insert formula to B4. + m_pDoc->SetString(ScAddress(1,3,0), "=A4"); + CPPUNIT_ASSERT_EQUAL(2.0, m_pDoc->GetValue(ScAddress(1,3,0))); + + // Select and copy B3:B4 to the clipboard. + ScRange aRange(1,2,0,1,3,0); + ScClipParam aClipParam(aRange, false); + ScMarkData aMark; + aMark.SetMarkArea(aRange); + ScDocument aClipDoc(SCDOCMODE_CLIP); + m_pDoc->CopyToClip(aClipParam, &aClipDoc, &aMark); + + // Paste it to B1:B2. + sal_uInt16 nFlags = IDF_ALL; + ScRange aDestRange(1,0,0,1,1,0); + aMark.SetMarkArea(aDestRange); + m_pDoc->CopyFromClip(aDestRange, aMark, nFlags, NULL, &aClipDoc); + + // B2 references A2, so the value should be 1. + CPPUNIT_ASSERT_EQUAL(1.0, m_pDoc->GetValue(ScAddress(1,1,0))); + + m_pDoc->DeleteTab(0); +} + void Test::testMergedCells() { //test merge and unmerge diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx index 2413317..ebc3221 100644 --- a/sc/qa/unit/ucalc.hxx +++ b/sc/qa/unit/ucalc.hxx @@ -214,6 +214,7 @@ public: void testDataArea(); void testAutofilter(); void testCopyPaste(); + void testCopyPasteRelativeFormula(); void testMergedCells(); void testUpdateReference(); void testSearchCells(); @@ -339,6 +340,7 @@ public: CPPUNIT_TEST(testToggleRefFlag); CPPUNIT_TEST(testAutofilter); CPPUNIT_TEST(testCopyPaste); + CPPUNIT_TEST(testCopyPasteRelativeFormula); CPPUNIT_TEST(testMergedCells); CPPUNIT_TEST(testUpdateReference); CPPUNIT_TEST(testSearchCells); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits