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

Side by Side Diff: remoting/webapp/unittests/it2me_helper_channel_unittest.js

Issue 973333002: Remove Hangout Remote Desktop integration code from the webapp. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase + manifest changes Created 5 years, 9 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
(Empty)
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
3 // found in the LICENSE file.
4
5 /**
6 * @fileoverview
7 * @suppress {checkTypes|checkVars|reportUnknownTypes|visibility}
8 */
9
10 (function() {
11
12 'use strict';
13
14 var appLauncher = null;
15 var hangoutPort = null;
16 var webappPort = null;
17 var helperChannel = null;
18 var disconnectCallback = null;
19
20 module('It2MeHelperChannel', {
21 setup: function() {
22 // App Launcher.
23 appLauncher = {
24 launch: function () {
25 return promiseResolveSynchronous('tabId');
26 },
27 close: function () {}
28 };
29 appLauncher.launch = sinon.spy(appLauncher, 'launch');
30 appLauncher.close = sinon.spy(appLauncher, 'close');
31
32 // HangoutPort.
33 hangoutPort = new chromeMocks.runtime.Port();
34 hangoutPort.postMessage = sinon.spy(hangoutPort, 'postMessage');
35 hangoutPort.disconnect = sinon.spy(hangoutPort, 'disconnect');
36
37 // WebappPort.
38 webappPort = new chromeMocks.runtime.Port();
39 webappPort.sender = {
40 tab : {
41 id : 'tabId'
42 }
43 };
44 webappPort.postMessage = sinon.spy(webappPort, 'postMessage');
45 webappPort.disconnect = sinon.spy(webappPort, 'disconnect');
46
47 // disconnect callback
48 disconnectCallback = sinon.spy();
49
50 // HelperChannel.
51 helperChannel = new remoting.It2MeHelperChannel(
52 appLauncher, hangoutPort, disconnectCallback);
53 helperChannel.init();
54 hangoutPort.onMessage.mock$fire({
55 method: remoting.It2MeHelperChannel.HangoutMessageTypes.CONNECT,
56 accessCode: "123412341234"
57 });
58 },
59 });
60
61 function promiseResolveSynchronous(value) {
62 return {
63 then: function(callback) {
64 callback('tabId');
65 }
66 };
67 }
68
69 test('onHangoutMessage_("hello") should return supportedFeatures', function() {
70 hangoutPort.onMessage.mock$fire(
71 { method: remoting.It2MeHelperChannel.HangoutMessageTypes.HELLO });
72
73 sinon.assert.calledWith(hangoutPort.postMessage, {
74 method: remoting.It2MeHelperChannel.HangoutMessageTypes.HELLO_RESPONSE,
75 supportedFeatures: base.values(remoting.It2MeHelperChannel.Features)
76 });
77 });
78
79 test('onHangoutMessage_(|connect|) should launch the webapp',
80 function() {
81 sinon.assert.called(appLauncher.launch);
82 QUnit.equal(helperChannel.instanceId(), 'tabId');
83 });
84
85 test('onWebappMessage() should forward messages to hangout', function() {
86 // Execute.
87 helperChannel.onWebappConnect(webappPort);
88 webappPort.onMessage.mock$fire({
89 method:'sessionStateChanged',
90 state:remoting.ClientSession.State.CONNECTING
91 });
92 webappPort.onMessage.mock$fire({
93 method:'sessionStateChanged',
94 state:remoting.ClientSession.State.CONNECTED
95 });
96
97 // Verify events are forwarded.
98 sinon.assert.calledWith(hangoutPort.postMessage, {
99 method:'sessionStateChanged',
100 state:remoting.ClientSession.State.CONNECTING
101 });
102
103 sinon.assert.calledWith(hangoutPort.postMessage, {
104 method:'sessionStateChanged',
105 state:remoting.ClientSession.State.CONNECTED
106 });
107 });
108
109 test('should notify hangout when the webapp crashes', function() {
110 // Execute.
111 helperChannel.onWebappConnect(webappPort);
112 webappPort.onDisconnect.mock$fire();
113
114 // Verify events are forwarded.
115 sinon.assert.calledWith(hangoutPort.postMessage, {
116 method:'sessionStateChanged',
117 state: remoting.ClientSession.State.FAILED
118 });
119 sinon.assert.called(hangoutPort.disconnect);
120 sinon.assert.calledOnce(disconnectCallback);
121 });
122
123 test('should notify hangout when the session is ended', function() {
124 // Execute.
125 helperChannel.onWebappConnect(webappPort);
126 webappPort.onMessage.mock$fire({
127 method:'sessionStateChanged',
128 state:remoting.ClientSession.State.CLOSED
129 });
130
131 webappPort.onDisconnect.mock$fire();
132
133 // Verify events are forwarded.
134 sinon.assert.calledWith(hangoutPort.postMessage, {
135 method:'sessionStateChanged',
136 state:remoting.ClientSession.State.CLOSED
137 });
138 sinon.assert.called(hangoutPort.disconnect);
139 sinon.assert.calledOnce(disconnectCallback);
140 });
141
142 test('should notify hangout when the session has error', function() {
143 helperChannel.onWebappConnect(webappPort);
144 webappPort.onMessage.mock$fire({
145 method:'sessionStateChanged',
146 state:remoting.ClientSession.State.FAILED
147 });
148
149 webappPort.onDisconnect.mock$fire();
150
151 // Verify events are forwarded.
152 sinon.assert.calledWith(hangoutPort.postMessage, {
153 method:'sessionStateChanged',
154 state:remoting.ClientSession.State.FAILED
155 });
156 sinon.assert.called(hangoutPort.disconnect);
157 sinon.assert.calledOnce(disconnectCallback);
158 });
159
160
161 test('onHangoutMessages_(disconnect) should close the webapp', function() {
162 // Execute.
163 helperChannel.onWebappConnect(webappPort);
164 hangoutPort.onMessage.mock$fire({
165 method: remoting.It2MeHelperChannel.HangoutMessageTypes.DISCONNECT
166 });
167
168 sinon.assert.calledOnce(appLauncher.close);
169
170 // Webapp will respond by disconnecting the port
171 webappPort.onDisconnect.mock$fire();
172
173 // Verify events are forwarded.
174 sinon.assert.calledWith(hangoutPort.postMessage, {
175 method:'sessionStateChanged',
176 state:remoting.ClientSession.State.CLOSED
177 });
178 sinon.assert.called(webappPort.disconnect);
179 sinon.assert.called(hangoutPort.disconnect);
180 });
181
182 test('should close the webapp when hangout crashes', function() {
183 // Execute.
184 helperChannel.onWebappConnect(webappPort);
185 hangoutPort.onDisconnect.mock$fire();
186
187 sinon.assert.calledOnce(appLauncher.close);
188 sinon.assert.calledOnce(disconnectCallback);
189
190 sinon.assert.called(hangoutPort.disconnect);
191 sinon.assert.called(webappPort.disconnect);
192 });
193
194 })();
OLDNEW
« no previous file with comments | « remoting/webapp/unittests/it2me_helpee_channel_unittest.js ('k') | remoting/webapp/unittests/it2me_service_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698