Index: remoting/webapp/browser_test/mock_host_list_api.js |
diff --git a/remoting/webapp/browser_test/mock_host_list_api.js b/remoting/webapp/browser_test/mock_host_list_api.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..144c20fb397ad6a8190ae9a92b86557224b7d1c6 |
--- /dev/null |
+++ b/remoting/webapp/browser_test/mock_host_list_api.js |
@@ -0,0 +1,109 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+/** |
+ * @fileoverview |
+ * Mock implementation of remoting.HostList |
+ */ |
+ |
+'use strict'; |
+ |
+/** @suppress {duplicate} */ |
+var remoting = remoting || {}; |
+ |
+/** |
+ * @constructor |
+ * @implements {remoting.HostListApi} |
+ */ |
+remoting.MockHostListApi = function() { |
+ /** @type {Array.<remoting.Host>} */ |
+ this.hosts = [ |
+ { |
+ 'hostName': 'Online host', |
+ 'hostId': 'online-host-id', |
+ 'status': 'ONLINE', |
+ 'jabberId': 'online-jid', |
+ 'publicKey': 'online-public-key', |
+ 'tokenUrlPatterns': [], |
+ 'updatedTime': new Date().toISOString() |
+ }, |
+ { |
+ 'hostName': 'Offline host', |
+ 'hostId': 'offline-host-id', |
+ 'status': 'OFFLINE', |
+ 'jabberId': 'offline-jid', |
+ 'publicKey': 'offline-public-key', |
+ 'tokenUrlPatterns': [], |
+ 'updatedTime': new Date(1970, 1, 1).toISOString() |
+ } |
+ ]; |
+}; |
+ |
+/** |
+ * @param {function(Array.<remoting.Host>):void} onDone |
+ * @param {function(remoting.Error):void} onError |
+ */ |
+remoting.MockHostListApi.prototype.get = function(onDone, onError) { |
+ remoting.mockIdentity.validateTokenAndCall(onDone, onError, [this.hosts]); |
+}; |
+ |
+/** |
+ * @param {function():void} onDone |
+ * @param {function(remoting.Error):void} onError |
+ * @param {string} hostId |
+ * @param {string} hostName |
+ * @param {string} hostPublicKey |
+ */ |
+remoting.MockHostListApi.prototype.put = |
+ function(hostId, hostName, hostPublicKey, onDone, onError) { |
+ /** @type {remoting.MockHostListApi} */ |
+ var that = this; |
+ var onTokenValid = function() { |
+ for (var i = 0; i < that.hosts.length; ++i) { |
+ var host = that.hosts[i]; |
+ if (host.hostId == hostId) { |
+ host.hostName = hostName; |
+ host.hostPublicKey = hostPublicKey; |
+ onDone(); |
+ return; |
+ } |
+ } |
+ console.error('PUT request for unknown host: ' + hostId + |
+ ' (' + hostName + ')'); |
+ onError(remoting.Error.UNEXPECTED); |
+ }; |
+ remoting.mockIdentity.validateTokenAndCall(onTokenValid, onError, []); |
+}; |
+ |
+/** |
+ * @param {function():void} onDone |
+ * @param {function(remoting.Error):void} onError |
+ * @param {string} hostId |
+ */ |
+remoting.MockHostListApi.prototype.remove = |
+ function(hostId, onDone, onError) { |
+ /** @type {remoting.MockHostListApi} */ |
+ var that = this; |
+ var onTokenValid = function() { |
+ for (var i = 0; i < that.hosts.length; ++i) { |
+ var host = that.hosts[i]; |
+ if (host.hostId == hostId) { |
+ that.hosts.splice(i, 1); |
+ onDone(); |
+ return; |
+ } |
+ } |
+ console.error('DELETE request for unknown host: ' + hostId); |
+ onError(remoting.Error.UNEXPECTED); |
+ }; |
+ remoting.mockIdentity.validateTokenAndCall(onTokenValid, onError, []); |
+}; |
+ |
+/** |
+ * @param {boolean} active |
+ */ |
+remoting.MockHostListApi.setActive = function(active) { |
+ remoting.hostListApi = active ? new remoting.MockHostListApi() |
+ : new remoting.HostListApiImpl(); |
+}; |