[Libreoffice-commits] core.git: Branch 'feature/sc-notes-storage' - sc/qa
Laurent Godard
lgodard.libre at laposte.net
Fri Sep 20 04:56:19 PDT 2013
sc/qa/unit/ucalc.cxx | 68 ++++++++++++++++++++++++++++++++++++---------------
sc/qa/unit/ucalc.hxx | 2 +
2 files changed, 51 insertions(+), 19 deletions(-)
New commits:
commit 76fc361a4804298084cf5ad99abf373d4132b44c
Author: Laurent Godard <lgodard.libre at laposte.net>
Date: Fri Sep 20 13:55:17 2013 +0200
isolate testCopyPasteTranspose
Change-Id: I0f01b5785e45371d856f3c2c94706a6f3af652e9
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 139e7c6f..8488c20 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -2987,42 +2987,72 @@ void Test::testCopyPaste()
m_pDoc->GetNote(ScAddress(2, 0, 0))->GetText() == m_pDoc->GetNote(ScAddress(2, 1, 1))->GetText());
- // transpose clipboard, paste and check on Sheet3
- m_pDoc->InsertTab(2, OUString("Sheet3"));
+ m_pDoc->DeleteTab(1);
+ m_pDoc->DeleteTab(0);
+}
+
+void Test::testCopyPasteTranspose()
+{
+
+ m_pDoc->InsertTab(0, OUString("Sheet1"));
+ m_pDoc->InsertTab(1, OUString("Sheet2"));
+
+ m_pDoc->SetValue(0, 0, 0, 1);
+ m_pDoc->SetValue(1, 0, 0, 2);
+ m_pDoc->SetString(2, 0, 0, OUString("test"));
- aRange = ScRange(0,0,0,2,0,0);
+ // add notes to A1:C1
+ ScAddress aAdrA1 (0, 0, 0); // empty cell content
+ OUString aHelloA1("Hello world in A1");
+ ScPostIt *pNoteA1 = m_pDoc->GetOrCreateNote(aAdrA1);
+ pNoteA1->SetText(aAdrA1, aHelloA1);
+ ScAddress aAdrB1 (1, 0, 0); // formula cell content
+ OUString aHelloB1("Hello world in B1");
+ ScPostIt *pNoteB1 = m_pDoc->GetOrCreateNote(aAdrB1);
+ pNoteB1->SetText(aAdrB1, aHelloB1);
+ ScAddress aAdrC1 (2, 0, 0); // string cell content
+ OUString aHelloC1("Hello world in C1");
+ ScPostIt *pNoteC1 = m_pDoc->GetOrCreateNote(aAdrC1);
+ pNoteC1->SetText(aAdrC1, aHelloC1);
+
+ // transpose clipboard, paste and check on Sheet2
+ m_pDoc->InsertTab(1, OUString("Sheet2"));
+
+ ScRange aSrcRange = ScRange(0,0,0,2,0,0);
ScDocument aNewClipDoc(SCDOCMODE_CLIP);
- copyToClip(m_pDoc, aRange, &aNewClipDoc);
+ copyToClip(m_pDoc, aSrcRange, &aNewClipDoc);
::std::auto_ptr<ScDocument> pTransClip;
pTransClip.reset(new ScDocument(SCDOCMODE_CLIP));
aNewClipDoc.TransposeClip(pTransClip.get(), IDF_ALL, false);
ScDocument* pTransposedClip = pTransClip.release();
- aRange = ScRange(3,1,2,3,3,2);//target: Sheet3.D2:D4
- aMark.SetMarkArea(aRange);
- m_pDoc->CopyFromClip(aRange, aMark, IDF_ALL, NULL, pTransposedClip);
+ ScRange aDestRange = ScRange(3,1,1,3,3,1);//target: Sheet2.D2:D4
+ ScMarkData aMark;
+ aMark.SetMarkArea(aSrcRange);
+ m_pDoc->CopyFromClip(aDestRange, aMark, IDF_ALL, NULL, pTransposedClip);
//check values after transposed copy/paste
-/*
- aString = m_pDoc->GetString(3, 3, 2);
+
+ OUString aString = m_pDoc->GetString(3, 3, 1);
CPPUNIT_ASSERT_MESSAGE("Cell Sheet3.D4 should contain: test", aString.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("test")));
- fValue = m_pDoc->GetValue(ScAddress(3,1,2));
- m_pDoc->GetFormula(3,1,2, aString);
+ // check notes after transposed copy/paste
+ CPPUNIT_ASSERT_MESSAGE("There should be a note on Sheet2.D2", m_pDoc->HasNote(ScAddress(3, 1, 1)));
+ CPPUNIT_ASSERT_MESSAGE("There should be a note on Sheet2.D3", m_pDoc->HasNote(ScAddress(3, 2, 1)));
+ CPPUNIT_ASSERT_MESSAGE("There should be a note on Sheet2.D4", m_pDoc->HasNote(ScAddress(3, 3, 1)));
+
+/*
+ double fValue = m_pDoc->GetValue(ScAddress(3,1,1));
+ m_pDoc->GetFormula(3,1,1, aString);
ASSERT_DOUBLES_EQUAL_MESSAGE("transposed copied formula should return 2", fValue, 2);
- CPPUNIT_ASSERT_MESSAGE("transposed formula string was not copied correctly", aString == aFormulaString);
- fValue = m_pDoc->GetValue(ScAddress(3,2,3));
+ // CPPUNIT_ASSERT_MESSAGE("transposed formula string was not copied correctly", aString == aFormulaString);
+ fValue = m_pDoc->GetValue(ScAddress(3,2,1));
CPPUNIT_ASSERT_MESSAGE("transposed copied value should be 1", fValue == 1);
-
- // check notes after transposed copy/paste
- CPPUNIT_ASSERT_MESSAGE("There should be a note on Sheet3.D2", m_pDoc->HasNote(ScAddress(3, 1, 2)));
- CPPUNIT_ASSERT_MESSAGE("There should be a note on Sheet3.D3", m_pDoc->HasNote(ScAddress(3, 2, 2)));
- CPPUNIT_ASSERT_MESSAGE("There should be a note on Sheet3.D4", m_pDoc->HasNote(ScAddress(3, 3, 2)));
*/
- m_pDoc->DeleteTab(2);
m_pDoc->DeleteTab(1);
m_pDoc->DeleteTab(0);
+
}
void Test::testCopyPasteRelativeFormula()
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index e97bb8d..bb48533 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 testCopyPasteTranspose();
void testCopyPasteRelativeFormula();
void testMergedCells();
void testUpdateReference();
@@ -345,6 +346,7 @@ public:
CPPUNIT_TEST(testToggleRefFlag);
CPPUNIT_TEST(testAutofilter);
CPPUNIT_TEST(testCopyPaste);
+ CPPUNIT_TEST(testCopyPasteTranspose);
CPPUNIT_TEST(testCopyPasteRelativeFormula);
CPPUNIT_TEST(testMergedCells);
CPPUNIT_TEST(testUpdateReference);
More information about the Libreoffice-commits
mailing list