Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Side by Side Diff: client/site_tests/desktopui_WindowManagerFocusNewWindows/desktopui_WindowManagerFocusNewWindows.py

Issue 3404010: autotest: Make WM tests wait for initial browser window. (Closed) Base URL: http://git.chromium.org/git/autotest.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | client/site_tests/desktopui_WindowManagerHotkeys/desktopui_WindowManagerHotkeys.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import os, time 5 import os, time
6 from autotest_lib.client.bin import site_ui_test, test 6 from autotest_lib.client.bin import site_login, site_ui_test, test
7 from autotest_lib.client.common_lib import error 7 from autotest_lib.client.common_lib import error
8 8
9 class desktopui_WindowManagerFocusNewWindows(site_ui_test.UITest): 9 class desktopui_WindowManagerFocusNewWindows(site_ui_test.UITest):
10 version = 1 10 version = 1
11 11
12 def __check_active_window(self, id, info): 12 def __check_active_window(self, id, info):
13 """Check that a particular window is active. 13 """Check that a particular window is active.
14 14
15 Args: 15 Args:
16 id: int window ID 16 id: int window ID
17 info: AutoX.WindowInfo object corresponding to 'id' 17 info: AutoX.WindowInfo object corresponding to 'id'
18 18
19 Raises: 19 Raises:
20 error.TestFail: if a condition timed out 20 error.TestFail: if a condition timed out
21 """ 21 """
22 try: 22 try:
23 self.autox.await_condition( 23 self.autox.await_condition(
24 lambda: self.autox.get_active_window_property() == id,
25 desc='Waiting for _NET_ACTIVE_WINDOW to contain 0x%x' % id)
Daniel Erat 2010/09/17 17:31:57 The window manager sets the property before it ass
kmixter1 2010/09/17 20:32:37 Not sure if this reordering is being done to be mo
Daniel Erat 2010/09/17 20:39:21 It's the former. :-)
26 self.autox.await_condition(
24 lambda: info.is_focused, 27 lambda: info.is_focused,
25 desc='Waiting for window 0x%x to be focused' % id) 28 desc='Waiting for window 0x%x to be focused' % id)
26 self.autox.await_condition(
27 lambda: self.autox.get_active_window_property() == id,
28 desc='Waiting for _NET_ACTIVE_WINDOW to contain 0x%x' % id)
29 29
30 # get_geometry() returns a tuple, so we need to construct a tuple to 30 # get_geometry() returns a tuple, so we need to construct a tuple to
31 # compare against it. 31 # compare against it.
32 fullscreen_dimensions = \ 32 fullscreen_dimensions = \
33 tuple([0, 0] + list(self.autox.get_screen_size())) 33 tuple([0, 0] + list(self.autox.get_screen_size()))
34 self.autox.await_condition( 34 self.autox.await_condition(
35 lambda: info.get_geometry() == fullscreen_dimensions, 35 lambda: info.get_geometry() == fullscreen_dimensions,
36 desc='Waiting for window 0x%x to fill the screen' % id) 36 desc='Waiting for window 0x%x to fill the screen' % id)
37 37
38 self.autox.await_condition( 38 self.autox.await_condition(
39 lambda: self.autox.get_top_window_id_at_point(200, 200) == id, 39 lambda: self.autox.get_top_window_id_at_point(200, 200) == id,
40 desc='Waiting for window 0x%x to be on top' % id) 40 desc='Waiting for window 0x%x to be on top' % id)
41 41
42 except self.autox.ConditionTimeoutError as exception: 42 except self.autox.ConditionTimeoutError as exception:
43 raise error.TestFail( 43 raise error.TestFail(
44 'Timed out on condition: %s' % exception.__str__()) 44 'Timed out on condition: %s' % exception.__str__())
45 45
46 def run_once(self): 46 def run_once(self):
47 # Make sure that we don't have the initial browser window popping up in
48 # the middle of the test.
49 site_login.wait_for_initial_chrome_window()
50
47 self.autox = self.get_autox() 51 self.autox = self.get_autox()
48 52
49 # Create a window and check that we switch to it. 53 # Create a window and check that we switch to it.
50 win = self.autox.create_and_map_window( 54 win = self.autox.create_and_map_window(
51 width=200, height=200, title='test') 55 width=200, height=200, title='test')
52 info = self.autox.get_window_info(win.id) 56 info = self.autox.get_window_info(win.id)
53 self.__check_active_window(win.id, info) 57 self.__check_active_window(win.id, info)
54 58
55 # Create a second window. 59 # Create a second window.
56 win2 = self.autox.create_and_map_window( 60 win2 = self.autox.create_and_map_window(
57 width=200, height=200, title='test 2') 61 width=200, height=200, title='test 2')
58 info2 = self.autox.get_window_info(win2.id) 62 info2 = self.autox.get_window_info(win2.id)
59 self.__check_active_window(win2.id, info2) 63 self.__check_active_window(win2.id, info2)
60 64
61 # Cycle backwards to the first window.
62 self.autox.send_hotkey('Alt-Shift-Tab')
63 self.__check_active_window(win.id, info)
64
65 # Cycle forwards to the second window.
66 self.autox.send_hotkey('Alt-Tab')
67 self.__check_active_window(win2.id, info2)
68
69 # Now destroy the second window and check that the WM goes back 65 # Now destroy the second window and check that the WM goes back
70 # to the first window. 66 # to the first window.
71 win2.destroy() 67 win2.destroy()
72 self.__check_active_window(win.id, info) 68 self.__check_active_window(win.id, info)
OLDNEW
« no previous file with comments | « no previous file | client/site_tests/desktopui_WindowManagerHotkeys/desktopui_WindowManagerHotkeys.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698