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

Side by Side Diff: tools/telemetry/telemetry/browser_unittest.py

Issue 11412238: Proof of concept for running extension API stack through dev tools. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 # 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
7 from telemetry import options_for_unittests 9 from telemetry import options_for_unittests
8 10
9 class BrowserTest(unittest.TestCase): 11 class BrowserTest(unittest.TestCase):
10 def testBrowserCreation(self): 12 def testBrowserCreation(self):
11 options = options_for_unittests.GetCopy() 13 options = options_for_unittests.GetCopy()
12 browser_to_create = browser_finder.FindBrowser(options) 14 browser_to_create = browser_finder.FindBrowser(options)
13 if not browser_to_create: 15 if not browser_to_create:
14 raise Exception('No browser found, cannot continue test.') 16 raise Exception('No browser found, cannot continue test.')
15 with browser_to_create.Create() as b: 17 with browser_to_create.Create() as b:
16 self.assertEquals(1, b.num_tabs) 18 self.assertEquals(1, b.num_tabs)
(...skipping 11 matching lines...) Expand all
28 options.extra_browser_args.append(flag1) 30 options.extra_browser_args.append(flag1)
29 31
30 browser_to_create = browser_finder.FindBrowser(options) 32 browser_to_create = browser_finder.FindBrowser(options)
31 with browser_to_create.Create() as b: 33 with browser_to_create.Create() as b:
32 with b.ConnectToNthTab(0) as t: 34 with b.ConnectToNthTab(0) as t:
33 t.page.Navigate('http://www.google.com/') 35 t.page.Navigate('http://www.google.com/')
34 t.WaitForDocumentReadyStateToBeInteractiveOrBetter() 36 t.WaitForDocumentReadyStateToBeInteractiveOrBetter()
35 self.assertEquals(t.runtime.Evaluate('navigator.userAgent'), 37 self.assertEquals(t.runtime.Evaluate('navigator.userAgent'),
36 'telemetry') 38 'telemetry')
37 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(
nduca 2012/12/07 19:23:47 you have to have the extension that this reference
zel 2012/12/12 21:03:42 Done.
47 os.path.join(os.path.dirname(__file__),
48 '..', '..', 'telemetry_auto', 'data', 'auto_provider'),
49 True)]
50
51 browser_to_create = browser_finder.FindBrowser(options)
52 with browser_to_create.Create() as b:
53 with b.ConnectToExtensionPage("aapnijgdinlhnhlmodcfapnahmbfebeb") as ext:
54 create_properties = { 'url':'http://www.google.com' }
55 (call_results, event_args) = ext.RunMethodWithEvents(
56 ['chrome.tabs.onCreated'], 'chrome.tabs.create', create_properties)
57 self.assertEquals(call_results.keys().count('0'), 1)
58 self.assertEquals(call_results["0"]['url'], 'http://www.google.com/')
59 self.assertEquals(event_args.keys().count('chrome.tabs.onCreated'), 1)
60 self.assertEquals(event_args['chrome.tabs.onCreated'].keys().count('0'),
61 1)
62 self.assertEquals(event_args['chrome.tabs.onCreated']['0']['url'],
63 'http://www.google.com/')
64 self.assertTrue(event_args['chrome.tabs.onCreated']['0']['selected'])
65
38 def testVersionDetection(self): 66 def testVersionDetection(self):
39 options = options_for_unittests.GetCopy() 67 options = options_for_unittests.GetCopy()
40 browser_to_create = browser_finder.FindBrowser(options) 68 browser_to_create = browser_finder.FindBrowser(options)
41 with browser_to_create.Create() as b: 69 with browser_to_create.Create() as b:
42 # pylint: disable=W0212 70 # pylint: disable=W0212
43 self.assertGreater(b._backend._inspector_protocol_version, 0) 71 self.assertGreater(b._backend._inspector_protocol_version, 0)
44 self.assertGreater(b._backend._chrome_branch_number, 0) 72 self.assertGreater(b._backend._chrome_branch_number, 0)
45 self.assertGreater(b._backend._webkit_base_revision, 0) 73 self.assertGreater(b._backend._webkit_base_revision, 0)
46 74
47 def testNewCloseTab(self): 75 def testNewCloseTab(self):
48 options = options_for_unittests.GetCopy() 76 options = options_for_unittests.GetCopy()
49 browser_to_create = browser_finder.FindBrowser(options) 77 browser_to_create = browser_finder.FindBrowser(options)
50 with browser_to_create.Create() as b: 78 with browser_to_create.Create() as b:
51 self.assertEquals(1, b.num_tabs) 79 self.assertEquals(1, b.num_tabs)
52 existing_tab_url = b.GetNthTabUrl(0) 80 existing_tab_url = b.GetNthTabUrl(0)
53 b.NewTab() 81 b.NewTab()
54 self.assertEquals(2, b.num_tabs) 82 self.assertEquals(2, b.num_tabs)
55 self.assertEquals(b.GetNthTabUrl(0), existing_tab_url) 83 self.assertEquals(b.GetNthTabUrl(0), existing_tab_url)
56 self.assertEquals(b.GetNthTabUrl(1), 'about:blank') 84 self.assertEquals(b.GetNthTabUrl(1), 'about:blank')
57 b.CloseTab(1) 85 b.CloseTab(1)
58 self.assertEquals(1, b.num_tabs) 86 self.assertEquals(1, b.num_tabs)
59 self.assertEquals(b.GetNthTabUrl(0), existing_tab_url) 87 self.assertEquals(b.GetNthTabUrl(0), existing_tab_url)
60 self.assertRaises(AssertionError, b.CloseTab, 0) 88 self.assertRaises(AssertionError, b.CloseTab, 0)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698