OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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)) |
OLD | NEW |