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

Side by Side Diff: chrome/test/chromedriver/run_py_tests.py

Issue 22263003: [chromedriver] Implement touch down, up, and move commands. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: coordinate parameters are now absolute Created 7 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """End to end tests for ChromeDriver.""" 6 """End to end tests for ChromeDriver."""
7 7
8 import base64 8 import base64
9 import optparse 9 import optparse
10 import os 10 import os
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 60
61 _DESKTOP_NEGATIVE_FILTER = {} 61 _DESKTOP_NEGATIVE_FILTER = {}
62 _DESKTOP_NEGATIVE_FILTER['HEAD'] = ( 62 _DESKTOP_NEGATIVE_FILTER['HEAD'] = (
63 _DESKTOP_OS_SPECIFIC_FILTER + [ 63 _DESKTOP_OS_SPECIFIC_FILTER + [
64 # https://code.google.com/p/chromedriver/issues/detail?id=213 64 # https://code.google.com/p/chromedriver/issues/detail?id=213
65 'ChromeDriverTest.testClickElementInSubFrame', 65 'ChromeDriverTest.testClickElementInSubFrame',
66 # This test is flaky since it uses setTimeout. 66 # This test is flaky since it uses setTimeout.
67 # Re-enable once crbug.com/177511 is fixed and we can remove setTimeout. 67 # Re-enable once crbug.com/177511 is fixed and we can remove setTimeout.
68 'ChromeDriverTest.testAlert', 68 'ChromeDriverTest.testAlert',
69 # Desktop doesn't support TAP. 69 # Desktop doesn't support touch (without --touch-events).
frankf 2013/08/14 01:09:10 Do we want to enable this flag?
craigdh 2013/08/14 22:01:57 That's a better question for ken/chris.
70 'ChromeDriverTest.testSingleTapElement', 70 'ChromeDriverTest.testSingleTapElement',
71 'ChromeDriverTest.testTouchDownUpElement',
72 'ChromeDriverTest.testTouchMovedElement',
71 ] 73 ]
72 ) 74 )
73 75
74 76
75 def _GetDesktopNegativeFilter(version_name): 77 def _GetDesktopNegativeFilter(version_name):
76 if version_name in _DESKTOP_NEGATIVE_FILTER: 78 if version_name in _DESKTOP_NEGATIVE_FILTER:
77 return _DESKTOP_NEGATIVE_FILTER[version_name] 79 return _DESKTOP_NEGATIVE_FILTER[version_name]
78 return _DESKTOP_NEGATIVE_FILTER['HEAD'] 80 return _DESKTOP_NEGATIVE_FILTER['HEAD']
79 81
80 82
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 '});' 348 '});'
347 'return div;') 349 'return div;')
348 div.HoverOver() 350 div.HoverOver()
349 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br'))) 351 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br')))
350 352
351 def testClickElement(self): 353 def testClickElement(self):
352 div = self._driver.ExecuteScript( 354 div = self._driver.ExecuteScript(
353 'document.body.innerHTML = "<div>old</div>";' 355 'document.body.innerHTML = "<div>old</div>";'
354 'var div = document.getElementsByTagName("div")[0];' 356 'var div = document.getElementsByTagName("div")[0];'
355 'div.addEventListener("click", function() {' 357 'div.addEventListener("click", function() {'
356 ' var div = document.getElementsByTagName("div")[0];'
357 ' div.innerHTML="new<br>";' 358 ' div.innerHTML="new<br>";'
358 '});' 359 '});'
359 'return div;') 360 'return div;')
360 div.Click() 361 div.Click()
361 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br'))) 362 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br')))
362 363
363 def testSingleTapElement(self): 364 def testSingleTapElement(self):
364 div = self._driver.ExecuteScript( 365 div = self._driver.ExecuteScript(
365 'document.body.innerHTML = "<div>old</div>";' 366 'document.body.innerHTML = "<div>old</div>";'
366 'var div = document.getElementsByTagName("div")[0];' 367 'var div = document.getElementsByTagName("div")[0];'
367 'div.addEventListener("click", function() {' 368 'div.addEventListener("touchend", function() {'
368 ' var div = document.getElementsByTagName("div")[0];'
369 ' div.innerHTML="new<br>";' 369 ' div.innerHTML="new<br>";'
370 '});' 370 '});'
371 'return div;') 371 'return div;')
372 div.SingleTap() 372 div.SingleTap()
373 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br'))) 373 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br')))
374 374
375 def testTouchDownUpElement(self):
376 div = self._driver.ExecuteScript(
377 'document.body.innerHTML = "<div>old</div>";'
378 'var div = document.getElementsByTagName("div")[0];'
379 'div.addEventListener("touchend", function() {'
380 ' div.innerHTML="new<br>";'
381 '});'
382 'return div;')
383 loc = div.GetLocation()
384 self._driver.TouchDown(loc['x'], loc['y'])
385 self._driver.TouchUp(loc['x'], loc['y'])
386 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br')))
387
388 def testTouchMovedElement(self):
389 div = self._driver.ExecuteScript(
390 'document.body.innerHTML = "<div>old</div>";'
391 'var div = document.getElementsByTagName("div")[0];'
392 'div.addEventListener("touchmove", function() {'
393 ' div.innerHTML="new<br>";'
394 '});'
395 'return div;')
396 loc = div.GetLocation()
397 self._driver.TouchDown(loc['x'], loc['y'])
398 self._driver.TouchMove(loc['x'] + 1, loc['y'] + 1)
399 self._driver.TouchUp(loc['x'] + 1, loc['y'] + 1)
400 self.assertEquals(1, len(self._driver.FindElements('tag name', 'br')))
401
375 def testClickElementInSubFrame(self): 402 def testClickElementInSubFrame(self):
376 self._driver.Load(self.GetHttpUrlForFile('/chromedriver/frame_test.html')) 403 self._driver.Load(self.GetHttpUrlForFile('/chromedriver/frame_test.html'))
377 frame = self._driver.FindElement('tag name', 'iframe') 404 frame = self._driver.FindElement('tag name', 'iframe')
378 self._driver.SwitchToFrame(frame) 405 self._driver.SwitchToFrame(frame)
379 # Test clicking element in the sub frame. 406 # Test clicking element in the sub frame.
380 self.testClickElement() 407 self.testClickElement()
381 408
382 def testClearElement(self): 409 def testClearElement(self):
383 text = self._driver.ExecuteScript( 410 text = self._driver.ExecuteScript(
384 'document.body.innerHTML = \'<input type="text" value="abc">\';' 411 'document.body.innerHTML = \'<input type="text" value="abc">\';'
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 negative_filter = _GetDesktopNegativeFilter(options.chrome_version) 768 negative_filter = _GetDesktopNegativeFilter(options.chrome_version)
742 options.filter = '*-' + ':__main__.'.join([''] + negative_filter) 769 options.filter = '*-' + ':__main__.'.join([''] + negative_filter)
743 770
744 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule( 771 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule(
745 sys.modules[__name__]) 772 sys.modules[__name__])
746 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter) 773 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter)
747 ChromeDriverTest.GlobalSetUp() 774 ChromeDriverTest.GlobalSetUp()
748 result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(tests) 775 result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(tests)
749 ChromeDriverTest.GlobalTearDown() 776 ChromeDriverTest.GlobalTearDown()
750 sys.exit(len(result.failures) + len(result.errors)) 777 sys.exit(len(result.failures) + len(result.errors))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698