[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-7-1' - sc/qa uitest/uitest vcl/source

Xisco Fauli (via logerrit) logerrit at kemper.freedesktop.org
Thu Aug 19 17:15:47 UTC 2021


 sc/qa/uitest/autofilter/tdf92767.py       |   58 ++++++++++++++++++++++++++++++
 sc/qa/uitest/data/autofilter/tdf92767.ods |binary
 uitest/uitest/uihelper/common.py          |    5 ++
 vcl/source/treelist/uiobject.cxx          |    4 ++
 4 files changed, 67 insertions(+)

New commits:
commit 91d856847d6cd149757e99935779487e13c2558a
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Tue Feb 2 19:55:19 2021 +0100
Commit:     Gabor Kelemen <kelemen.gabor2 at nisz.hu>
CommitDate: Thu Aug 19 19:15:11 2021 +0200

    tdf#92767: sc: Add UItest
    
    Change-Id: I9f1d82d81364ee0ee833b4505e6925cce5e3e787
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110332
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>
    (cherry picked from commit 14d064cee7b76e8a2a2201d4da423336f68fe624)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120718
    Tested-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
    Reviewed-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>

diff --git a/sc/qa/uitest/autofilter/tdf92767.py b/sc/qa/uitest/autofilter/tdf92767.py
new file mode 100644
index 000000000000..859620b73a8a
--- /dev/null
+++ b/sc/qa/uitest/autofilter/tdf92767.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 libreoffice.uno.propertyvalue import mkPropertyValues
+from libreoffice.calc.document import get_row
+from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
+
+def is_row_hidden(doc, index):
+    row = get_row(doc, index)
+    val = row.getPropertyValue("IsVisible")
+    return not val
+
+class tdf92767(UITestCase):
+
+    def test_tdf92767(self):
+        calc_doc = self.ui_test.load_file(get_url_for_data_file("tdf92767.ods"))
+        xCalcDoc = self.xUITest.getTopFocusWindow()
+        gridwin = xCalcDoc.getChild("grid_window")
+        document = self.ui_test.get_component()
+
+        for i in range(0,25):
+            self.assertFalse(is_row_hidden(calc_doc, i))
+
+        gridwin.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
+        xFloatWindow = self.xUITest.getFloatWindow()
+        xTreeList = xFloatWindow.getChild("check_tree_box")
+        xFirstEntry = xTreeList.getChild("0")
+        self.assertEqual('2015', get_state_as_dict(xFirstEntry)["Text"])
+        self.assertEqual('7', get_state_as_dict(xFirstEntry)["Children"])
+
+        # Deselect all the options but the last one
+        for i in range(6):
+            xChild = xFirstEntry.getChild(str(i))
+            xChild.executeAction("CLICK", tuple())
+            self.assertEqual('false', get_state_as_dict(xChild)['IsChecked'])
+
+        xLastChild = xFirstEntry.getChild('6')
+        self.assertEqual('true', get_state_as_dict(xLastChild)['IsChecked'])
+        self.assertEqual('July', get_state_as_dict(xLastChild)['Text'])
+
+        xOkBtn = xFloatWindow.getChild("ok")
+        xOkBtn.executeAction("CLICK", tuple())
+
+        for i in range(1,22):
+            self.assertTrue(is_row_hidden(calc_doc, i))
+
+        # Without the fix in place, this test would have failed here
+        self.assertFalse(is_row_hidden(calc_doc, 23))
+        self.assertFalse(is_row_hidden(calc_doc, 24))
+        self.assertFalse(is_row_hidden(calc_doc, 25))
+
+        self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sc/qa/uitest/data/autofilter/tdf92767.ods b/sc/qa/uitest/data/autofilter/tdf92767.ods
new file mode 100644
index 000000000000..34dfb002e2d0
Binary files /dev/null and b/sc/qa/uitest/data/autofilter/tdf92767.ods differ
diff --git a/uitest/uitest/uihelper/common.py b/uitest/uitest/uihelper/common.py
index cf3a277aa15b..972452d6de07 100644
--- a/uitest/uitest/uihelper/common.py
+++ b/uitest/uitest/uihelper/common.py
@@ -6,6 +6,8 @@
 #
 
 from libreoffice.uno.propertyvalue import convert_property_values_to_dict, mkPropertyValues
+import org.libreoffice.unotest
+import pathlib
 
 def get_state_as_dict(ui_object):
     return convert_property_values_to_dict(ui_object.getState())
@@ -19,6 +21,9 @@ def select_pos(ui_object, pos):
 def select_text(ui_object, from_pos, to):
     ui_object.executeAction("SELECT", mkPropertyValues({"FROM": from_pos, "TO": to}))
 
+def get_url_for_data_file(file_name):
+    return pathlib.Path(org.libreoffice.unotest.makeCopyFromTDOC(file_name)).as_uri()
+
 def change_measurement_unit(UITestCase, unit):
     UITestCase.ui_test.execute_dialog_through_command(".uno:OptionsTreeDialog")
     xDialogOpt = UITestCase.xUITest.getTopFocusWindow()
diff --git a/vcl/source/treelist/uiobject.cxx b/vcl/source/treelist/uiobject.cxx
index e7fb516b5d21..0caea7163f76 100644
--- a/vcl/source/treelist/uiobject.cxx
+++ b/vcl/source/treelist/uiobject.cxx
@@ -108,6 +108,10 @@ StringMap TreeListEntryUIObject::get_state()
     aMap["VisibleChildCount"] = OUString::number(mxTreeList->GetVisibleChildCount(mpEntry));
     aMap["IsSelected"] = OUString::boolean(mxTreeList->IsSelected(mpEntry));
 
+    SvLBoxButton* pItem = static_cast<SvLBoxButton*>(mpEntry->GetFirstItem(SvLBoxItemType::Button));
+    if (pItem)
+        aMap["IsChecked"] = OUString::boolean(pItem->IsStateChecked());
+
     return aMap;
 }
 


More information about the Libreoffice-commits mailing list