| Index: tools/telemetry/telemetry/extension_unittest.py
|
| ===================================================================
|
| --- tools/telemetry/telemetry/extension_unittest.py (revision 0)
|
| +++ tools/telemetry/telemetry/extension_unittest.py (revision 0)
|
| @@ -0,0 +1,74 @@
|
| +# Copyright (c) 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 os
|
| +import shutil
|
| +import tempfile
|
| +import unittest
|
| +
|
| +from telemetry import browser_finder
|
| +from telemetry import extension_to_load
|
| +from telemetry import options_for_unittests
|
| +
|
| +class ExtensionTest(unittest.TestCase):
|
| + def testExtension(self):
|
| + extension_path = os.path.join(os.path.dirname(__file__),
|
| + '..', 'unittest_data', 'simple_extension')
|
| + load_extension = extension_to_load.ExtensionToLoad(extension_path)
|
| +
|
| + options = options_for_unittests.GetCopy()
|
| + options.extensions_to_load = [load_extension]
|
| + browser_to_create = browser_finder.FindBrowser(options)
|
| + if not browser_to_create:
|
| + # Could not find a browser that supports extensions.
|
| + return
|
| +
|
| + with browser_to_create.Create() as b:
|
| + extension = b.extensions[load_extension]
|
| + assert extension
|
| + extension.ExecuteJavaScript("setTestVar('abcdef')")
|
| + self.assertEquals('abcdef', extension.EvaluateJavaScript("_testVar"))
|
| +
|
| +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 i in range(3)] # pylint: disable=W0612
|
| + src_extension_dir = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
| + '..', 'unittest_data', '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)
|
| + self._extensions_to_load = [extension_to_load.ExtensionToLoad(d)
|
| + for d in self._extension_dirs]
|
| + options = options_for_unittests.GetCopy()
|
| + 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()
|
| +
|
| + 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:
|
| + return
|
| +
|
| + # Test contains.
|
| + loaded_extensions = filter(lambda e: e in self._browser.extensions,
|
| + self._extensions_to_load)
|
| + 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
|
| + extension.ExecuteJavaScript("setTestVar('abcdef')")
|
| + self.assertEquals('abcdef', extension.EvaluateJavaScript("_testVar"))
|
|
|
| Property changes on: tools/telemetry/telemetry/extension_unittest.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|