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

Side by Side Diff: remoting/webapp/browser_test/browser_test.js

Issue 838543002: Implement browser test for It2Me (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address CL feedback Created 5 years, 11 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 /** 5 /**
6 * @fileoverview 6 * @fileoverview
7 * @suppress {checkTypes} By default, JSCompile is not run on test files. 7 * @suppress {checkTypes} By default, JSCompile is not run on test files.
8 * However, you can modify |remoting_webapp_files.gypi| locally to include 8 * However, you can modify |remoting_webapp_files.gypi| locally to include
9 * the test in the package to expedite local development. This suppress 9 * the test in the package to expedite local development. This suppress
10 * is here so that JSCompile won't complain. 10 * is here so that JSCompile won't complain.
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 }, function() { 166 }, function() {
167 // On time out. 167 // On time out.
168 return Promise.resolve(); 168 return Promise.resolve();
169 }).then(function() { 169 }).then(function() {
170 return browserTest.onUIMode(AppMode.CLIENT_PIN_PROMPT, 10000); 170 return browserTest.onUIMode(AppMode.CLIENT_PIN_PROMPT, 10000);
171 }); 171 });
172 }; 172 };
173 173
174 browserTest.disconnect = function() { 174 browserTest.disconnect = function() {
175 var AppMode = remoting.AppMode; 175 var AppMode = remoting.AppMode;
176 var finishedMode = AppMode.CLIENT_SESSION_FINISHED_ME2ME;
177 var finishedButton = 'client-finished-me2me-button';
178 if (remoting.clientSession.getMode() == remoting.ClientSession.Mode.IT2ME) {
179 finishedMode = AppMode.CLIENT_SESSION_FINISHED_IT2ME;
180 finishedButton = 'client-finished-it2me-button';
181 }
182
176 remoting.disconnect(); 183 remoting.disconnect();
177 return browserTest.onUIMode(AppMode.CLIENT_SESSION_FINISHED_ME2ME).then( 184
178 function() { 185 return browserTest.onUIMode(finishedMode).then(function() {
179 browserTest.clickOnControl('client-finished-me2me-button'); 186 browserTest.clickOnControl(finishedButton);
180 return browserTest.onUIMode(AppMode.HOME); 187 return browserTest.onUIMode(AppMode.HOME);
181 }); 188 });
182 }; 189 };
183 190
184 browserTest.enterPIN = function(pin, opt_expectError) { 191 browserTest.enterPIN = function(pin, opt_expectError) {
185 // Wait for 500ms before hitting the PIN button. From experiment, sometimes 192 // Wait for 500ms before hitting the PIN button. From experiment, sometimes
186 // the PIN prompt does not dismiss without the timeout. 193 // the PIN prompt does not dismiss without the timeout.
187 var CONNECT_PIN_WAIT = 500; 194 var CONNECT_PIN_WAIT = 500;
188 195
189 document.getElementById('pin-entry').value = pin; 196 document.getElementById('pin-entry').value = pin;
190 197
191 return base.Promise.sleep(CONNECT_PIN_WAIT).then(function() { 198 return base.Promise.sleep(CONNECT_PIN_WAIT).then(function() {
192 browserTest.clickOnControl('pin-connect-button'); 199 browserTest.clickOnControl('pin-connect-button');
193 }).then(function() { 200 }).then(function() {
194 if (opt_expectError) { 201 if (opt_expectError) {
195 return browserTest.expectMe2MeError(remoting.Error.INVALID_ACCESS_CODE); 202 return browserTest.expectConnectionError(
203 remoting.ClientSession.Mode.ME2ME,
204 remoting.Error.INVALID_ACCESS_CODE);
196 } else { 205 } else {
197 return browserTest.expectMe2MeConnected(); 206 return browserTest.expectConnected();
198 } 207 }
199 }); 208 });
200 }; 209 };
201 210
202 browserTest.expectMe2MeError = function(errorTag) { 211 browserTest.expectConnectionError = function(connectionMode, errorTag) {
203 var AppMode = remoting.AppMode; 212 var AppMode = remoting.AppMode;
204 var Timeout = browserTest.Timeout; 213 var Timeout = browserTest.Timeout;
205 214
206 var onConnected = browserTest.onUIMode(AppMode.IN_SESSION, Timeout.None); 215 var finishButton = 'client-finished-me2me-button';
207 var onFailure = browserTest.onUIMode(AppMode.CLIENT_CONNECT_FAILED_ME2ME); 216 var failureMode = AppMode.CLIENT_CONNECT_FAILED_ME2ME;
217
218 if (connectionMode == remoting.ClientSession.Mode.IT2ME) {
219 failureMode = AppMode.CLIENT_CONNECT_FAILED_IT2ME;
220 finishButton = 'client-finished-it2me-button';
221 }
222
223 var onConnected = browserTest.onUIMode(AppMode.IN_SESSION, Timeout.NONE);
224 var onFailure = browserTest.onUIMode(failureMode);
208 225
209 onConnected = onConnected.then(function() { 226 onConnected = onConnected.then(function() {
210 return Promise.reject( 227 return Promise.reject(
211 'Expected the Me2Me connection to fail.'); 228 'Expected the connection to fail.');
212 }); 229 });
213 230
214 onFailure = onFailure.then(function() { 231 onFailure = onFailure.then(function() {
215 var errorDiv = document.getElementById('connect-error-message'); 232 var errorDiv = document.getElementById('connect-error-message');
216 var actual = errorDiv.innerText; 233 var actual = errorDiv.innerText;
217 var expected = l10n.getTranslationOrError(errorTag); 234 var expected = l10n.getTranslationOrError(errorTag);
218 235 browserTest.clickOnControl(finishButton);
219 browserTest.clickOnControl('client-finished-me2me-button');
220 236
221 if (actual != expected) { 237 if (actual != expected) {
222 return Promise.reject('Unexpected failure. actual:' + actual + 238 return Promise.reject('Unexpected failure. actual:' + actual +
223 ' expected:' + expected); 239 ' expected:' + expected);
224 } 240 }
225 }); 241 });
226 242
227 return Promise.race([onConnected, onFailure]); 243 return Promise.race([onConnected, onFailure]);
228 }; 244 };
229 245
230 browserTest.expectMe2MeConnected = function() { 246 browserTest.expectConnected = function() {
231 var AppMode = remoting.AppMode; 247 var AppMode = remoting.AppMode;
232 // Timeout if the session is not connected within 30 seconds. 248 // Timeout if the session is not connected within 30 seconds.
233 var SESSION_CONNECTION_TIMEOUT = 30000; 249 var SESSION_CONNECTION_TIMEOUT = 30000;
234 var onConnected = browserTest.onUIMode(AppMode.IN_SESSION, 250 var onConnected = browserTest.onUIMode(AppMode.IN_SESSION,
235 SESSION_CONNECTION_TIMEOUT); 251 SESSION_CONNECTION_TIMEOUT);
236 var onFailure = browserTest.onUIMode(AppMode.CLIENT_CONNECT_FAILED_ME2ME, 252 var onFailure = browserTest.onUIMode(AppMode.CLIENT_CONNECT_FAILED_ME2ME,
237 browserTest.Timeout.NONE); 253 browserTest.Timeout.NONE);
238 onFailure = onFailure.then(function() { 254 onFailure = onFailure.then(function() {
239 var errorDiv = document.getElementById('connect-error-message'); 255 var errorDiv = document.getElementById('connect-error-message');
240 var errorMsg = errorDiv.innerText; 256 var errorMsg = errorDiv.innerText;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 browserTest.ensureRemoteConnectionEnabled = function(pin) { 340 browserTest.ensureRemoteConnectionEnabled = function(pin) {
325 browserTest.ensureHostStartedWithPIN(pin).then(function(){ 341 browserTest.ensureHostStartedWithPIN(pin).then(function(){
326 browserTest.automationController_.send(true); 342 browserTest.automationController_.send(true);
327 }, function(errorMessage){ 343 }, function(errorMessage){
328 console.error(errorMessage); 344 console.error(errorMessage);
329 browserTest.automationController_.send(false); 345 browserTest.automationController_.send(false);
330 }); 346 });
331 }; 347 };
332 348
333 browserTest.init(); 349 browserTest.init();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698