OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // This file contains various mock objects for the chrome platform to make | 5 // This file contains various mock objects for the chrome platform to make |
6 // unit testing easier. | 6 // unit testing easier. |
7 | 7 |
8 Entry = function() {}; | 8 Entry = function() {}; |
9 | 9 |
10 var chromeMocks = {}; | 10 var chromeMocks = {}; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 var message_copy = base.deepCopy(message); | 97 var message_copy = base.deepCopy(message); |
98 chromeMocks.runtime.onMessage.mock$fire( | 98 chromeMocks.runtime.onMessage.mock$fire( |
99 message_copy, {id: extensionId}, responseCallback); | 99 message_copy, {id: extensionId}, responseCallback); |
100 }); | 100 }); |
101 }; | 101 }; |
102 | 102 |
103 /** @type {string} */ | 103 /** @type {string} */ |
104 chromeMocks.runtime.id = 'extensionId'; | 104 chromeMocks.runtime.id = 'extensionId'; |
105 | 105 |
106 /** @type {Object} */ | 106 /** @type {Object} */ |
107 chromeMocks.storage = {}; | 107 chromeMocks.runtime.lastError = { |
| 108 /** @type {string|undefined} */ |
| 109 message: undefined |
| 110 }; |
| 111 |
108 | 112 |
109 // Sample implementation of chrome.StorageArea according to | 113 // Sample implementation of chrome.StorageArea according to |
110 // https://developer.chrome.com/apps/storage#type-StorageArea | 114 // https://developer.chrome.com/apps/storage#type-StorageArea |
111 /** @constructor */ | 115 /** @constructor */ |
112 chromeMocks.StorageArea = function() { | 116 chromeMocks.StorageArea = function() { |
113 /** @type {Object} */ | 117 /** @type {Object} */ |
114 this.storage_ = {}; | 118 this.storage_ = {}; |
115 }; | 119 }; |
116 | 120 |
117 /** | 121 /** |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 /** @param {string} key */ | 167 /** @param {string} key */ |
164 function(key) { | 168 function(key) { |
165 delete this.storage_[key]; | 169 delete this.storage_[key]; |
166 }, this); | 170 }, this); |
167 }; | 171 }; |
168 | 172 |
169 chromeMocks.StorageArea.prototype.clear = function() { | 173 chromeMocks.StorageArea.prototype.clear = function() { |
170 this.storage_ = null; | 174 this.storage_ = null; |
171 }; | 175 }; |
172 | 176 |
| 177 /** @type {Object} */ |
| 178 chromeMocks.storage = {}; |
| 179 |
173 /** @type {chromeMocks.StorageArea} */ | 180 /** @type {chromeMocks.StorageArea} */ |
174 chromeMocks.storage.local = new chromeMocks.StorageArea(); | 181 chromeMocks.storage.local = new chromeMocks.StorageArea(); |
175 | 182 |
| 183 |
| 184 /** @constructor */ |
| 185 chromeMocks.Identity = function() { |
| 186 /** @private {string|undefined} */ |
| 187 this.token_ = undefined; |
| 188 }; |
| 189 |
| 190 /** |
| 191 * @param {Object} options |
| 192 * @param {function(string=):void} callback |
| 193 */ |
| 194 chromeMocks.Identity.prototype.getAuthToken = function(options, callback) { |
| 195 // Don't use setTimeout because sinon mocks it. |
| 196 window.requestAnimationFrame(callback.bind(null, this.token_)); |
| 197 }; |
| 198 |
| 199 /** @param {string} token */ |
| 200 chromeMocks.Identity.prototype.mock$setToken = function(token) { |
| 201 this.token_ = token; |
| 202 }; |
| 203 |
| 204 chromeMocks.Identity.prototype.mock$clearToken = function() { |
| 205 this.token_ = undefined; |
| 206 }; |
| 207 |
| 208 /** @type {chromeMocks.Identity} */ |
| 209 chromeMocks.identity = new chromeMocks.Identity(); |
| 210 |
| 211 |
176 var originals_ = null; | 212 var originals_ = null; |
177 | 213 |
178 /** | 214 /** |
179 * Activates a list of Chrome components to mock | 215 * Activates a list of Chrome components to mock |
180 * @param {Array<string>} components | 216 * @param {Array<string>} components |
181 */ | 217 */ |
182 chromeMocks.activate = function(components) { | 218 chromeMocks.activate = function(components) { |
183 if (originals_) { | 219 if (originals_) { |
184 throw new Error('chromeMocks.activate() can only be called once.'); | 220 throw new Error('chromeMocks.activate() can only be called once.'); |
185 } | 221 } |
(...skipping 11 matching lines...) Expand all Loading... |
197 if (!originals_) { | 233 if (!originals_) { |
198 throw new Error('You must call activate() before restore().'); | 234 throw new Error('You must call activate() before restore().'); |
199 } | 235 } |
200 for (var components in originals_) { | 236 for (var components in originals_) { |
201 chrome[components] = originals_[components]; | 237 chrome[components] = originals_[components]; |
202 } | 238 } |
203 originals_ = null; | 239 originals_ = null; |
204 }; | 240 }; |
205 | 241 |
206 })(); | 242 })(); |
OLD | NEW |