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
14 class movechapterupdown(UITestCase
):
16 def test_movechapterupdown(self
):
18 with self
.ui_test
.load_file(get_url_for_data_file('MoveChapterUpDown.odt')):
19 xWriterDoc
= self
.xUITest
.getTopFocusWindow()
20 xWriterEdit
= xWriterDoc
.getChild('writer_edit')
22 self
.xUITest
.executeCommand('.uno:Sidebar')
23 xWriterEdit
.executeAction('SIDEBAR', mkPropertyValues({'PANEL': 'SwNavigatorPanel'}))
25 # wait until the navigator panel is available
26 xNavigatorPanel
= self
.ui_test
.wait_until_child_is_available('NavigatorPanel')
28 # Given the document chapter structure:
33 # A heading of level 3
40 xNavigatorPanelContentTree
= xNavigatorPanel
.getChild("contenttree")
42 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
43 xNavigatorPanelContentTreeHeadings
.executeAction("EXPAND", tuple())
46 # test a level 1 chapter move up then move down
49 # Double click on the "2. Two (H1)" entry to select and set focus
50 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
51 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
52 xHeadingsChild1
.executeAction("DOUBLECLICK", tuple())
54 self
.ui_test
.wait_until_property_is_updated(xNavigatorPanelContentTree
, "SelectEntryText", "2. Two (H1)")
56 # Click on the 'Move chapter up' button in the Navigator tool box
57 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
58 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
59 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "4"}))
61 # Expected chapter order:
63 # A heading of level 3
73 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
75 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
76 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "2. Two (H1)")
77 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
78 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "A heading of level 3")
79 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
80 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "2.1. Two_A (H2)")
81 xHeadingsChild0Child2
= xHeadingsChild0
.getChild('2')
82 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child2
)["Text"], "2.1. Two_B (H2)")
84 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
85 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "1. One (H1)")
86 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
87 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "1.1. One_A (H2)")
88 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
89 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "1.2. One_B (H2)")
91 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
92 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
93 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
94 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
95 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
96 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
98 # Click on the 'Move chapter down' button in the Navigator tool box
99 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
100 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
101 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "5"}))
103 # Expected chapter order is the original order
104 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
106 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
107 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
108 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
109 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
110 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
111 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
113 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
114 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
115 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
116 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "A heading of level 3")
117 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
118 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_A (H2)")
119 xHeadingsChild1Child2
= xHeadingsChild1
.getChild('2')
120 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child2
)["Text"], "2.1. Two_B (H2)")
122 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
123 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
124 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
125 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
126 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
127 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
130 # test a level 1 chapter move down then move up
133 # Double click on the "2. Two (H1)" entry to select and set focus
134 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
135 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
136 xHeadingsChild1
.executeAction("DOUBLECLICK", tuple())
138 self
.ui_test
.wait_until_property_is_updated(xNavigatorPanelContentTree
, "SelectEntryText", "2. Two (H1)")
140 # Click on the 'Move chapter down' button in the Navigator tool box
141 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
142 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
143 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "5"}))
145 # Expected chapter order:
153 # A heading of level 3
157 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
159 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
160 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
161 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
162 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
163 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
164 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
166 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
167 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "3. Three (H1)")
168 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
169 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "3.1. Three_A (H2)")
170 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
171 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "3.2. Three_B (H2)")
173 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
174 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "2. Two (H1)")
175 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
176 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "A heading of level 3")
177 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
178 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "2.1. Two_A (H2)")
179 xHeadingsChild2Child2
= xHeadingsChild2
.getChild('2')
180 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child2
)["Text"], "2.1. Two_B (H2)")
182 # Click on the 'Move chapter up' button in the Navigator tool box
183 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
184 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
185 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "4"}))
187 # Expected chapter order is the original order
188 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
190 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
191 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
192 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
193 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
194 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
195 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
197 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
198 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
199 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
200 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "A heading of level 3")
201 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
202 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_A (H2)")
203 xHeadingsChild1Child2
= xHeadingsChild1
.getChild('2')
204 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child2
)["Text"], "2.1. Two_B (H2)")
206 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
207 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
208 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
209 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
210 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
211 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
214 # test a sub chapter move chapter up then move down
217 # Double click on the "2.1. Two_A (H2)" entry to select and set focus
218 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
219 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
220 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_A (H2)")
221 xHeadingsChild1Child1
.executeAction("DOUBLECLICK", tuple())
223 self
.ui_test
.wait_until_property_is_updated(xNavigatorPanelContentTree
, "SelectEntryText", "2.1. Two_A (H2)")
225 # Click on the 'Move chapter up' button in the Navigator tool box
226 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
227 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
228 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "4"}))
230 # Expected chapter order:
236 # A heading of level 3
242 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
244 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
245 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
246 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
247 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
248 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
249 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
251 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
252 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
253 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
254 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "2.1. Two_A (H2)")
255 xHeadingsChild1Child0Child0
= xHeadingsChild1Child0
.getChild('0')
256 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0Child0
)["Text"], "A heading of level 3")
257 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
258 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_B (H2)")
260 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
261 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
262 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
263 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
264 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
265 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
267 self
.ui_test
.wait_until_property_is_updated(xNavigatorPanelContentTree
, "SelectEntryText", "2.1. Two_A (H2)")
269 # Click on the 'Move chapter down' button in the Navigator tool box
270 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
271 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
272 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "5"}))
274 # Expected chapter order:
281 # A heading of level 3
286 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
288 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
289 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
290 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
291 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
292 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
293 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
295 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
296 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
297 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
298 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "2.1. Two_B (H2)")
299 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
300 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_A (H2)")
301 xHeadingsChild1Child1Child0
= xHeadingsChild1Child1
.getChild('0')
302 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1Child0
)["Text"], "A heading of level 3")
304 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
305 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
306 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
307 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
308 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
309 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
311 # Move "A heading of level 3" to its original position
313 # Double click on the "A heading of level 3" entry to select and set focus
314 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
315 xHeadingsChild1Child1Child0
= xHeadingsChild1Child1
.getChild('0')
316 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1Child0
)["Text"], "A heading of level 3")
317 xHeadingsChild1Child1Child0
.executeAction("DOUBLECLICK", tuple())
319 self
.ui_test
.wait_until_property_is_updated(xNavigatorPanelContentTree
, "SelectEntryText", "A heading of level 3")
321 # Click on the 'Move chapter up' button in the Navigator tool box
322 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
323 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
324 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "4"}))
326 # Click on the 'Move chapter up' button in the Navigator tool box
327 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
328 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
329 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "4"}))
331 # Expected chapter order:
336 # A heading of level 3
343 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
345 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
346 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
347 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
348 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
349 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
350 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
352 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
353 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
354 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
355 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "A heading of level 3")
356 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
357 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_B (H2)")
358 xHeadingsChild1Child2
= xHeadingsChild1
.getChild('2')
359 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child2
)["Text"], "2.1. Two_A (H2)")
361 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
362 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
363 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
364 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
365 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
366 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
368 # Move "2.1. Two_B (H2)" to its original position
370 # Double click on the "2.1. Two_B (H2)" entry to select and set focus
371 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
372 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
373 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_B (H2)")
374 xHeadingsChild1Child1
.executeAction("DOUBLECLICK", tuple())
376 self
.ui_test
.wait_until_property_is_updated(xNavigatorPanelContentTree
, "SelectEntryText", "2.1. Two_B (H2)")
378 # Click on the 'Move chapter down' button in the Navigator tool box
379 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
380 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
381 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "5"}))
383 # Expected chapter order is the original order
384 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
386 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
387 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
388 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
389 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
390 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
391 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
393 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
394 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
395 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
396 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "A heading of level 3")
397 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
398 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_A (H2)")
399 xHeadingsChild1Child2
= xHeadingsChild1
.getChild('2')
400 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child2
)["Text"], "2.1. Two_B (H2)")
402 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
403 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
404 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
405 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
406 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
407 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
410 # test moving a sub chapter out of and then back into its parent
413 # Double click on the "1.1. One_A (H2)" entry to select and set focus
414 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
415 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
416 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
417 xHeadingsChild0Child0
.executeAction("DOUBLECLICK", tuple())
419 self
.ui_test
.wait_until_property_is_updated(xNavigatorPanelContentTree
, "SelectEntryText", "1.1. One_A (H2)")
421 # Click on the 'Move chapter up' button in the Navigator tool box
422 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
423 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
424 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "4"}))
426 # Expected chapter order:
431 # A heading of level 3
438 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
440 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
441 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1.1. One_A (H2)")
443 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
444 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "1. One (H1)")
445 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
446 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "1.2. One_B (H2)")
448 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
449 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "2. Two (H1)")
450 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
451 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "A heading of level 3")
452 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
453 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "2.1. Two_A (H2)")
454 xHeadingsChild2Child2
= xHeadingsChild2
.getChild('2')
455 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child2
)["Text"], "2.1. Two_B (H2)")
457 xHeadingsChild3
= xNavigatorPanelContentTreeHeadings
.getChild('3')
458 self
.assertEqual(get_state_as_dict(xHeadingsChild3
)["Text"], "3. Three (H1)")
459 xHeadingsChild3Child0
= xHeadingsChild3
.getChild('0')
460 self
.assertEqual(get_state_as_dict(xHeadingsChild3Child0
)["Text"], "3.1. Three_A (H2)")
461 xHeadingsChild3Child1
= xHeadingsChild3
.getChild('1')
462 self
.assertEqual(get_state_as_dict(xHeadingsChild3Child1
)["Text"], "3.2. Three_B (H2)")
464 # Click on the 'Move chapter down' button in the Navigator tool box
465 xNavigatorPanel
= xWriterEdit
.getChild("NavigatorPanel")
466 xToolBarContent6
= xNavigatorPanel
.getChild("content6")
467 xToolBarContent6
.executeAction("CLICK", mkPropertyValues({"POS": "5"}))
469 # Expected chapter order is the original order
470 xNavigatorPanelContentTreeHeadings
= xNavigatorPanelContentTree
.getChild('0')
472 xHeadingsChild0
= xNavigatorPanelContentTreeHeadings
.getChild('0')
473 self
.assertEqual(get_state_as_dict(xHeadingsChild0
)["Text"], "1. One (H1)")
474 xHeadingsChild0Child0
= xHeadingsChild0
.getChild('0')
475 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child0
)["Text"], "1.1. One_A (H2)")
476 xHeadingsChild0Child1
= xHeadingsChild0
.getChild('1')
477 self
.assertEqual(get_state_as_dict(xHeadingsChild0Child1
)["Text"], "1.2. One_B (H2)")
479 xHeadingsChild1
= xNavigatorPanelContentTreeHeadings
.getChild('1')
480 self
.assertEqual(get_state_as_dict(xHeadingsChild1
)["Text"], "2. Two (H1)")
481 xHeadingsChild1Child0
= xHeadingsChild1
.getChild('0')
482 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child0
)["Text"], "A heading of level 3")
483 xHeadingsChild1Child1
= xHeadingsChild1
.getChild('1')
484 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child1
)["Text"], "2.1. Two_A (H2)")
485 xHeadingsChild1Child2
= xHeadingsChild1
.getChild('2')
486 self
.assertEqual(get_state_as_dict(xHeadingsChild1Child2
)["Text"], "2.1. Two_B (H2)")
488 xHeadingsChild2
= xNavigatorPanelContentTreeHeadings
.getChild('2')
489 self
.assertEqual(get_state_as_dict(xHeadingsChild2
)["Text"], "3. Three (H1)")
490 xHeadingsChild2Child0
= xHeadingsChild2
.getChild('0')
491 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child0
)["Text"], "3.1. Three_A (H2)")
492 xHeadingsChild2Child1
= xHeadingsChild2
.getChild('1')
493 self
.assertEqual(get_state_as_dict(xHeadingsChild2Child1
)["Text"], "3.2. Three_B (H2)")
495 self
.xUITest
.executeCommand('.uno:Sidebar')
497 # vim: set shiftwidth=4 softtabstop=4 expandtab: