summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2020-03-10 15:58:55 +0100
committerXisco FaulĂ­ <xiscofauli@libreoffice.org>2020-03-10 18:33:33 +0100
commit55a97625c56d4b1bf6948628559f7e63d01d8333 (patch)
tree76d7fc945bfa5d3486a965410a1119189a4ca6a4
parent3fb0d46b1ec39cb6a5deb8521f7a4e489c194841 (diff)
tdf#124816: move UItest to CppunitTest
Change-Id: I2ad49fc599bf2c0d4be79967e935abed13e75970 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90264 Tested-by: Jenkins Reviewed-by: Xisco FaulĂ­ <xiscofauli@libreoffice.org>
-rw-r--r--sc/qa/uitest/calc_tests7/tdf124816.py36
-rw-r--r--sc/qa/unit/uicalc/data/tdf124816.xlsx (renamed from sc/qa/uitest/calc_tests/data/tdf124816.xlsx)bin10247 -> 10247 bytes
-rw-r--r--sc/qa/unit/uicalc/uicalc.cxx72
3 files changed, 35 insertions, 73 deletions
diff --git a/sc/qa/uitest/calc_tests7/tdf124816.py b/sc/qa/uitest/calc_tests7/tdf124816.py
deleted file mode 100644
index b9b2b01f6eee..000000000000
--- a/sc/qa/uitest/calc_tests7/tdf124816.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-from uitest.framework import UITestCase
-from uitest.uihelper.common import get_state_as_dict
-from uitest.uihelper.common import select_pos
-from uitest.uihelper.calc import enter_text_to_cell
-from libreoffice.calc.document import get_cell_by_position
-from libreoffice.uno.propertyvalue import mkPropertyValues
-from uitest.uihelper.common import get_state_as_dict, type_text
-from uitest.debug import sleep
-import org.libreoffice.unotest
-import pathlib
-
-def get_url_for_data_file(file_name):
- return pathlib.Path(org.libreoffice.unotest.makeCopyFromTDOC(file_name)).as_uri()
-
-#Bug 124816 - CRASH: inserting a new row
-
-class tdf124816(UITestCase):
- def test_tdf124816_crash_inserting_new_row(self):
- calc_doc = self.ui_test.load_file(get_url_for_data_file("tdf124816.xlsx"))
- xCalcDoc = self.xUITest.getTopFocusWindow()
- gridwin = xCalcDoc.getChild("grid_window")
- document = self.ui_test.get_component()
-
- #Go to Sheet - Insert Row - Insert row before
- self.xUITest.executeCommand(".uno:InsertRowsBefore")
- self.xUITest.executeCommand(".uno:Undo")
- #verify; no crashes
- self.assertEqual(get_cell_by_position(document, 0, 1, 0).getString(), "1")
- self.ui_test.close_doc()
-# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sc/qa/uitest/calc_tests/data/tdf124816.xlsx b/sc/qa/unit/uicalc/data/tdf124816.xlsx
index 890c9de8e0ac..890c9de8e0ac 100644
--- a/sc/qa/uitest/calc_tests/data/tdf124816.xlsx
+++ b/sc/qa/unit/uicalc/data/tdf124816.xlsx
Binary files differ
diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index 193f50e7978e..00a8351fb8c8 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -28,6 +28,7 @@ public:
virtual void tearDown() override;
ScModelObj* createDoc(const char* pName);
+ void checkCurrentCell(SCCOL nCol, SCROW nRow);
protected:
uno::Reference<lang::XComponent> mxComponent;
@@ -48,6 +49,12 @@ void ScUiCalcTest::tearDown()
test::BootstrapFixture::tearDown();
}
+void ScUiCalcTest::checkCurrentCell(SCCOL nCol, SCROW nRow)
+{
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(nCol), ScDocShell::GetViewData()->GetCurX());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(nRow), ScDocShell::GetViewData()->GetCurY());
+}
+
char const DATA_DIRECTORY[] = "/sc/qa/unit/uicalc/data/";
ScModelObj* ScUiCalcTest::createDoc(const char* pName)
@@ -69,22 +76,17 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf122232)
CPPUNIT_ASSERT(pDoc);
//Start with from C6. Press tabulator to reach G6.
- CPPUNIT_ASSERT_EQUAL(sal_Int16(2), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), ScDocShell::GetViewData()->GetCurY());
+ checkCurrentCell(2, 5);
pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB);
pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB);
Scheduler::ProcessEventsToIdle();
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(6), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(5), ScDocShell::GetViewData()->GetCurY());
+ checkCurrentCell(6, 5);
//without the fix, cursor would jump to C29 instead of C7.
pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN);
Scheduler::ProcessEventsToIdle();
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(2), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(6), ScDocShell::GetViewData()->GetCurY());
+ checkCurrentCell(2, 6);
}
CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf126904)
@@ -93,48 +95,44 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf126904)
ScDocument* pDoc = pModelObj->GetDocument();
CPPUNIT_ASSERT(pDoc);
- CPPUNIT_ASSERT_EQUAL(sal_Int16(0), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
-
+ checkCurrentCell(0, 4);
dispatchCommand(mxComponent, ".uno:GoRight", {});
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(1), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
-
+ checkCurrentCell(1, 4);
dispatchCommand(mxComponent, ".uno:GoRight", {});
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(4), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
-
+ checkCurrentCell(4, 4);
dispatchCommand(mxComponent, ".uno:GoRight", {});
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(5), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
-
+ checkCurrentCell(5, 4);
dispatchCommand(mxComponent, ".uno:GoRight", {});
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(8), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
-
+ checkCurrentCell(8, 4);
dispatchCommand(mxComponent, ".uno:GoRight", {});
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(9), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
-
+ checkCurrentCell(9, 4);
dispatchCommand(mxComponent, ".uno:GoRight", {});
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(12), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
+ checkCurrentCell(12, 4);
//Cursor can't move forward to the right
for (size_t i = 0; i < 5; ++i)
{
dispatchCommand(mxComponent, ".uno:GoRight", {});
-
- CPPUNIT_ASSERT_EQUAL(sal_Int16(13), ScDocShell::GetViewData()->GetCurX());
- CPPUNIT_ASSERT_EQUAL(sal_Int32(4), ScDocShell::GetViewData()->GetCurY());
+ checkCurrentCell(13, 4);
}
}
+
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124816)
+{
+ ScModelObj* pModelObj = createDoc("tdf124816.xlsx");
+ ScDocument* pDoc = pModelObj->GetDocument();
+ CPPUNIT_ASSERT(pDoc);
+
+ checkCurrentCell(3, 9);
+ CPPUNIT_ASSERT_EQUAL(OUString("0"), pDoc->GetString(ScAddress(3, 9, 0)));
+
+ //Without the fix, it would crash
+ dispatchCommand(mxComponent, ".uno:InsertRowsBefore", {});
+ CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(3, 9, 0)));
+ dispatchCommand(mxComponent, ".uno:Undo", {});
+ CPPUNIT_ASSERT_EQUAL(OUString("0"), pDoc->GetString(ScAddress(3, 9, 0)));
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */