OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 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 json | 9 import json |
10 import math | 10 import math |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 'ChromeExtensionsCapabilityTest.testWaitsForExtensionToLoad', | 60 'ChromeExtensionsCapabilityTest.testWaitsForExtensionToLoad', |
61 # TODO: re-enable tests when DevTools supports ScreenOrientation commands. | 61 # TODO: re-enable tests when DevTools supports ScreenOrientation commands. |
62 'ChromeDriverAndroidTest.testScreenOrientation', | 62 'ChromeDriverAndroidTest.testScreenOrientation', |
63 'ChromeDriverAndroidTest.testMultipleScreenOrientationChanges', | 63 'ChromeDriverAndroidTest.testMultipleScreenOrientationChanges', |
64 'ChromeDriverAndroidTest.testDeleteScreenOrientationManual', | 64 'ChromeDriverAndroidTest.testDeleteScreenOrientationManual', |
65 'ChromeDriverAndroidTest.testScreenOrientationAcrossMultipleTabs', | 65 'ChromeDriverAndroidTest.testScreenOrientationAcrossMultipleTabs', |
66 # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1503 | 66 # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1503 |
67 'ChromeDriverTest.testShadowDomHover', | 67 'ChromeDriverTest.testShadowDomHover', |
68 'ChromeDriverTest.testMouseMoveTo', | 68 'ChromeDriverTest.testMouseMoveTo', |
69 'ChromeDriverTest.testHoverOverElement', | 69 'ChromeDriverTest.testHoverOverElement', |
| 70 # https://bugs.chromium.org/p/chromedriver/issues/detail?id=833 |
| 71 'ChromeDriverTest.testAlertOnNewWindow', |
70 ] | 72 ] |
71 | 73 |
72 _VERSION_SPECIFIC_FILTER = {} | 74 _VERSION_SPECIFIC_FILTER = {} |
73 _VERSION_SPECIFIC_FILTER['HEAD'] = [ | 75 _VERSION_SPECIFIC_FILTER['HEAD'] = [ |
74 # https://bugs.chromium.org/p/chromedriver/issues/detail?id=992 | 76 # https://bugs.chromium.org/p/chromedriver/issues/detail?id=992 |
75 'ChromeDownloadDirTest.testDownloadDirectoryOverridesExistingPreferences', | 77 'ChromeDownloadDirTest.testDownloadDirectoryOverridesExistingPreferences', |
76 ] | 78 ] |
77 _VERSION_SPECIFIC_FILTER['58'] = [ | 79 _VERSION_SPECIFIC_FILTER['58'] = [ |
78 # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1673 | 80 # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1673 |
79 'ChromeDriverPageLoadTimeoutTest.testPageLoadTimeoutCrossDomain', | 81 'ChromeDriverPageLoadTimeoutTest.testPageLoadTimeoutCrossDomain', |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 # WebView on KitKat. | 206 # WebView on KitKat. |
205 'ChromeDriverTest.testGetUrlOnInvalidUrl', | 207 'ChromeDriverTest.testGetUrlOnInvalidUrl', |
206 # The WebView shell that we test against (on KitKat) does not perform | 208 # The WebView shell that we test against (on KitKat) does not perform |
207 # cross-process navigations. | 209 # cross-process navigations. |
208 # TODO(samuong): reenable when it does. | 210 # TODO(samuong): reenable when it does. |
209 'ChromeDriverPageLoadTimeoutTest.testPageLoadTimeoutCrossDomain', | 211 'ChromeDriverPageLoadTimeoutTest.testPageLoadTimeoutCrossDomain', |
210 'ChromeDriverPageLoadTimeoutTest.' | 212 'ChromeDriverPageLoadTimeoutTest.' |
211 'testHistoryNavigationWithPageLoadTimeout', | 213 'testHistoryNavigationWithPageLoadTimeout', |
212 # Webview shell doesn't support Alerts. | 214 # Webview shell doesn't support Alerts. |
213 'ChromeDriverTest.testAlert', | 215 'ChromeDriverTest.testAlert', |
| 216 'ChromeDriverTest.testAlertOnNewWindow', |
214 'ChromeDesiredCapabilityTest.testUnexpectedAlertBehaviour', | 217 'ChromeDesiredCapabilityTest.testUnexpectedAlertBehaviour', |
215 'ChromeDriverTest.testAlertHandlingOnPageUnload', | 218 'ChromeDriverTest.testAlertHandlingOnPageUnload', |
216 ] | 219 ] |
217 ) | 220 ) |
218 | 221 |
219 | 222 |
220 class ChromeDriverBaseTest(unittest.TestCase): | 223 class ChromeDriverBaseTest(unittest.TestCase): |
221 """Base class for testing chromedriver functionalities.""" | 224 """Base class for testing chromedriver functionalities.""" |
222 | 225 |
223 def __init__(self, *args, **kwargs): | 226 def __init__(self, *args, **kwargs): |
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 def testAlert(self): | 783 def testAlert(self): |
781 self.assertFalse(self._driver.IsAlertOpen()) | 784 self.assertFalse(self._driver.IsAlertOpen()) |
782 self._driver.ExecuteScript('window.confirmed = confirm(\'HI\');') | 785 self._driver.ExecuteScript('window.confirmed = confirm(\'HI\');') |
783 self.assertTrue(self._driver.IsAlertOpen()) | 786 self.assertTrue(self._driver.IsAlertOpen()) |
784 self.assertEquals('HI', self._driver.GetAlertMessage()) | 787 self.assertEquals('HI', self._driver.GetAlertMessage()) |
785 self._driver.HandleAlert(False) | 788 self._driver.HandleAlert(False) |
786 self.assertFalse(self._driver.IsAlertOpen()) | 789 self.assertFalse(self._driver.IsAlertOpen()) |
787 self.assertEquals(False, | 790 self.assertEquals(False, |
788 self._driver.ExecuteScript('return window.confirmed')) | 791 self._driver.ExecuteScript('return window.confirmed')) |
789 | 792 |
| 793 def testAlertOnNewWindow(self): |
| 794 self._driver.Load(self.GetHttpUrlForFile('/chromedriver/empty.html')) |
| 795 old_windows = self._driver.GetWindowHandles() |
| 796 self._driver.ExecuteScript("window.open('%s')" % |
| 797 self.GetHttpUrlForFile('/chromedriver/alert_onload.html')) |
| 798 new_window = self.WaitForNewWindow(self._driver, old_windows) |
| 799 self.assertNotEqual(None, new_window) |
| 800 self._driver.SwitchToWindow(new_window) |
| 801 self.assertTrue(self._driver.IsAlertOpen()) |
| 802 self._driver.HandleAlert(False) |
| 803 self.assertFalse(self._driver.IsAlertOpen()) |
| 804 |
790 def testShouldHandleNewWindowLoadingProperly(self): | 805 def testShouldHandleNewWindowLoadingProperly(self): |
791 """Tests that ChromeDriver determines loading correctly for new windows.""" | 806 """Tests that ChromeDriver determines loading correctly for new windows.""" |
792 self._http_server.SetDataForPath( | 807 self._http_server.SetDataForPath( |
793 '/newwindow', | 808 '/newwindow', |
794 """ | 809 """ |
795 <html> | 810 <html> |
796 <body> | 811 <body> |
797 <a href='%s' target='_blank'>new window/tab</a> | 812 <a href='%s' target='_blank'>new window/tab</a> |
798 </body> | 813 </body> |
799 </html>""" % self._sync_server.GetUrl()) | 814 </html>""" % self._sync_server.GetUrl()) |
(...skipping 1618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2418 | 2433 |
2419 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule( | 2434 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule( |
2420 sys.modules[__name__]) | 2435 sys.modules[__name__]) |
2421 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter) | 2436 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter) |
2422 ChromeDriverTest.GlobalSetUp() | 2437 ChromeDriverTest.GlobalSetUp() |
2423 MobileEmulationCapabilityTest.GlobalSetUp() | 2438 MobileEmulationCapabilityTest.GlobalSetUp() |
2424 result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(tests) | 2439 result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(tests) |
2425 ChromeDriverTest.GlobalTearDown() | 2440 ChromeDriverTest.GlobalTearDown() |
2426 MobileEmulationCapabilityTest.GlobalTearDown() | 2441 MobileEmulationCapabilityTest.GlobalTearDown() |
2427 sys.exit(len(result.failures) + len(result.errors)) | 2442 sys.exit(len(result.failures) + len(result.errors)) |
OLD | NEW |