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 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * Mock implementation of ClientPlugin for testing. | 7 * Mock implementation of ClientPlugin for testing. |
8 * @suppress {checkTypes} | 8 * @suppress {checkTypes} |
9 */ | 9 */ |
10 | 10 |
11 'use strict'; | 11 'use strict'; |
12 | 12 |
13 /** @suppress {duplicate} */ | 13 /** @suppress {duplicate} */ |
14 var remoting = remoting || {}; | 14 var remoting = remoting || {}; |
15 | 15 |
16 /** | 16 /** |
17 * @param {Element} container | 17 * @param {Element} container |
18 * @constructor | 18 * @constructor |
19 * @implements {remoting.ClientPlugin} | 19 * @implements {remoting.ClientPlugin} |
20 */ | 20 */ |
21 remoting.MockClientPlugin = function(container) { | 21 remoting.MockClientPlugin = function(container) { |
22 this.container_ = container; | 22 this.container_ = container; |
23 this.element_ = document.createElement('div'); | 23 this.element_ = document.createElement('div'); |
24 this.element_.style.backgroundImage = 'linear-gradient(45deg, blue, red)'; | 24 this.element_.style.backgroundImage = 'linear-gradient(45deg, blue, red)'; |
25 this.width_ = 640; | |
26 this.height_ = 480; | |
27 this.connectionStatusUpdateHandler_ = null; | 25 this.connectionStatusUpdateHandler_ = null; |
28 this.desktopSizeUpdateHandler_ = null; | 26 this.desktopSizeUpdateHandler_ = null; |
29 this.container_.appendChild(this.element_); | 27 this.container_.appendChild(this.element_); |
| 28 this.hostDesktop_ = new remoting.MockClientPlugin.HostDesktop(); |
30 }; | 29 }; |
31 | 30 |
32 remoting.MockClientPlugin.prototype.dispose = function() { | 31 remoting.MockClientPlugin.prototype.dispose = function() { |
33 this.container_.removeChild(this.element_); | 32 this.container_.removeChild(this.element_); |
34 this.element_ = null; | 33 this.element_ = null; |
35 this.connectionStatusUpdateHandler_ = null; | 34 this.connectionStatusUpdateHandler_ = null; |
36 }; | 35 }; |
37 | 36 |
38 remoting.MockClientPlugin.prototype.getDesktopWidth = function() { | 37 remoting.MockClientPlugin.prototype.hostDesktop = function() { |
39 return this.width_; | 38 return this.hostDesktop_; |
40 }; | |
41 | |
42 remoting.MockClientPlugin.prototype.getDesktopHeight = function() { | |
43 return this.height_; | |
44 }; | |
45 | |
46 remoting.MockClientPlugin.prototype.getDesktopXDpi = function() { | |
47 return 96; | |
48 }; | |
49 | |
50 remoting.MockClientPlugin.prototype.getDesktopYDpi = function() { | |
51 return 96; | |
52 }; | 39 }; |
53 | 40 |
54 remoting.MockClientPlugin.prototype.element = function() { | 41 remoting.MockClientPlugin.prototype.element = function() { |
55 return this.element_; | 42 return this.element_; |
56 }; | 43 }; |
57 | 44 |
58 remoting.MockClientPlugin.prototype.initialize = function(onDone) { | 45 remoting.MockClientPlugin.prototype.initialize = function(onDone) { |
59 window.setTimeout(onDone.bind(null, true), 0); | 46 window.setTimeout(onDone.bind(null, true), 0); |
60 }; | 47 }; |
61 | 48 |
(...skipping 10 matching lines...) Expand all Loading... |
72 0); | 59 0); |
73 }; | 60 }; |
74 | 61 |
75 remoting.MockClientPlugin.prototype.injectKeyEvent = | 62 remoting.MockClientPlugin.prototype.injectKeyEvent = |
76 function(key, down) {}; | 63 function(key, down) {}; |
77 | 64 |
78 remoting.MockClientPlugin.prototype.remapKey = function(from, to) {}; | 65 remoting.MockClientPlugin.prototype.remapKey = function(from, to) {}; |
79 | 66 |
80 remoting.MockClientPlugin.prototype.releaseAllKeys = function() {}; | 67 remoting.MockClientPlugin.prototype.releaseAllKeys = function() {}; |
81 | 68 |
82 remoting.MockClientPlugin.prototype.notifyClientResolution = | |
83 function(width, height, dpi) { | |
84 this.width_ = width; | |
85 this.height_ = height; | |
86 if (this.desktopSizeUpdateHandler_) { | |
87 window.setTimeout(this.desktopSizeUpdateHandler_, 0); | |
88 } | |
89 }; | |
90 | |
91 remoting.MockClientPlugin.prototype.onIncomingIq = function(iq) {}; | 69 remoting.MockClientPlugin.prototype.onIncomingIq = function(iq) {}; |
92 | 70 |
93 remoting.MockClientPlugin.prototype.isSupportedVersion = function() { | 71 remoting.MockClientPlugin.prototype.isSupportedVersion = function() { |
94 return true; | 72 return true; |
95 }; | 73 }; |
96 | 74 |
97 remoting.MockClientPlugin.prototype.hasFeature = function(feature) { | 75 remoting.MockClientPlugin.prototype.hasFeature = function(feature) { |
98 return false; | 76 return false; |
99 }; | 77 }; |
100 | 78 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 /** @type {function(number, number):void} */ | 123 /** @type {function(number, number):void} */ |
146 this.connectionStatusUpdateHandler_ = handler; | 124 this.connectionStatusUpdateHandler_ = handler; |
147 }; | 125 }; |
148 | 126 |
149 remoting.MockClientPlugin.prototype.setRouteChangedHandler = | 127 remoting.MockClientPlugin.prototype.setRouteChangedHandler = |
150 function(handler) {}; | 128 function(handler) {}; |
151 | 129 |
152 remoting.MockClientPlugin.prototype.setConnectionReadyHandler = | 130 remoting.MockClientPlugin.prototype.setConnectionReadyHandler = |
153 function(handler) {}; | 131 function(handler) {}; |
154 | 132 |
155 remoting.MockClientPlugin.prototype.setDesktopSizeUpdateHandler = | |
156 function(handler) { | |
157 this.desktopSizeUpdateHandler_ = handler; | |
158 }; | |
159 | |
160 remoting.MockClientPlugin.prototype.setCapabilitiesHandler = | 133 remoting.MockClientPlugin.prototype.setCapabilitiesHandler = |
161 function(handler) {}; | 134 function(handler) {}; |
162 | 135 |
163 remoting.MockClientPlugin.prototype.setGnubbyAuthHandler = | 136 remoting.MockClientPlugin.prototype.setGnubbyAuthHandler = |
164 function(handler) {}; | 137 function(handler) {}; |
165 | 138 |
166 remoting.MockClientPlugin.prototype.setCastExtensionHandler = | 139 remoting.MockClientPlugin.prototype.setCastExtensionHandler = |
167 function(handler) {}; | 140 function(handler) {}; |
168 | 141 |
169 remoting.MockClientPlugin.prototype.setMouseCursorHandler = | 142 remoting.MockClientPlugin.prototype.setMouseCursorHandler = |
170 function(handler) {}; | 143 function(handler) {}; |
171 | 144 |
172 remoting.MockClientPlugin.prototype.setFetchThirdPartyTokenHandler = | 145 remoting.MockClientPlugin.prototype.setFetchThirdPartyTokenHandler = |
173 function(handler) {}; | 146 function(handler) {}; |
174 | 147 |
175 remoting.MockClientPlugin.prototype.setFetchPinHandler = | 148 remoting.MockClientPlugin.prototype.setFetchPinHandler = |
176 function(handler) {}; | 149 function(handler) {}; |
177 | 150 |
| 151 /** |
| 152 * @constructor |
| 153 * @implements {remoting.HostDesktop} |
| 154 * @extends {base.EventSourceImpl} |
| 155 */ |
| 156 remoting.MockClientPlugin.HostDesktop = function() { |
| 157 /** @private */ |
| 158 this.width_ = 0; |
| 159 /** @private */ |
| 160 this.height_ = 0; |
| 161 /** @private */ |
| 162 this.xDpi_ = 96; |
| 163 /** @private */ |
| 164 this.yDpi_ = 96; |
| 165 /** @private */ |
| 166 this.resizable_ = true; |
| 167 this.defineEvents(base.values(remoting.HostDesktop.Events)); |
| 168 }; |
| 169 base.extend(remoting.MockClientPlugin.HostDesktop, base.EventSourceImpl); |
| 170 |
| 171 /** |
| 172 * @return {{width:number, height:number, xDpi:number, yDpi:number}} |
| 173 * @override |
| 174 */ |
| 175 remoting.MockClientPlugin.HostDesktop.prototype.getDimensions = function() { |
| 176 return { |
| 177 width: this.width_, |
| 178 height: this.height_, |
| 179 xDpi: this.xDpi_, |
| 180 yDpi: this.yDpi_ |
| 181 }; |
| 182 }; |
| 183 |
| 184 /** |
| 185 * @return {boolean} |
| 186 * @override |
| 187 */ |
| 188 remoting.MockClientPlugin.HostDesktop.prototype.isResizable = function() { |
| 189 return this.resizable_; |
| 190 }; |
| 191 |
| 192 /** |
| 193 * @param {number} width |
| 194 * @param {number} height |
| 195 * @param {number} deviceScale |
| 196 * @override |
| 197 */ |
| 198 remoting.MockClientPlugin.HostDesktop.prototype.resize = |
| 199 function(width, height, deviceScale) { |
| 200 this.width_ = width; |
| 201 this.height_ = height; |
| 202 this.xDpi_ = this.yDpi_ = Math.floor(deviceScale * 96); |
| 203 this.raiseEvent(remoting.HostDesktop.Events.sizeChanged, |
| 204 this.getDimensions()); |
| 205 }; |
178 | 206 |
179 /** | 207 /** |
180 * @constructor | 208 * @constructor |
181 * @extends {remoting.ClientPluginFactory} | 209 * @extends {remoting.ClientPluginFactory} |
182 */ | 210 */ |
183 remoting.MockClientPluginFactory = function() {}; | 211 remoting.MockClientPluginFactory = function() {}; |
184 | 212 |
185 remoting.MockClientPluginFactory.prototype.createPlugin = | 213 remoting.MockClientPluginFactory.prototype.createPlugin = |
186 function(container, onExtensionMessage) { | 214 function(container, onExtensionMessage) { |
187 return new remoting.MockClientPlugin(container); | 215 return new remoting.MockClientPlugin(container); |
188 }; | 216 }; |
189 | 217 |
190 remoting.MockClientPluginFactory.prototype.preloadPlugin = function() {}; | 218 remoting.MockClientPluginFactory.prototype.preloadPlugin = function() {}; |
OLD | NEW |