1 # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
3 # This file is part of the LibreOffice project.
5 # This Source Code Form is subject to the terms of the Mozilla Public
6 # License, v. 2.0. If a copy of the MPL was not distributed with this
7 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 from uitest
.framework
import UITestCase
11 from libreoffice
.uno
.propertyvalue
import mkPropertyValues
12 from uitest
.uihelper
.common
import get_state_as_dict
, get_url_for_data_file
13 from uitest
.uihelper
.calc
import enter_text_to_cell
15 class autofilter(UITestCase
):
17 def test_tdf115046(self
):
18 with self
.ui_test
.load_file(get_url_for_data_file("tdf115046.ods")) as calc_doc
:
20 self
.assertEqual(calc_doc
.getPropertyValue("UnnamedDatabaseRanges").getByTable(0).AutoFilter
, True)
22 with self
.ui_test
.execute_dialog_through_command(".uno:DataSort", close_button
="cancel"):
25 #autofilter still exist
26 self
.assertEqual(calc_doc
.getPropertyValue("UnnamedDatabaseRanges").getByTable(0).AutoFilter
, True)
28 def test_tdf123095(self
):
29 with self
.ui_test
.create_doc_in_start_center("calc"):
30 calcDoc
= self
.xUITest
.getTopFocusWindow()
31 xGridWindow
= calcDoc
.getChild("grid_window")
32 enter_text_to_cell(xGridWindow
, "A1", "乙二醇(进口料件)")
33 enter_text_to_cell(xGridWindow
, "A2", "乙二醇(进口料件)")
34 xGridWindow
.executeAction("SELECT", mkPropertyValues({"RANGE": "A1:A2"}))
36 with self
.ui_test
.execute_dialog_through_command(".uno:DataFilterAutoFilter", close_button
="no"):
39 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
40 xFloatWindow
= self
.xUITest
.getFloatWindow()
41 xTreeList
= xFloatWindow
.getChild("check_list_box")
43 # Without the fix in place, the second entry would not exist
44 self
.assertEqual(2, len(xTreeList
.getChildren()))
45 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("0"))["Text"], "乙二醇(进口料件)")
46 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("1"))["Text"], "乙二醇(进口料件)")
48 def test_tdf125363(self
):
49 with self
.ui_test
.create_doc_in_start_center("calc"):
50 calcDoc
= self
.xUITest
.getTopFocusWindow()
51 xGridWindow
= calcDoc
.getChild("grid_window")
52 enter_text_to_cell(xGridWindow
, "A1", "guet")
53 enter_text_to_cell(xGridWindow
, "A2", "guͤt")
54 enter_text_to_cell(xGridWindow
, "A3", "tuon")
55 enter_text_to_cell(xGridWindow
, "A4", "tuͦn")
56 enter_text_to_cell(xGridWindow
, "A5", "vröude")
57 enter_text_to_cell(xGridWindow
, "A6", "vröudᵉ")
58 xGridWindow
.executeAction("SELECT", mkPropertyValues({"RANGE": "A1:A6"}))
60 with self
.ui_test
.execute_dialog_through_command(".uno:DataFilterAutoFilter", close_button
="no"):
63 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
64 xFloatWindow
= self
.xUITest
.getFloatWindow()
65 xTreeList
= xFloatWindow
.getChild("check_list_box")
67 # Without the fix in place, the entries with superscript/modifier letters would not exist
68 self
.assertEqual(6, len(xTreeList
.getChildren()))
69 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("0"))["Text"], "guet")
70 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("1"))["Text"], "guͤt")
71 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("2"))["Text"], "tuon")
72 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("3"))["Text"], "tuͦn")
73 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("4"))["Text"], "vröude")
74 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("5"))["Text"], "vröudᵉ")
76 def test_tdf158326(self
):
77 with self
.ui_test
.create_doc_in_start_center("calc"):
78 calcDoc
= self
.xUITest
.getTopFocusWindow()
79 xGridWindow
= calcDoc
.getChild("grid_window")
80 enter_text_to_cell(xGridWindow
, "A1", "vröude")
81 enter_text_to_cell(xGridWindow
, "A2", "vröudᵉ")
82 enter_text_to_cell(xGridWindow
, "A3", "vröude")
83 enter_text_to_cell(xGridWindow
, "A4", "vröudᵉ")
84 enter_text_to_cell(xGridWindow
, "A5", "vröude")
85 enter_text_to_cell(xGridWindow
, "A6", "vröudᵉ")
86 xGridWindow
.executeAction("SELECT", mkPropertyValues({"RANGE": "A1:A6"}))
88 with self
.ui_test
.execute_dialog_through_command(".uno:DataFilterAutoFilter", close_button
="no"):
91 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
92 xFloatWindow
= self
.xUITest
.getFloatWindow()
93 xTreeList
= xFloatWindow
.getChild("check_list_box")
95 # Without the fix in place, there would be 5 items since they will not be removed
96 self
.assertEqual(2, len(xTreeList
.getChildren()))
97 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("0"))["Text"], "vröude")
98 self
.assertEqual(get_state_as_dict(xTreeList
.getChild("1"))["Text"], "vröudᵉ")
100 def test_tdf94055(self
):
101 with self
.ui_test
.create_doc_in_start_center("calc") as document
:
102 calcDoc
= self
.xUITest
.getTopFocusWindow()
103 xGridWindow
= calcDoc
.getChild("grid_window")
104 enter_text_to_cell(xGridWindow
, "A1", "X")
105 enter_text_to_cell(xGridWindow
, "B1", "Y")
106 enter_text_to_cell(xGridWindow
, "A2", "a")
107 enter_text_to_cell(xGridWindow
, "B2", "b")
108 enter_text_to_cell(xGridWindow
, "A3", "c")
109 enter_text_to_cell(xGridWindow
, "B3", "d")
110 xGridWindow
.executeAction("SELECT", mkPropertyValues({"RANGE": "A1:B1"}))
112 with self
.ui_test
.execute_dialog_through_command(".uno:DataFilterAutoFilter", close_button
="yes"):
115 xGridWindow
.executeAction("SELECT", mkPropertyValues({"RANGE": "A2:A3"}))
116 self
.xUITest
.executeCommand(".uno:SelectRow") #select two rows
118 with self
.ui_test
.execute_dialog_through_command(".uno:DataSort"):
121 #autofilter still exist
122 self
.assertEqual(document
.getPropertyValue("UnnamedDatabaseRanges").getByTable(0).AutoFilter
, True)
126 def test_tdf77479(self
):
127 with self
.ui_test
.load_file(get_url_for_data_file("tdf77479.ods")) as calc_doc
:
128 calcDoc
= self
.xUITest
.getTopFocusWindow()
129 xGridWindow
= calcDoc
.getChild("grid_window")
131 self
.assertEqual(calc_doc
.getPropertyValue("UnnamedDatabaseRanges").getByTable(0).AutoFilter
, True)
133 xGridWindow
.executeAction("SELECT", mkPropertyValues({"RANGE": "A2:E6"}))
135 with self
.ui_test
.execute_dialog_through_command(".uno:DataSort"):
138 #autofilter still exist
139 self
.assertEqual(calc_doc
.getPropertyValue("UnnamedDatabaseRanges").getByTable(0).AutoFilter
, True)
142 def test_tdf112656(self
):
143 with self
.ui_test
.load_file(get_url_for_data_file("tdf112656.ods")):
144 calcDoc
= self
.xUITest
.getTopFocusWindow()
145 xGridWindow
= calcDoc
.getChild("grid_window")
147 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "2", "ROW": "0"}))
148 xFloatWindow
= self
.xUITest
.getFloatWindow()
149 xTreeList
= xFloatWindow
.getChild("check_list_box")
150 xFirstEntry
= xTreeList
.getChild("0")
151 xSecondEntry
= xTreeList
.getChild("1")
152 self
.assertEqual(get_state_as_dict(xFirstEntry
)["Text"], "Fruit")
153 self
.assertEqual(get_state_as_dict(xSecondEntry
)["Text"], "Vegetables")
156 def test_tdf81124(self
):
157 with self
.ui_test
.load_file(get_url_for_data_file("tdf81124.ods")):
158 calcDoc
= self
.xUITest
.getTopFocusWindow()
159 xGridWindow
= calcDoc
.getChild("grid_window")
161 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
162 xFloatWindow
= self
.xUITest
.getFloatWindow()
164 xUnselect
= xFloatWindow
.getChild("unselect_current")
165 xUnselect
.executeAction("CLICK", tuple())
166 xokBtn
= xFloatWindow
.getChild("ok")
167 self
.assertEqual(get_state_as_dict(xokBtn
)["Enabled"], "false")
169 xSelect
= xFloatWindow
.getChild("select_current")
170 xSelect
.executeAction("CLICK", tuple())
171 xokBtn
= xFloatWindow
.getChild("ok")
172 self
.assertEqual(get_state_as_dict(xokBtn
)["Enabled"], "true")
174 xCancel
= xFloatWindow
.getChild("cancel")
175 xCancel
.executeAction("CLICK", tuple())
178 def test_tdf73565(self
):
179 with self
.ui_test
.load_file(get_url_for_data_file("tdf73565.ods")):
180 calcDoc
= self
.xUITest
.getTopFocusWindow()
181 xGridWindow
= calcDoc
.getChild("grid_window")
183 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
184 xFloatWindow
= self
.xUITest
.getFloatWindow()
185 xTreeList
= xFloatWindow
.getChild("check_tree_box")
186 xFirstEntry
= xTreeList
.getChild("0")
187 self
.assertEqual(get_state_as_dict(xFirstEntry
)["Text"], "2014")
189 xCancel
= xFloatWindow
.getChild("cancel")
190 xCancel
.executeAction("CLICK", tuple())
193 def test_tdf65505(self
):
194 with self
.ui_test
.load_file(get_url_for_data_file("tdf81124.ods")):
195 calcDoc
= self
.xUITest
.getTopFocusWindow()
196 xGridWindow
= calcDoc
.getChild("grid_window")
198 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
199 xFloatWindow
= self
.xUITest
.getFloatWindow()
200 xTreeList
= xFloatWindow
.getChild("check_list_box")
201 xFirstEntry
= xTreeList
.getChild("0")
202 self
.assertEqual(get_state_as_dict(xFirstEntry
)["Text"], "(empty)")
204 xCancel
= xFloatWindow
.getChild("cancel")
205 xCancel
.executeAction("CLICK", tuple())
208 def test_tdf74857(self
):
209 with self
.ui_test
.load_file(get_url_for_data_file("tdf74857.ods")):
210 calcDoc
= self
.xUITest
.getTopFocusWindow()
211 xGridWindow
= calcDoc
.getChild("grid_window")
213 xGridWindow
.executeAction("TYPE", mkPropertyValues({"KEYCODE":"SHIFT+CTRL+DOWN"}))
214 # Assert that the correct range has been selected
215 gridWinState
= get_state_as_dict(xGridWindow
)
216 self
.assertEqual(gridWinState
["MarkedArea"], "Sheet1.A1:Sheet1.A25")
219 def test_tdf35294(self
):
220 with self
.ui_test
.load_file(get_url_for_data_file("tdf35294.ods")):
221 calcDoc
= self
.xUITest
.getTopFocusWindow()
222 xGridWindow
= calcDoc
.getChild("grid_window")
224 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
225 xFloatWindow
= self
.xUITest
.getFloatWindow()
226 xTreeList
= xFloatWindow
.getChild("check_list_box")
227 x1Entry
= xTreeList
.getChild("0")
228 x2Entry
= xTreeList
.getChild("1")
229 x3Entry
= xTreeList
.getChild("2")
230 x4Entry
= xTreeList
.getChild("3")
231 x5Entry
= xTreeList
.getChild("4")
232 x6Entry
= xTreeList
.getChild("5")
233 x7Entry
= xTreeList
.getChild("6")
235 self
.assertEqual(get_state_as_dict(x1Entry
)["Text"], "a")
236 self
.assertEqual(get_state_as_dict(x2Entry
)["Text"], "á")
237 self
.assertEqual(get_state_as_dict(x3Entry
)["Text"], "b")
238 self
.assertEqual(get_state_as_dict(x4Entry
)["Text"], "č")
239 self
.assertEqual(get_state_as_dict(x5Entry
)["Text"], "é")
240 self
.assertEqual(get_state_as_dict(x6Entry
)["Text"], "ř")
241 self
.assertEqual(get_state_as_dict(x7Entry
)["Text"], "ž")
243 xCancel
= xFloatWindow
.getChild("cancel")
244 xCancel
.executeAction("CLICK", tuple())
247 def test_tdf55712(self
):
248 with self
.ui_test
.load_file(get_url_for_data_file("tdf55712.ods")):
249 calcDoc
= self
.xUITest
.getTopFocusWindow()
250 xGridWindow
= calcDoc
.getChild("grid_window")
252 xGridWindow
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
253 xFloatWindow
= self
.xUITest
.getFloatWindow()
254 xTreeList
= xFloatWindow
.getChild("check_list_box")
255 x1Entry
= xTreeList
.getChild("0")
256 x2Entry
= xTreeList
.getChild("1")
257 x3Entry
= xTreeList
.getChild("2")
258 x4Entry
= xTreeList
.getChild("3")
259 x5Entry
= xTreeList
.getChild("4")
260 x6Entry
= xTreeList
.getChild("5")
261 x7Entry
= xTreeList
.getChild("6")
262 x8Entry
= xTreeList
.getChild("7")
263 x9Entry
= xTreeList
.getChild("8")
265 self
.assertEqual(get_state_as_dict(x1Entry
)["Text"], "(empty)")
266 self
.assertEqual(get_state_as_dict(x2Entry
)["Text"], "0")
267 self
.assertEqual(get_state_as_dict(x3Entry
)["Text"], "0.1")
268 self
.assertEqual(get_state_as_dict(x4Entry
)["Text"], "0.2")
269 self
.assertEqual(get_state_as_dict(x5Entry
)["Text"], "0.3")
270 self
.assertEqual(get_state_as_dict(x6Entry
)["Text"], "0.5")
271 self
.assertEqual(get_state_as_dict(x7Entry
)["Text"], "0.8")
272 self
.assertEqual(get_state_as_dict(x8Entry
)["Text"], "0.9")
273 self
.assertEqual(get_state_as_dict(x9Entry
)["Text"], "1")
274 self
.assertEqual(get_state_as_dict(xTreeList
)["Children"], "9")
276 xCancel
= xFloatWindow
.getChild("cancel")
277 xCancel
.executeAction("CLICK", tuple())
280 def test_tdf152082(self
):
281 with self
.ui_test
.load_file(get_url_for_data_file("tdf152082.ods")):
282 xCalcDoc
= self
.xUITest
.getTopFocusWindow()
283 gridwin
= xCalcDoc
.getChild("grid_window")
285 gridwin
.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": "", "COL": "0", "ROW": "0"}))
286 xFloatWindow
= self
.xUITest
.getFloatWindow()
287 xCheckListMenu
= xFloatWindow
.getChild("FilterDropDown")
288 xTreeList
= xCheckListMenu
.getChild("check_list_box")
289 self
.assertEqual(4, len(xTreeList
.getChildren()))
290 self
.assertEqual('true', get_state_as_dict(xTreeList
.getChild('0'))['IsChecked'])
291 self
.assertEqual('true', get_state_as_dict(xTreeList
.getChild('1'))['IsChecked'])
292 self
.assertEqual('true', get_state_as_dict(xTreeList
.getChild('2'))['IsChecked'])
293 self
.assertEqual('false', get_state_as_dict(xTreeList
.getChild('3'))['IsChecked'])
294 xCancelBtn
= xFloatWindow
.getChild("cancel")
295 xCancelBtn
.executeAction("CLICK", tuple())
297 # vim: set shiftwidth=4 softtabstop=4 expandtab: