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 os |
5 import shutil | 5 import shutil |
6 import tempfile | 6 import tempfile |
7 import unittest | 7 import unittest |
8 | 8 |
9 from telemetry import browser_finder | 9 from telemetry.core import browser_finder |
10 from telemetry import extension_dict_backend | 10 from telemetry.core import extension_to_load |
11 from telemetry import extension_to_load | 11 from telemetry.core.chrome import extension_dict_backend |
12 from telemetry import options_for_unittests | 12 from telemetry.test import options_for_unittests |
13 | 13 |
14 class ExtensionTest(unittest.TestCase): | 14 class ExtensionTest(unittest.TestCase): |
15 def setUp(self): | 15 def setUp(self): |
16 extension_path = os.path.join(os.path.dirname(__file__), | 16 extension_path = os.path.join(os.path.dirname(__file__), |
17 '..', 'unittest_data', 'simple_extension') | 17 '..', '..', 'unittest_data', 'simple_extension') |
18 load_extension = extension_to_load.ExtensionToLoad(extension_path) | 18 load_extension = extension_to_load.ExtensionToLoad(extension_path) |
19 | 19 |
20 options = options_for_unittests.GetCopy() | 20 options = options_for_unittests.GetCopy() |
21 options.extensions_to_load = [load_extension] | 21 options.extensions_to_load = [load_extension] |
22 browser_to_create = browser_finder.FindBrowser(options) | 22 browser_to_create = browser_finder.FindBrowser(options) |
23 | 23 |
24 self._browser = None | 24 self._browser = None |
25 self._extension = None | 25 self._extension = None |
26 if not browser_to_create: | 26 if not browser_to_create: |
27 # May not find a browser that supports extensions. | 27 # May not find a browser that supports extensions. |
(...skipping 19 matching lines...) Expand all Loading... |
47 EvaluateJavaScript should reconnect.""" | 47 EvaluateJavaScript should reconnect.""" |
48 if not self._extension: | 48 if not self._extension: |
49 return | 49 return |
50 self._extension.Disconnect() | 50 self._extension.Disconnect() |
51 self.assertEquals(2, self._extension.EvaluateJavaScript('1+1')) | 51 self.assertEquals(2, self._extension.EvaluateJavaScript('1+1')) |
52 | 52 |
53 class NonExistentExtensionTest(unittest.TestCase): | 53 class NonExistentExtensionTest(unittest.TestCase): |
54 def testNonExistentExtensionPath(self): | 54 def testNonExistentExtensionPath(self): |
55 """Test that a non-existent extension path will raise an exception.""" | 55 """Test that a non-existent extension path will raise an exception.""" |
56 extension_path = os.path.join(os.path.dirname(__file__), | 56 extension_path = os.path.join(os.path.dirname(__file__), |
57 '..', 'unittest_data', 'foo') | 57 '..', '..', 'unittest_data', 'foo') |
58 self.assertRaises(extension_to_load.ExtensionPathNonExistentException, | 58 self.assertRaises(extension_to_load.ExtensionPathNonExistentException, |
59 lambda: extension_to_load.ExtensionToLoad(extension_path)) | 59 lambda: extension_to_load.ExtensionToLoad(extension_path)) |
60 | 60 |
61 def testExtensionNotLoaded(self): | 61 def testExtensionNotLoaded(self): |
62 """Querying an extension that was not loaded will return None""" | 62 """Querying an extension that was not loaded will return None""" |
63 extension_path = os.path.join(os.path.dirname(__file__), | 63 extension_path = os.path.join(os.path.dirname(__file__), |
64 '..', 'unittest_data', 'simple_extension') | 64 '..', '..', 'unittest_data', 'simple_extension') |
65 load_extension = extension_to_load.ExtensionToLoad(extension_path) | 65 load_extension = extension_to_load.ExtensionToLoad(extension_path) |
66 options = options_for_unittests.GetCopy() | 66 options = options_for_unittests.GetCopy() |
67 browser_to_create = browser_finder.FindBrowser(options) | 67 browser_to_create = browser_finder.FindBrowser(options) |
68 with browser_to_create.Create() as b: | 68 with browser_to_create.Create() as b: |
69 if b.supports_extensions: | 69 if b.supports_extensions: |
70 self.assertRaises(extension_dict_backend.ExtensionNotFoundException, | 70 self.assertRaises(extension_dict_backend.ExtensionNotFoundException, |
71 lambda: b.extensions[load_extension]) | 71 lambda: b.extensions[load_extension]) |
72 | 72 |
73 class MultipleExtensionTest(unittest.TestCase): | 73 class MultipleExtensionTest(unittest.TestCase): |
74 def setUp(self): | 74 def setUp(self): |
75 """ Copy the manifest and background.js files of simple_extension to a | 75 """ Copy the manifest and background.js files of simple_extension to a |
76 number of temporary directories to load as extensions""" | 76 number of temporary directories to load as extensions""" |
77 self._extension_dirs = [tempfile.mkdtemp() | 77 self._extension_dirs = [tempfile.mkdtemp() |
78 for i in range(3)] # pylint: disable=W0612 | 78 for i in range(3)] # pylint: disable=W0612 |
79 src_extension_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), | 79 src_extension_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), |
80 '..', 'unittest_data', 'simple_extension')) | 80 '..', '..', 'unittest_data', 'simple_extension')) |
81 manifest_path = os.path.join(src_extension_dir, 'manifest.json') | 81 manifest_path = os.path.join(src_extension_dir, 'manifest.json') |
82 script_path = os.path.join(src_extension_dir, 'background.js') | 82 script_path = os.path.join(src_extension_dir, 'background.js') |
83 for d in self._extension_dirs: | 83 for d in self._extension_dirs: |
84 shutil.copy(manifest_path, d) | 84 shutil.copy(manifest_path, d) |
85 shutil.copy(script_path, d) | 85 shutil.copy(script_path, d) |
86 self._extensions_to_load = [extension_to_load.ExtensionToLoad(d) | 86 self._extensions_to_load = [extension_to_load.ExtensionToLoad(d) |
87 for d in self._extension_dirs] | 87 for d in self._extension_dirs] |
88 options = options_for_unittests.GetCopy() | 88 options = options_for_unittests.GetCopy() |
89 options.extensions_to_load = self._extensions_to_load | 89 options.extensions_to_load = self._extensions_to_load |
90 browser_to_create = browser_finder.FindBrowser(options) | 90 browser_to_create = browser_finder.FindBrowser(options) |
(...skipping 15 matching lines...) Expand all Loading... |
106 # Test contains. | 106 # Test contains. |
107 loaded_extensions = filter(lambda e: e in self._browser.extensions, | 107 loaded_extensions = filter(lambda e: e in self._browser.extensions, |
108 self._extensions_to_load) | 108 self._extensions_to_load) |
109 self.assertEqual(len(loaded_extensions), len(self._extensions_to_load)) | 109 self.assertEqual(len(loaded_extensions), len(self._extensions_to_load)) |
110 | 110 |
111 for load_extension in self._extensions_to_load: | 111 for load_extension in self._extensions_to_load: |
112 extension = self._browser.extensions[load_extension] | 112 extension = self._browser.extensions[load_extension] |
113 assert extension | 113 assert extension |
114 extension.ExecuteJavaScript('setTestVar("abcdef")') | 114 extension.ExecuteJavaScript('setTestVar("abcdef")') |
115 self.assertEquals('abcdef', extension.EvaluateJavaScript('_testVar')) | 115 self.assertEquals('abcdef', extension.EvaluateJavaScript('_testVar')) |
OLD | NEW |