diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2020-03-10 15:58:55 +0100 |
---|---|---|
committer | Xisco FaulĂ <xiscofauli@libreoffice.org> | 2020-03-10 18:33:33 +0100 |
commit | 55a97625c56d4b1bf6948628559f7e63d01d8333 (patch) | |
tree | 76d7fc945bfa5d3486a965410a1119189a4ca6a4 | |
parent | 3fb0d46b1ec39cb6a5deb8521f7a4e489c194841 (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.py | 36 | ||||
-rw-r--r-- | sc/qa/unit/uicalc/data/tdf124816.xlsx (renamed from sc/qa/uitest/calc_tests/data/tdf124816.xlsx) | bin | 10247 -> 10247 bytes | |||
-rw-r--r-- | sc/qa/unit/uicalc/uicalc.cxx | 72 |
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 Binary files differindex 890c9de8e0ac..890c9de8e0ac 100644 --- a/sc/qa/uitest/calc_tests/data/tdf124816.xlsx +++ b/sc/qa/unit/uicalc/data/tdf124816.xlsx 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: */ |