sc/qa/unit/uicalc/uicalc.cxx |   35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

New commits:
commit 9266bc555f52e64b32f505c32ed5008fd3a14e7d
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Mon Jan 31 13:47:32 2022 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Mon Jan 31 20:24:41 2022 +0100

    tdf#146994: sc_uicalc: Add unittest
    
    Change-Id: I2bd5c426bab4dfcef084db764bce0a91e6104495
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129218
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index a8dfa126c708..876a871ae965 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -661,6 +661,41 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf120660)
     pMod->SetInputOptions(aInputOption);
 }
 
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf146994)
+{
+    mxComponent = loadFromDesktop("private:factory/scalc");
+    ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get());
+    CPPUNIT_ASSERT(pModelObj);
+    ScDocument* pDoc = pModelObj->GetDocument();
+    CPPUNIT_ASSERT(pDoc);
+
+    goToCell("B3");
+    lcl_AssertCurrentCursorPosition(1, 2);
+
+    dispatchCommand(mxComponent, ".uno:Copy", {});
+
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RIGHT);
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RIGHT);
+    Scheduler::ProcessEventsToIdle();
+
+    lcl_AssertCurrentCursorPosition(3, 2);
+
+    dispatchCommand(mxComponent, ".uno:Paste", {});
+
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_SHIFT | KEY_DOWN);
+    Scheduler::ProcessEventsToIdle();
+
+    ScRangeList aMarkedArea = 
ScDocShell::GetViewData()->GetMarkData().GetMarkedRanges();
+    OUString aMarkedAreaString;
+    ScRangeStringConverter::GetStringFromRangeList(aMarkedAreaString, 
&aMarkedArea, pDoc,
+                                                   
formula::FormulaGrammar::CONV_OOO);
+
+    // Without the fix in place, this test would have failed with
+    // - Expected: Sheet1.D3:Sheet1.D4
+    // - Actual  : Sheet1.A2:Sheet1.D3
+    CPPUNIT_ASSERT_EQUAL(OUString("Sheet1.D3:Sheet1.D4"), aMarkedAreaString);
+}
+
 CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf117706)
 {
     mxComponent = loadFromDesktop("private:factory/scalc");

Reply via email to