Index: tools/telemetry/telemetry/core/extension_unittest.py |
diff --git a/tools/telemetry/telemetry/core/extension_unittest.py b/tools/telemetry/telemetry/core/extension_unittest.py |
index f17d029a0549294ad8de4326ce8f54263397759e..549836865f00134c689acc093d9a14de6e590db9 100644 |
--- a/tools/telemetry/telemetry/core/extension_unittest.py |
+++ b/tools/telemetry/telemetry/core/extension_unittest.py |
@@ -16,22 +16,27 @@ from telemetry.unittest import options_for_unittests |
class ExtensionTest(unittest.TestCase): |
def setUp(self): |
- extension_path = os.path.join(util.GetUnittestDataDir(), 'simple_extension') |
+ self._browser = None |
+ self._extension = None |
+ self._extension_id = None |
+ |
+ def CreateBrowserWithExtension(self, ext_path): |
+ extension_path = os.path.join(util.GetUnittestDataDir(), ext_path) |
options = options_for_unittests.GetCopy() |
load_extension = extension_to_load.ExtensionToLoad( |
extension_path, options.browser_type) |
options.extensions_to_load = [load_extension] |
browser_to_create = browser_finder.FindBrowser(options) |
- self._browser = None |
- self._extension = None |
if not browser_to_create: |
# May not find a browser that supports extensions. |
- return |
+ return False |
self._browser = browser_to_create.Create() |
self._browser.Start() |
self._extension = self._browser.extensions[load_extension] |
+ self._extension_id = load_extension.extension_id |
self.assertTrue(self._extension) |
+ return True |
def tearDown(self): |
if self._browser: |
@@ -39,7 +44,7 @@ class ExtensionTest(unittest.TestCase): |
def testExtensionBasic(self): |
"""Test ExtensionPage's ExecuteJavaScript and EvaluateJavaScript.""" |
- if not self._extension: |
+ if not self.CreateBrowserWithExtension('simple_extension'): |
logging.warning('Did not find a browser that supports extensions, ' |
'skipping test.') |
return |
@@ -49,6 +54,32 @@ class ExtensionTest(unittest.TestCase): |
self.assertEquals('abcdef', |
self._extension.EvaluateJavaScript('_testVar')) |
+ def testExtensionGetByExtensionId(self): |
+ """Test GetByExtensionId for a simple extension with a background page.""" |
+ if not self.CreateBrowserWithExtension('simple_extension'): |
+ logging.warning('Did not find a browser that supports extensions, ' |
+ 'skipping test.') |
+ return |
+ ext = self._browser.extensions.GetByExtensionId(self._extension_id) |
+ self.assertEqual(1, len(ext)) |
+ self.assertEqual(ext[0], self._extension) |
+ self.assertTrue( |
+ ext[0].EvaluateJavaScript('chrome.runtime != null')) |
+ |
+ def testWebApp(self): |
+ """Tests GetByExtensionId for a web app with multiple pages.""" |
+ if not self.CreateBrowserWithExtension('simple_app'): |
+ logging.warning('Did not find a browser that supports extensions, ' |
+ 'skipping test.') |
+ return |
+ extensions = self._browser.extensions.GetByExtensionId(self._extension_id) |
+ extension_urls = set([ext.EvaluateJavaScript('location.href;') |
+ for ext in extensions]) |
+ expected_urls = set(['chrome-extension://' + self._extension_id + '/' + path |
+ for path in ['main.html', 'second.html', |
+ '_generated_background_page.html']]) |
+ |
+ self.assertEqual(expected_urls, extension_urls) |
class NonExistentExtensionTest(unittest.TestCase): |
def testNonExistentExtensionPath(self): |