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

Side by Side Diff: remoting/webapp/js_proto/chrome_mocks.js

Issue 1060793003: Added unit test for HostDaemonFacade. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mock-xhr
Patch Set: license Created 5 years, 8 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
OLDNEW
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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 function(listener){ 55 function(listener){
56 listener.apply(null, params); 56 listener.apply(null, params);
57 }); 57 });
58 }; 58 };
59 59
60 /** @type {Object} */ 60 /** @type {Object} */
61 chromeMocks.runtime = {}; 61 chromeMocks.runtime = {};
62 62
63 /** @constructor */ 63 /** @constructor */
64 chromeMocks.runtime.Port = function() { 64 chromeMocks.runtime.Port = function() {
65 /** @const */
65 this.onMessage = new chromeMocks.Event(); 66 this.onMessage = new chromeMocks.Event();
67
68 /** @const */
66 this.onDisconnect = new chromeMocks.Event(); 69 this.onDisconnect = new chromeMocks.Event();
67 70
68 /** @type {string} */ 71 /** @type {string} */
69 this.name = ''; 72 this.name = '';
70 73
71 /** @type {chrome.runtime.MessageSender} */ 74 /** @type {chrome.runtime.MessageSender} */
72 this.sender = null; 75 this.sender = null;
73 }; 76 };
74 77
75 chromeMocks.runtime.Port.prototype.disconnect = function() {}; 78 chromeMocks.runtime.Port.prototype.disconnect = function() {};
(...skipping 17 matching lines...) Expand all
93 extensionId === null, 96 extensionId === null,
94 'The mock only supports sending messages to the same extension.'); 97 'The mock only supports sending messages to the same extension.');
95 extensionId = chrome.runtime.id; 98 extensionId = chrome.runtime.id;
96 window.requestAnimationFrame(function() { 99 window.requestAnimationFrame(function() {
97 var message_copy = base.deepCopy(message); 100 var message_copy = base.deepCopy(message);
98 chromeMocks.runtime.onMessage.mock$fire( 101 chromeMocks.runtime.onMessage.mock$fire(
99 message_copy, {id: extensionId}, responseCallback); 102 message_copy, {id: extensionId}, responseCallback);
100 }); 103 });
101 }; 104 };
102 105
106 /**
107 * Always returns the same mock port for given application name.
108 * @param {string} application
109 * @return {chromeMocks.runtime.Port}
110 */
111 chromeMocks.runtime.connectNative = function(application) {
112 var port = nativePorts[application];
113 if (port === undefined) {
114 port = new chromeMocks.runtime.Port();
115 port.name = application;
116 nativePorts[application] = port;
117 }
118 return port;
119 };
120
121 /** @const {Object<string,!chromeMocks.runtime.Port>} */
122 var nativePorts = null;
123
103 /** @type {string} */ 124 /** @type {string} */
104 chromeMocks.runtime.id = 'extensionId'; 125 chromeMocks.runtime.id = 'extensionId';
105 126
106 /** @type {Object} */ 127 /** @type {Object} */
107 chromeMocks.runtime.lastError = { 128 chromeMocks.runtime.lastError = {
108 /** @type {string|undefined} */ 129 /** @type {string|undefined} */
109 message: undefined 130 message: undefined
110 }; 131 };
111 132
112 133
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 239
219 /** 240 /**
220 * Activates a list of Chrome components to mock 241 * Activates a list of Chrome components to mock
221 * @param {Array<string>} components 242 * @param {Array<string>} components
222 */ 243 */
223 chromeMocks.activate = function(components) { 244 chromeMocks.activate = function(components) {
224 if (originals_) { 245 if (originals_) {
225 throw new Error('chromeMocks.activate() can only be called once.'); 246 throw new Error('chromeMocks.activate() can only be called once.');
226 } 247 }
227 originals_ = {}; 248 originals_ = {};
249 nativePorts = {};
228 components.forEach(function(component) { 250 components.forEach(function(component) {
229 if (!chromeMocks[component]) { 251 if (!chromeMocks[component]) {
230 throw new Error('No mocks defined for chrome.' + component); 252 throw new Error('No mocks defined for chrome.' + component);
231 } 253 }
232 originals_[component] = chrome[component]; 254 originals_[component] = chrome[component];
233 chrome[component] = chromeMocks[component]; 255 chrome[component] = chromeMocks[component];
234 }); 256 });
235 }; 257 };
236 258
237 chromeMocks.restore = function() { 259 chromeMocks.restore = function() {
238 if (!originals_) { 260 if (!originals_) {
239 throw new Error('You must call activate() before restore().'); 261 throw new Error('You must call activate() before restore().');
240 } 262 }
241 for (var components in originals_) { 263 for (var components in originals_) {
242 chrome[components] = originals_[components]; 264 chrome[components] = originals_[components];
243 } 265 }
244 originals_ = null; 266 originals_ = null;
267 nativePorts = null;
245 }; 268 };
246 269
247 })(); 270 })();
OLDNEW
« no previous file with comments | « remoting/webapp/crd/js/host_daemon_facade_unittest.js ('k') | remoting/webapp/js_proto/qunit_proto.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698