Chromium Code Reviews| 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 |