tdf#131170: Add UItest

Change-Id: I3d881803014d80cd3e8b3ed2f3cc2e84fdc1b3b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92261
Tested-by: Jenkins
Reviewed-by: Xisco FaulĂ­ <xiscofauli@libreoffice.org>
diff --git a/sc/qa/uitest/calc_dialogs/openDialogs.py b/sc/qa/uitest/calc_dialogs/openDialogs.py
index d49701a..db37d38 100644
--- a/sc/qa/uitest/calc_dialogs/openDialogs.py
+++ b/sc/qa/uitest/calc_dialogs/openDialogs.py
@@ -79,7 +79,8 @@ dialogs = [
        # dialog does not open
    {"command": ".uno:CreateNames", "closeButton": "cancel", "skipTestOK": True},
        # OK button triggers a new dialog
    {"command": ".uno:DefineLabelRange", "closeButton": "cancel"},
    #{"command": ".uno:DefineLabelRange", "closeButton": "cancel"},
        # tested in sc/qa/uitest/calc_tests4/tdf131170.py
    # {"command": ".uno:RenameTable", "closeButton": "cancel"},
        # tested in sc/qa/uitest/calc_tests/sheetRename.py
    # {"command": ".uno:Move", "closeButton": "cancel"},
diff --git a/sc/qa/uitest/calc_tests/data/tdf131170.ods b/sc/qa/uitest/calc_tests/data/tdf131170.ods
new file mode 100644
index 0000000..09d74a4
--- /dev/null
+++ b/sc/qa/uitest/calc_tests/data/tdf131170.ods
Binary files differ
diff --git a/sc/qa/uitest/calc_tests4/tdf131170.py b/sc/qa/uitest/calc_tests4/tdf131170.py
new file mode 100644
index 0000000..7267969
--- /dev/null
+++ b/sc/qa/uitest/calc_tests4/tdf131170.py
@@ -0,0 +1,58 @@
# -*- 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.path import get_srcdir_url

def get_url_for_data_file(file_name):
    return get_srcdir_url() + "/sc/qa/uitest/calc_tests/data/" + file_name

class tdf131170(UITestCase):
    def test_DefineLabelRange(self):
        calc_doc = self.ui_test.load_file(get_url_for_data_file("tdf131170.ods"))
        xCalcDoc = self.xUITest.getTopFocusWindow()
        gridwin = xCalcDoc.getChild("grid_window")

        self.ui_test.execute_dialog_through_command(".uno:DefineLabelRange")
        xDialog = self.xUITest.getTopFocusWindow()

        xRange = xDialog.getChild("range")
        self.assertEqual(4, len(xRange.getChildren()))
        self.assertEqual(get_state_as_dict(xRange.getChild('0'))["Text"].strip(), "--- Column ---")
        self.assertEqual(get_state_as_dict(xRange.getChild('1'))["Text"].strip(), "$Sheet1.$I$6:$K$6 [AA, BB, CC]")
        self.assertEqual(get_state_as_dict(xRange.getChild('2'))["Text"].strip(), "--- Row ---")
        self.assertEqual(get_state_as_dict(xRange.getChild('3'))["Text"].strip(), "$Sheet1.$H$7:$H$9 [X, Y, Z]")

        def handle_confirmation_dlg(dialog2):
            xOKBtn2 = dialog2.getChild("yes")
            self.ui_test.close_dialog_through_button(xOKBtn2)

        xDeleteBtn = xDialog.getChild("delete")

        xRange.getChild('1').executeAction("SELECT", tuple())
        self.ui_test.execute_blocking_action(xDeleteBtn.executeAction, args=('CLICK', ()),
                dialog_handler=handle_confirmation_dlg)

        self.assertEqual(3, len(xRange.getChildren()))
        self.assertEqual(get_state_as_dict(xRange.getChild('0'))["Text"].strip(), "--- Column ---")
        self.assertEqual(get_state_as_dict(xRange.getChild('1'))["Text"].strip(), "--- Row ---")
        self.assertEqual(get_state_as_dict(xRange.getChild('2'))["Text"].strip(), "$Sheet1.$H$7:$H$9 [X, Y, Z]")

        xRange.getChild('2').executeAction("SELECT", tuple())
        self.ui_test.execute_blocking_action(xDeleteBtn.executeAction, args=('CLICK', ()),
                dialog_handler=handle_confirmation_dlg)

        self.assertEqual(2, len(xRange.getChildren()))
        self.assertEqual(get_state_as_dict(xRange.getChild('0'))["Text"].strip(), "--- Column ---")
        self.assertEqual(get_state_as_dict(xRange.getChild('1'))["Text"].strip(), "--- Row ---")

        xOKBtn = xDialog.getChild("ok")
        self.ui_test.close_dialog_through_button(xOKBtn)

        self.ui_test.close_doc()

# vim: set shiftwidth=4 softtabstop=4 expandtab: