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

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

Issue 3226005: Refactory UI to grab shortcut keys, and tests to not look for triggers. (Closed) Base URL: http://git.chromium.org/git/autotest.git
Patch Set: Created 10 years, 4 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
OLDNEW
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 # 2 #
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 7
8 # DESCRIPTION : 8 # DESCRIPTION :
9 # 9 #
10 # Intended for use during manufacturing to validate that the touchpad 10 # Intended for use during manufacturing to validate that the touchpad
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 _X_OF_OFFSET = 486 + _F_RADIUS + 2 48 _X_OF_OFFSET = 486 + _F_RADIUS + 2
49 _Y_OF_OFFSET = 54 + _F_RADIUS + 2 49 _Y_OF_OFFSET = 54 + _F_RADIUS + 2
50 50
51 _X_TFL_OFFSET = 459 + _F_RADIUS + 2 51 _X_TFL_OFFSET = 459 + _F_RADIUS + 2
52 _X_TFR_OFFSET = 513 + _F_RADIUS + 2 52 _X_TFR_OFFSET = 513 + _F_RADIUS + 2
53 _Y_TF_OFFSET = 117 + _F_RADIUS + 2 53 _Y_TF_OFFSET = 117 + _F_RADIUS + 2
54 54
55 55
56 class TouchpadTest: 56 class TouchpadTest:
57 57
58 def __init__(self, tp_image, drawing_area, ft_state): 58 def __init__(self, tp_image, drawing_area):
59 self._tp_image = tp_image 59 self._tp_image = tp_image
60 self._drawing_area = drawing_area 60 self._drawing_area = drawing_area
61 self._ft_state = ft_state
62 self._motion_grid = {} 61 self._motion_grid = {}
63 for x in range(_X_SEGMENTS): 62 for x in range(_X_SEGMENTS):
64 for y in range(_Y_SEGMENTS): 63 for y in range(_Y_SEGMENTS):
65 self._motion_grid['%d,%d' % (x, y)] = False 64 self._motion_grid['%d,%d' % (x, y)] = False
66 self._scroll_array = {} 65 self._scroll_array = {}
67 for y in range(_Y_SEGMENTS): 66 for y in range(_Y_SEGMENTS):
68 self._scroll_array[y] = False 67 self._scroll_array[y] = False
69 self._l_click = False 68 self._l_click = False
70 self._r_click = False 69 self._r_click = False
71 self._of_z_rad = 0 70 self._of_z_rad = 0
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 if self._l_click and not self._r_click: 184 if self._l_click and not self._r_click:
186 context.set_source_rgba(*ful.RGBA_YELLOW_OVERLAY) 185 context.set_source_rgba(*ful.RGBA_YELLOW_OVERLAY)
187 186
188 context.arc(_X_TFL_OFFSET, _Y_TF_OFFSET, self._tf_z_rad, 0.0, 2.0 * pi) 187 context.arc(_X_TFL_OFFSET, _Y_TF_OFFSET, self._tf_z_rad, 0.0, 2.0 * pi)
189 context.fill() 188 context.fill()
190 context.arc(_X_TFR_OFFSET, _Y_TF_OFFSET, self._tf_z_rad, 0.0, 2.0 * pi) 189 context.arc(_X_TFR_OFFSET, _Y_TF_OFFSET, self._tf_z_rad, 0.0, 2.0 * pi)
191 context.fill() 190 context.fill()
192 191
193 return True 192 return True
194 193
195 def key_press_event(self, widget, event):
196 self._ft_state.exit_on_trigger(event)
197 return True
198
199 def button_press_event(self, widget, event): 194 def button_press_event(self, widget, event):
200 factory.log('button_press_event %d,%d' % (event.x, event.y)) 195 factory.log('button_press_event %d,%d' % (event.x, event.y))
201 return True 196 return True
202 197
203 def button_release_event(self, widget, event): 198 def button_release_event(self, widget, event):
204 factory.log('button_release_event %d,%d' % (event.x, event.y)) 199 factory.log('button_release_event %d,%d' % (event.x, event.y))
205 return True 200 return True
206 201
207 def motion_event(self, widget, event): 202 def motion_event(self, widget, event):
208 factory.log('motion_event %d,%d' % (event.x, event.y)) 203 factory.log('motion_event %d,%d' % (event.x, event.y))
209 return True 204 return True
210 205
211 def register_callbacks(self, window):
212 window.connect('key-press-event', self.key_press_event)
213 window.add_events(gdk.KEY_PRESS_MASK)
214
215 206
216 class SynClient: 207 class SynClient:
217 208
218 def __init__(self, test): 209 def __init__(self, test):
219 self._test = test 210 self._test = test
220 proc = subprocess.Popen(_SYNCLIENT_SETTINGS_CMDLINE.split(), 211 proc = subprocess.Popen(_SYNCLIENT_SETTINGS_CMDLINE.split(),
221 stdout=subprocess.PIPE) 212 stdout=subprocess.PIPE)
222 settings_data = proc.stdout.readlines() 213 settings_data = proc.stdout.readlines()
223 settings = {} 214 settings = {}
224 for line in settings_data: 215 for line in settings_data:
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 def quit(self): 247 def quit(self):
257 factory.log('killing SynClient ...') 248 factory.log('killing SynClient ...')
258 self._proc.kill() 249 self._proc.kill()
259 factory.log('dead') 250 factory.log('dead')
260 251
261 252
262 class factory_Touchpad(test.test): 253 class factory_Touchpad(test.test):
263 version = 1 254 version = 1
264 preserve_srcdir = True 255 preserve_srcdir = True
265 256
266 def run_once(self, 257 def run_once(self):
267 test_widget_size=None,
268 trigger_set=None):
269 258
270 factory.log('%s run_once' % self.__class__) 259 factory.log('%s run_once' % self.__class__)
271 260
272 ft_state = ful.State(trigger_set)
273
274 os.chdir(self.srcdir) 261 os.chdir(self.srcdir)
275 tp_image = cairo.ImageSurface.create_from_png('touchpad.png') 262 tp_image = cairo.ImageSurface.create_from_png('touchpad.png')
276 image_size = (tp_image.get_width(), tp_image.get_height()) 263 image_size = (tp_image.get_width(), tp_image.get_height())
277 264
278 drawing_area = gtk.DrawingArea() 265 drawing_area = gtk.DrawingArea()
279 266
280 test = TouchpadTest(tp_image, drawing_area, ft_state) 267 test = TouchpadTest(tp_image, drawing_area)
281 268
282 drawing_area.set_size_request(*image_size) 269 drawing_area.set_size_request(*image_size)
283 drawing_area.connect('expose_event', test.expose_event) 270 drawing_area.connect('expose_event', test.expose_event)
284 drawing_area.connect('button-press-event', test.button_press_event) 271 drawing_area.connect('button-press-event', test.button_press_event)
285 drawing_area.connect('button-release-event', test.button_release_event) 272 drawing_area.connect('button-release-event', test.button_release_event)
286 drawing_area.connect('motion-notify-event', test.motion_event) 273 drawing_area.connect('motion-notify-event', test.motion_event)
287 drawing_area.add_events(gdk.EXPOSURE_MASK | 274 drawing_area.add_events(gdk.EXPOSURE_MASK |
288 gdk.BUTTON_PRESS_MASK | 275 gdk.BUTTON_PRESS_MASK |
289 gdk.BUTTON_RELEASE_MASK | 276 gdk.BUTTON_RELEASE_MASK |
290 gdk.POINTER_MOTION_MASK) 277 gdk.POINTER_MOTION_MASK)
291 278
292 countdown_widget, countdown_label = ful.make_countdown_widget() 279 countdown_widget, countdown_label = ful.make_countdown_widget()
293 gobject.timeout_add(1000, test.timer_event, countdown_label) 280 gobject.timeout_add(1000, test.timer_event, countdown_label)
294 281
295 test_widget = gtk.VBox() 282 test_widget = gtk.VBox()
296 test_widget.set_spacing(20) 283 test_widget.set_spacing(20)
297 test_widget.pack_start(drawing_area, False, False) 284 test_widget.pack_start(drawing_area, False, False)
298 test_widget.pack_start(countdown_widget, False, False) 285 test_widget.pack_start(countdown_widget, False, False)
299 286
300 synclient = SynClient(test) 287 synclient = SynClient(test)
301 288
302 ft_state.run_test_widget( 289 ful.run_test_widget(self.job, test_widget,
303 test_widget=test_widget,
304 test_widget_size=test_widget_size,
305 window_registration_callback=test.register_callbacks,
306 cleanup_callback=synclient.quit) 290 cleanup_callback=synclient.quit)
307 291
308 missing = test.calc_missing_string() 292 missing = test.calc_missing_string()
309 if missing: 293 if missing:
310 raise error.TestFail(missing) 294 raise error.TestFail(missing)
311 295
312 factory.log('%s run_once finished' % self.__class__) 296 factory.log('%s run_once finished' % self.__class__)
OLDNEW
« no previous file with comments | « client/site_tests/factory_ScriptWrapper/factory_ScriptWrapper.py ('k') | client/site_tests/suite_Factory/control » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698