| Index: tools/telemetry/telemetry/internal/browser/extension_unittest.py
|
| diff --git a/tools/telemetry/telemetry/internal/browser/extension_unittest.py b/tools/telemetry/telemetry/internal/browser/extension_unittest.py
|
| deleted file mode 100644
|
| index 44fea28fe61b2d3b159bf8314e12d73ccf561d93..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/internal/browser/extension_unittest.py
|
| +++ /dev/null
|
| @@ -1,210 +0,0 @@
|
| -# Copyright 2012 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import logging
|
| -import os
|
| -import shutil
|
| -import tempfile
|
| -import unittest
|
| -
|
| -from telemetry.core import util
|
| -from telemetry import decorators
|
| -from telemetry.internal.browser import browser_finder
|
| -from telemetry.internal.browser import extension_to_load
|
| -from telemetry.testing import options_for_unittests
|
| -
|
| -
|
| -class ExtensionTest(unittest.TestCase):
|
| - def setUp(self):
|
| - 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)
|
| -
|
| - if not browser_to_create:
|
| - # May not find a browser that supports extensions.
|
| - return False
|
| - self._browser = browser_to_create.Create(options)
|
| - 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:
|
| - self._browser.Close()
|
| -
|
| - def testExtensionBasic(self):
|
| - """Test ExtensionPage's ExecuteJavaScript and EvaluateJavaScript."""
|
| - if not self.CreateBrowserWithExtension('simple_extension'):
|
| - logging.warning('Did not find a browser that supports extensions, '
|
| - 'skipping test.')
|
| - return
|
| - self.assertTrue(
|
| - self._extension.EvaluateJavaScript('chrome.runtime != null'))
|
| - self._extension.ExecuteJavaScript('setTestVar("abcdef")')
|
| - 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'))
|
| -
|
| - @decorators.Disabled('mac')
|
| - @decorators.Disabled('win') # crbug.com/570955
|
| - 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):
|
| - """Test that a non-existent extension path will raise an exception."""
|
| - extension_path = os.path.join(util.GetUnittestDataDir(), 'foo')
|
| - options = options_for_unittests.GetCopy()
|
| - self.assertRaises(extension_to_load.ExtensionPathNonExistentException,
|
| - lambda: extension_to_load.ExtensionToLoad(
|
| - extension_path, options.browser_type))
|
| -
|
| - def testExtensionNotLoaded(self):
|
| - """Querying an extension that was not loaded will return None"""
|
| - extension_path = os.path.join(util.GetUnittestDataDir(), 'simple_extension')
|
| - options = options_for_unittests.GetCopy()
|
| - load_extension = extension_to_load.ExtensionToLoad(
|
| - extension_path, options.browser_type)
|
| - browser_to_create = browser_finder.FindBrowser(options)
|
| - with browser_to_create.Create(options) as b:
|
| - if b.supports_extensions:
|
| - self.assertRaises(KeyError, lambda: b.extensions[load_extension])
|
| -
|
| -class MultipleExtensionTest(unittest.TestCase):
|
| - def setUp(self):
|
| - """ Copy the manifest and background.js files of simple_extension to a
|
| - number of temporary directories to load as extensions"""
|
| - self._extension_dirs = [tempfile.mkdtemp() for _ in range(3)]
|
| - src_extension_dir = os.path.join(
|
| - util.GetUnittestDataDir(), 'simple_extension')
|
| - manifest_path = os.path.join(src_extension_dir, 'manifest.json')
|
| - script_path = os.path.join(src_extension_dir, 'background.js')
|
| - for d in self._extension_dirs:
|
| - shutil.copy(manifest_path, d)
|
| - shutil.copy(script_path, d)
|
| - options = options_for_unittests.GetCopy()
|
| - self._extensions_to_load = [extension_to_load.ExtensionToLoad(
|
| - d, options.browser_type)
|
| - for d in self._extension_dirs]
|
| - options.extensions_to_load = self._extensions_to_load
|
| - browser_to_create = browser_finder.FindBrowser(options)
|
| - self._browser = None
|
| - # May not find a browser that supports extensions.
|
| - if browser_to_create:
|
| - self._browser = browser_to_create.Create(options)
|
| -
|
| - def tearDown(self):
|
| - if self._browser:
|
| - self._browser.Close()
|
| - for d in self._extension_dirs:
|
| - shutil.rmtree(d)
|
| -
|
| - def testMultipleExtensions(self):
|
| - if not self._browser:
|
| - logging.warning('Did not find a browser that supports extensions, '
|
| - 'skipping test.')
|
| - return
|
| -
|
| - # Test contains.
|
| - loaded_extensions = [e for e in self._extensions_to_load
|
| - if e in self._browser.extensions]
|
| - self.assertEqual(len(loaded_extensions), len(self._extensions_to_load))
|
| - for load_extension in self._extensions_to_load:
|
| - extension = self._browser.extensions[load_extension]
|
| - assert extension
|
| - self.assertTrue(
|
| - extension.EvaluateJavaScript('chrome.runtime != null'))
|
| - extension.ExecuteJavaScript('setTestVar("abcdef")')
|
| - self.assertEquals('abcdef', extension.EvaluateJavaScript('_testVar'))
|
| -
|
| -
|
| -class ComponentExtensionTest(unittest.TestCase):
|
| - def testComponentExtensionBasic(self):
|
| - extension_path = os.path.join(
|
| - util.GetUnittestDataDir(), 'component_extension')
|
| - options = options_for_unittests.GetCopy()
|
| - load_extension = extension_to_load.ExtensionToLoad(
|
| - extension_path, options.browser_type, is_component=True)
|
| -
|
| - options.extensions_to_load = [load_extension]
|
| - browser_to_create = browser_finder.FindBrowser(options)
|
| - if not browser_to_create:
|
| - logging.warning('Did not find a browser that supports extensions, '
|
| - 'skipping test.')
|
| - return
|
| -
|
| - with browser_to_create.Create(options) as b:
|
| - extension = b.extensions[load_extension]
|
| - self.assertTrue(
|
| - extension.EvaluateJavaScript('chrome.runtime != null'))
|
| - extension.ExecuteJavaScript('setTestVar("abcdef")')
|
| - self.assertEquals('abcdef', extension.EvaluateJavaScript('_testVar'))
|
| -
|
| - def testComponentExtensionNoPublicKey(self):
|
| - # simple_extension does not have a public key.
|
| - extension_path = os.path.join(util.GetUnittestDataDir(), 'simple_extension')
|
| - options = options_for_unittests.GetCopy()
|
| - self.assertRaises(extension_to_load.MissingPublicKeyException,
|
| - lambda: extension_to_load.ExtensionToLoad(
|
| - extension_path,
|
| - browser_type=options.browser_type,
|
| - is_component=True))
|
| -
|
| -
|
| -class WebviewInExtensionTest(ExtensionTest):
|
| -
|
| - # Flaky on windows, hits an exception: http://crbug.com/508325
|
| - @decorators.Disabled('win', 'linux')
|
| - def testWebviewInExtension(self):
|
| - """Tests GetWebviewContext() for a web app containing <webview> element."""
|
| - if not self.CreateBrowserWithExtension('webview_app'):
|
| - logging.warning('Did not find a browser that supports extensions, '
|
| - 'skipping test.')
|
| - return
|
| -
|
| - self._browser.extensions.GetByExtensionId(self._extension_id)
|
| - webview_contexts = self._extension.GetWebviewContexts()
|
| - self.assertEquals(1, len(webview_contexts))
|
| - webview_context = webview_contexts[0]
|
| - webview_context.WaitForDocumentReadyStateToBeComplete()
|
| - # Check that the context has the right url from the <webview> element.
|
| - self.assertTrue(webview_context.GetUrl().startswith('data:'))
|
| - # Check |test_input_id| element is accessible from the webview context.
|
| - self.assertTrue(webview_context.EvaluateJavaScript(
|
| - 'document.getElementById("test_input_id") != null'))
|
| - # Check that |test_input_id| is not accessible from outside webview context
|
| - self.assertFalse(self._extension.EvaluateJavaScript(
|
| - 'document.getElementById("test_input_id") != null'))
|
|
|