OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 | 4 |
5 /** | 5 /** |
6 * @fileoverview Tests for chrome://plugins | 6 * @fileoverview Tests for chrome://plugins |
7 */ | 7 */ |
8 | 8 |
9 /** @const {string} Path to source root. */ | 9 /** @const {string} Path to source root. */ |
10 var ROOT_PATH = '../../../../'; | 10 var ROOT_PATH = '../../../../'; |
11 | 11 |
12 /** | 12 /** |
13 * Test fixture for testing async methods of cr.js. | 13 * Test fixture for testing async methods of cr.js. |
14 * @constructor | 14 * @constructor |
15 * @extends testing.Test | 15 * @extends testing.Test |
16 */ | 16 */ |
17 function PluginsTest() { | 17 function PluginsTest() { |
18 this.browserProxy = null; | 18 this.browserProxy = null; |
| 19 this.setupFnResolver = new PromiseResolver(); |
19 } | 20 } |
20 | 21 |
21 PluginsTest.prototype = { | 22 PluginsTest.prototype = { |
22 __proto__: testing.Test.prototype, | 23 __proto__: testing.Test.prototype, |
23 | 24 |
24 /** @override */ | 25 /** @override */ |
25 browsePreload: 'chrome://plugins', | 26 browsePreload: 'chrome://plugins', |
26 | 27 |
27 /** @override */ | 28 /** @override */ |
28 isAsync: true, | 29 isAsync: true, |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 81 |
81 saveShowDetailsToPrefs: function(expanded) { | 82 saveShowDetailsToPrefs: function(expanded) { |
82 this.methodCalled('saveShowDetailsToPrefs', expanded); | 83 this.methodCalled('saveShowDetailsToPrefs', expanded); |
83 }, | 84 }, |
84 | 85 |
85 setClientPage: function() { | 86 setClientPage: function() { |
86 // Nothing to do here. | 87 // Nothing to do here. |
87 }, | 88 }, |
88 }; | 89 }; |
89 | 90 |
| 91 this.browserProxy = new TestBrowserProxy(); |
| 92 |
90 // A function that is called from chrome://plugins to allow this test to | 93 // A function that is called from chrome://plugins to allow this test to |
91 // replace the real Mojo browser proxy with a fake one, before any other | 94 // replace the real Mojo browser proxy with a fake one, before any other |
92 // code runs. | 95 // code runs. |
93 window.setupFn = function() { | 96 window.setupFn = function() { |
94 return importModules([ | 97 return importModules([ |
95 'mojo/public/js/bindings', | 98 'mojo/public/js/bindings', |
96 'mojo/public/js/connection', | 99 'mojo/public/js/connection', |
97 'chrome/browser/ui/webui/plugins/plugins.mojom', | 100 'chrome/browser/ui/webui/plugins/plugins.mojom', |
98 'content/public/renderer/frame_interfaces', | 101 'content/public/renderer/frame_interfaces', |
99 ]).then(function(modules) { | 102 ]).then(function(modules) { |
100 var bindings = modules[0]; | 103 var bindings = modules[0]; |
101 var connection = modules[1]; | 104 var connection = modules[1]; |
102 var pluginsMojom = modules[2]; | 105 var pluginsMojom = modules[2]; |
103 var frameInterfaces = modules[3]; | 106 var frameInterfaces = modules[3]; |
104 | 107 |
105 frameInterfaces.addInterfaceOverrideForTesting( | 108 frameInterfaces.addInterfaceOverrideForTesting( |
106 pluginsMojom.PluginsPageHandler.name, function(handle) { | 109 pluginsMojom.PluginsPageHandler.name, function(handle) { |
107 var stub = connection.bindHandleToStub( | 110 var stub = connection.bindHandleToStub( |
108 handle, pluginsMojom.PluginsPageHandler); | 111 handle, pluginsMojom.PluginsPageHandler); |
109 this.browserProxy = new TestBrowserProxy(); | |
110 bindings.StubBindings(stub).delegate = this.browserProxy; | 112 bindings.StubBindings(stub).delegate = this.browserProxy; |
111 }.bind(this)); | 113 }.bind(this)); |
| 114 return this.setupFnResolver.promise; |
112 }.bind(this)); | 115 }.bind(this)); |
113 }.bind(this); | 116 }.bind(this); |
114 }, | 117 }, |
115 }; | 118 }; |
116 | 119 |
117 TEST_F('PluginsTest', 'DISABLED_Plugins', function() { | 120 TEST_F('PluginsTest', 'Plugins', function() { |
118 var browserProxy = this.browserProxy; | 121 var browserProxy = this.browserProxy; |
| 122 var setupFnResolver = this.setupFnResolver; |
119 | 123 |
120 var fakePluginData = { | 124 var fakePluginData = { |
121 name: 'Group Name', | 125 name: 'Group Name', |
122 description: 'description', | 126 description: 'description', |
123 version: 'version', | 127 version: 'version', |
124 update_url: 'http://update/', | 128 update_url: 'http://update/', |
125 critical: true, | 129 critical: true, |
126 enabled_mode: 'enabledByUser', | 130 enabled_mode: 'enabledByUser', |
127 id: 'plugin-name', | 131 id: 'plugin-name', |
128 always_allowed: false, | 132 always_allowed: false, |
(...skipping 18 matching lines...) Expand all Loading... |
147 ], | 151 ], |
148 enabled_mode: 'enabledByUser', | 152 enabled_mode: 'enabledByUser', |
149 }, | 153 }, |
150 ], | 154 ], |
151 }; | 155 }; |
152 | 156 |
153 suite('PluginTest', function() { | 157 suite('PluginTest', function() { |
154 var EXPECTED_PLUGINS = 2; | 158 var EXPECTED_PLUGINS = 2; |
155 suiteSetup(function() { | 159 suiteSetup(function() { |
156 browserProxy.setPluginsData([fakePluginData, fakePluginData]); | 160 browserProxy.setPluginsData([fakePluginData, fakePluginData]); |
| 161 // Allow code being tested to proceed, now that fake data has been set up. |
| 162 setupFnResolver.resolve(); |
| 163 |
157 return Promise.all([ | 164 return Promise.all([ |
158 browserProxy.whenCalled('getPluginsData'), | 165 browserProxy.whenCalled('getPluginsData'), |
159 browserProxy.whenCalled('getShowDetails'), | 166 browserProxy.whenCalled('getShowDetails'), |
160 ]); | 167 ]); |
161 }); | 168 }); |
162 | 169 |
163 teardown(function() { browserProxy.reset(); }); | 170 teardown(function() { browserProxy.reset(); }); |
164 | 171 |
165 test('PluginsUpdated', function() { | 172 test('PluginsUpdated', function() { |
166 var plugins = document.querySelectorAll('.plugin'); | 173 var plugins = document.querySelectorAll('.plugin'); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 return browserProxy.whenCalled('saveShowDetailsToPrefs'); | 206 return browserProxy.whenCalled('saveShowDetailsToPrefs'); |
200 }).then(function(expanded) { | 207 }).then(function(expanded) { |
201 assertFalse(Boolean(expanded)); | 208 assertFalse(Boolean(expanded)); |
202 }); | 209 }); |
203 }); | 210 }); |
204 }); | 211 }); |
205 | 212 |
206 // Run all registered tests. | 213 // Run all registered tests. |
207 mocha.run(); | 214 mocha.run(); |
208 }); | 215 }); |
OLD | NEW |