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

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

Issue 12278015: [Telemetry] Reorganize everything. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-add shebangs. Created 7 years, 10 months 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
(Empty)
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
3 # found in the LICENSE file.
4 import os
5 import shutil
6 import tempfile
7 import unittest
8
9 from telemetry import browser_finder
10 from telemetry import extension_dict_backend
11 from telemetry import extension_to_load
12 from telemetry import options_for_unittests
13
14 class ExtensionTest(unittest.TestCase):
15 def setUp(self):
16 extension_path = os.path.join(os.path.dirname(__file__),
17 '..', 'unittest_data', 'simple_extension')
18 load_extension = extension_to_load.ExtensionToLoad(extension_path)
19
20 options = options_for_unittests.GetCopy()
21 options.extensions_to_load = [load_extension]
22 browser_to_create = browser_finder.FindBrowser(options)
23
24 self._browser = None
25 self._extension = None
26 if not browser_to_create:
27 # May not find a browser that supports extensions.
28 return
29 self._browser = browser_to_create.Create()
30 self._extension = self._browser.extensions[load_extension]
31 self.assertTrue(self._extension)
32
33 def tearDown(self):
34 if self._browser:
35 self._browser.Close()
36
37 def testExtensionBasic(self):
38 """Test ExtensionPage's ExecuteJavaScript and EvaluateJavaScript."""
39 if not self._extension:
40 return
41 self._extension.ExecuteJavaScript('setTestVar("abcdef")')
42 self.assertEquals('abcdef',
43 self._extension.EvaluateJavaScript('_testVar'))
44
45 def testDisconnect(self):
46 """Test that ExtensionPage.Disconnect exists by calling it.
47 EvaluateJavaScript should reconnect."""
48 if not self._extension:
49 return
50 self._extension.Disconnect()
51 self.assertEquals(2, self._extension.EvaluateJavaScript('1+1'))
52
53 class NonExistentExtensionTest(unittest.TestCase):
54 def testNonExistentExtensionPath(self):
55 """Test that a non-existent extension path will raise an exception."""
56 extension_path = os.path.join(os.path.dirname(__file__),
57 '..', 'unittest_data', 'foo')
58 self.assertRaises(extension_to_load.ExtensionPathNonExistentException,
59 lambda: extension_to_load.ExtensionToLoad(extension_path))
60
61 def testExtensionNotLoaded(self):
62 """Querying an extension that was not loaded will return None"""
63 extension_path = os.path.join(os.path.dirname(__file__),
64 '..', 'unittest_data', 'simple_extension')
65 load_extension = extension_to_load.ExtensionToLoad(extension_path)
66 options = options_for_unittests.GetCopy()
67 browser_to_create = browser_finder.FindBrowser(options)
68 with browser_to_create.Create() as b:
69 if b.supports_extensions:
70 self.assertRaises(extension_dict_backend.ExtensionNotFoundException,
71 lambda: b.extensions[load_extension])
72
73 class MultipleExtensionTest(unittest.TestCase):
74 def setUp(self):
75 """ Copy the manifest and background.js files of simple_extension to a
76 number of temporary directories to load as extensions"""
77 self._extension_dirs = [tempfile.mkdtemp()
78 for i in range(3)] # pylint: disable=W0612
79 src_extension_dir = os.path.abspath(os.path.join(os.path.dirname(__file__),
80 '..', 'unittest_data', 'simple_extension'))
81 manifest_path = os.path.join(src_extension_dir, 'manifest.json')
82 script_path = os.path.join(src_extension_dir, 'background.js')
83 for d in self._extension_dirs:
84 shutil.copy(manifest_path, d)
85 shutil.copy(script_path, d)
86 self._extensions_to_load = [extension_to_load.ExtensionToLoad(d)
87 for d in self._extension_dirs]
88 options = options_for_unittests.GetCopy()
89 options.extensions_to_load = self._extensions_to_load
90 browser_to_create = browser_finder.FindBrowser(options)
91 self._browser = None
92 # May not find a browser that supports extensions.
93 if browser_to_create:
94 self._browser = browser_to_create.Create()
95
96 def tearDown(self):
97 if self._browser:
98 self._browser.Close()
99 for d in self._extension_dirs:
100 shutil.rmtree(d)
101
102 def testMultipleExtensions(self):
103 if not self._browser:
104 return
105
106 # Test contains.
107 loaded_extensions = filter(lambda e: e in self._browser.extensions,
108 self._extensions_to_load)
109 self.assertEqual(len(loaded_extensions), len(self._extensions_to_load))
110
111 for load_extension in self._extensions_to_load:
112 extension = self._browser.extensions[load_extension]
113 assert extension
114 extension.ExecuteJavaScript('setTestVar("abcdef")')
115 self.assertEquals('abcdef', extension.EvaluateJavaScript('_testVar'))
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/extension_to_load.py ('k') | tools/telemetry/telemetry/facebook_credentials_backend.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698