sc/qa/uitest/calc_tests7/tdf124816.py | 36 ----------------- sc/qa/unit/uicalc/uicalc.cxx | 72 ++++++++++++++++------------------ 2 files changed, 35 insertions(+), 73 deletions(-)
New commits: commit 55a97625c56d4b1bf6948628559f7e63d01d8333 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Tue Mar 10 15:58:55 2020 +0100 Commit: Xisco FaulĂ <xiscofa...@libreoffice.org> CommitDate: Tue Mar 10 18:33:33 2020 +0100 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Ă <xiscofa...@libreoffice.org> 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 similarity index 100% rename from sc/qa/uitest/calc_tests/data/tdf124816.xlsx rename to 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: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits