11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/** 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @fileoverview 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Mock implementation of ClientPlugin for testing. 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @suppress {checkTypes} 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci'use strict'; 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/** @suppress {duplicate} */ 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar remoting = remoting || {}; 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/** 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @constructor 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @implements {remoting.ClientPlugin} 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin = function(container) { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.container_ = container; 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.element_ = document.createElement('div'); 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.element_.style.backgroundImage = 'linear-gradient(45deg, blue, red)'; 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.width_ = 640; 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.height_ = 480; 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.connectionStatusUpdateHandler_ = null; 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.desktopSizeUpdateHandler_ = null; 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.container_.appendChild(this.element_); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.dispose = function() { 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.container_.removeChild(this.element_); 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.element_ = null; 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.connectionStatusUpdateHandler_ = null; 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.getDesktopWidth = function() { 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.width_; 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.getDesktopHeight = function() { 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.height_; 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.getDesktopXDpi = function() { 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return 96; 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.getDesktopYDpi = function() { 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return 96; 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.element = function() { 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.element_; 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.initialize = function(onDone) { 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci window.setTimeout(onDone.bind(null, true), 0); 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.connect = function( 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci hostJid, hostPublicKey, localJid, sharedSecret, 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci authenticationMethods, authenticationTag, 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci clientPairingId, clientPairedSecret) { 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci base.debug.assert(this.connectionStatusUpdateHandler_ != null); 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci window.setTimeout( 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.connectionStatusUpdateHandler_.bind( 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this, 691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci remoting.ClientSession.State.CONNECTED, 701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci remoting.ClientSession.ConnectionError.NONE), 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 0); 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.injectKeyEvent = 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(key, down) {}; 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.remapKey = function(from, to) {}; 781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.releaseAllKeys = function() {}; 801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.notifyClientResolution = 821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(width, height, dpi) { 831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.width_ = width; 841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.height_ = height; 851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (this.desktopSizeUpdateHandler_) { 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci window.setTimeout(this.desktopSizeUpdateHandler_, 0); 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.onIncomingIq = function(iq) {}; 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.isSupportedVersion = function() { 931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.hasFeature = function(feature) { 971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return false; 981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.enableMediaSourceRendering = 1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(mediaSourceRenderer) {}; 1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1031320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.sendClipboardItem = 1041320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(mimeType, item) {}; 1051320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1061320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.useAsyncPinDialog = function() {}; 1071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.requestPairing = 1091320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(clientName, onDone) {}; 1101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.onPinFetched = function(pin) {}; 1121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.onThirdPartyTokenFetched = 1141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(token, sharedSecret) {}; 1151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.pauseAudio = function(pause) {}; 1171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.pauseVideo = function(pause) {}; 1191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.getPerfStats = function() { 1211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var result = new remoting.ClientSession.PerfStats; 1221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci result.videoBandwidth = 999; 1231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci result.videoFrameRate = 60; 1241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci result.captureLatency = 10; 1251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci result.encodeLatency = 10; 1261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci result.decodeLatency = 10; 1271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci result.renderLatency = 10; 1281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci result.roundtripLatency = 10; 1291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return result; 1301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 1311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.sendClientMessage = 1331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(name, data) {}; 1341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setOnOutgoingIqHandler = 1361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setOnDebugMessageHandler = 1391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setConnectionStatusUpdateHandler = 1421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) { 1431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.connectionStatusUpdateHandler_ = handler; 1441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 1451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setConnectionReadyHandler = 1471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setDesktopSizeUpdateHandler = 1501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) { 1511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.desktopSizeUpdateHandler_ = handler; 1521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 1531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setCapabilitiesHandler = 1551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setGnubbyAuthHandler = 1581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setCastExtensionHandler = 1611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setMouseCursorHandler = 1641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setFetchThirdPartyTokenHandler = 1671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPlugin.prototype.setFetchPinHandler = 1701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(handler) {}; 1711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/** 1741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @constructor 1751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @extends {remoting.ClientPluginFactory} 1761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 1771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPluginFactory = function() {}; 1781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPluginFactory.prototype.createPlugin = 1801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function(container, onExtensionMessage) { 1811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return new remoting.MockClientPlugin(container); 1821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 1831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciremoting.MockClientPluginFactory.prototype.preloadPlugin = function() {}; 185