OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 import os |
4 import unittest | 5 import unittest |
5 | 6 |
6 from telemetry import browser_finder | 7 from telemetry import browser_finder |
| 8 from telemetry import browser_options |
| 9 from telemetry import extension_page |
7 from telemetry import options_for_unittests | 10 from telemetry import options_for_unittests |
8 | 11 |
9 class BrowserTest(unittest.TestCase): | 12 class BrowserTest(unittest.TestCase): |
10 def testBrowserCreation(self): | 13 def testBrowserCreation(self): |
11 options = options_for_unittests.GetCopy() | 14 options = options_for_unittests.GetCopy() |
12 browser_to_create = browser_finder.FindBrowser(options) | 15 browser_to_create = browser_finder.FindBrowser(options) |
13 if not browser_to_create: | 16 if not browser_to_create: |
14 raise Exception('No browser found, cannot continue test.') | 17 raise Exception('No browser found, cannot continue test.') |
15 with browser_to_create.Create() as b: | 18 with browser_to_create.Create() as b: |
16 self.assertEquals(1, len(b.tabs)) | 19 self.assertEquals(1, len(b.tabs)) |
(...skipping 10 matching lines...) Expand all Loading... |
27 flag1 = '--user-agent=telemetry' | 30 flag1 = '--user-agent=telemetry' |
28 options.extra_browser_args.append(flag1) | 31 options.extra_browser_args.append(flag1) |
29 | 32 |
30 browser_to_create = browser_finder.FindBrowser(options) | 33 browser_to_create = browser_finder.FindBrowser(options) |
31 with browser_to_create.Create() as b: | 34 with browser_to_create.Create() as b: |
32 t = b.tabs[0] | 35 t = b.tabs[0] |
33 t.page.Navigate('http://www.google.com/') | 36 t.page.Navigate('http://www.google.com/') |
34 t.WaitForDocumentReadyStateToBeInteractiveOrBetter() | 37 t.WaitForDocumentReadyStateToBeInteractiveOrBetter() |
35 self.assertEquals(t.runtime.Evaluate('navigator.userAgent'), 'telemetry') | 38 self.assertEquals(t.runtime.Evaluate('navigator.userAgent'), 'telemetry') |
36 | 39 |
| 40 def testAutomationExtension(self): |
| 41 # This test starts the browser with --load-component-extension, which |
| 42 # should load automation provider extension used for remotely running |
| 43 # all other extension API calls. |
| 44 options = options_for_unittests.GetCopy() |
| 45 options.extensions_to_load = [ |
| 46 browser_options.ExtensionToLoad( |
| 47 os.path.join(os.path.dirname(__file__), |
| 48 '..', 'unittest_data', 'auto_provider'), |
| 49 True)] |
| 50 |
| 51 browser_to_create = browser_finder.FindBrowser(options) |
| 52 with browser_to_create.Create() as b: |
| 53 ext = b.extensions.FindByUrl( |
| 54 'chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/' + |
| 55 '_generated_background_page.html') |
| 56 self.assertIsNotNone(ext) |
| 57 create_properties = { 'url':'http://www.google.com' } |
| 58 (call_results, event_args) = ext.RunMethodWithEvents( |
| 59 [extension_page.ExtensionEvent('chrome.tabs.onCreated')], |
| 60 'chrome.tabs.create', |
| 61 create_properties) |
| 62 self.assertEquals(call_results.keys().count('0'), 1) |
| 63 self.assertEquals(call_results["0"]['url'], 'http://www.google.com/') |
| 64 self.assertEquals(event_args.keys().count('chrome.tabs.onCreated'), 1) |
| 65 self.assertEquals(event_args['chrome.tabs.onCreated'].keys().count('0'), |
| 66 1) |
| 67 self.assertEquals(event_args['chrome.tabs.onCreated']['0']['url'], |
| 68 'http://www.google.com/') |
| 69 self.assertTrue(event_args['chrome.tabs.onCreated']['0']['selected']) |
| 70 |
37 def testVersionDetection(self): | 71 def testVersionDetection(self): |
38 options = options_for_unittests.GetCopy() | 72 options = options_for_unittests.GetCopy() |
39 browser_to_create = browser_finder.FindBrowser(options) | 73 browser_to_create = browser_finder.FindBrowser(options) |
40 with browser_to_create.Create() as b: | 74 with browser_to_create.Create() as b: |
41 # pylint: disable=W0212 | 75 # pylint: disable=W0212 |
42 self.assertGreater(b._backend._inspector_protocol_version, 0) | 76 self.assertGreater(b._backend._inspector_protocol_version, 0) |
43 self.assertGreater(b._backend._chrome_branch_number, 0) | 77 self.assertGreater(b._backend._chrome_branch_number, 0) |
44 self.assertGreater(b._backend._webkit_base_revision, 0) | 78 self.assertGreater(b._backend._webkit_base_revision, 0) |
45 | 79 |
46 def testNewCloseTab(self): | 80 def testNewCloseTab(self): |
47 options = options_for_unittests.GetCopy() | 81 options = options_for_unittests.GetCopy() |
48 browser_to_create = browser_finder.FindBrowser(options) | 82 browser_to_create = browser_finder.FindBrowser(options) |
49 with browser_to_create.Create() as b: | 83 with browser_to_create.Create() as b: |
50 existing_tab = b.tabs[0] | 84 existing_tab = b.tabs[0] |
51 self.assertEquals(1, len(b.tabs)) | 85 self.assertEquals(1, len(b.tabs)) |
52 existing_tab_url = existing_tab.url | 86 existing_tab_url = existing_tab.url |
53 | 87 |
54 new_tab = b.tabs.New() | 88 new_tab = b.tabs.New() |
55 self.assertEquals(2, len(b.tabs)) | 89 self.assertEquals(2, len(b.tabs)) |
56 self.assertEquals(existing_tab.url, existing_tab_url) | 90 self.assertEquals(existing_tab.url, existing_tab_url) |
57 self.assertEquals(new_tab.url, 'about:blank') | 91 self.assertEquals(new_tab.url, 'about:blank') |
58 | 92 |
59 new_tab.Close() | 93 new_tab.Close() |
60 self.assertEquals(1, len(b.tabs)) | 94 self.assertEquals(1, len(b.tabs)) |
61 self.assertEquals(existing_tab.url, existing_tab_url) | 95 self.assertEquals(existing_tab.url, existing_tab_url) |
OLD | NEW |