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

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

Issue 398823005: Automate host start up in browser test (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 return browserTest.onUIMode(AppMode.CLIENT_HOST_NEEDS_UPGRADE).then( 162 return browserTest.onUIMode(AppMode.CLIENT_HOST_NEEDS_UPGRADE).then(
163 function() { 163 function() {
164 // On fulfilled. 164 // On fulfilled.
165 browserTest.clickOnControl('host-needs-update-connect-button'); 165 browserTest.clickOnControl('host-needs-update-connect-button');
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); 170 return browserTest.onUIMode(AppMode.CLIENT_PIN_PROMPT);
171 }); 171 });
172 } 172 };
173 173
174 browserTest.expectMe2MeError = function(errorTag) { 174 browserTest.expectMe2MeError = function(errorTag) {
175 var AppMode = remoting.AppMode; 175 var AppMode = remoting.AppMode;
176 var Timeout = browserTest.Timeout; 176 var Timeout = browserTest.Timeout;
177 177
178 var onConnected = browserTest.onUIMode(AppMode.IN_SESSION, Timeout.None); 178 var onConnected = browserTest.onUIMode(AppMode.IN_SESSION, Timeout.None);
179 var onFailure = browserTest.onUIMode(AppMode.CLIENT_CONNECT_FAILED_ME2ME); 179 var onFailure = browserTest.onUIMode(AppMode.CLIENT_CONNECT_FAILED_ME2ME);
180 180
181 onConnected = onConnected.then(function() { 181 onConnected = onConnected.then(function() {
182 return Promise.reject( 182 return Promise.reject(
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 browserTest.runTest = function(testClass, data) { 218 browserTest.runTest = function(testClass, data) {
219 try { 219 try {
220 var test = new testClass(); 220 var test = new testClass();
221 browserTest.expect(typeof test.run == 'function'); 221 browserTest.expect(typeof test.run == 'function');
222 test.run(data); 222 test.run(data);
223 } catch (e) { 223 } catch (e) {
224 browserTest.fail(e); 224 browserTest.fail(e);
225 } 225 }
226 }; 226 };
227 227
228 browserTest.setupPIN = function(newPin) {
229 var AppMode = remoting.AppMode;
230 var HOST_SETUP_WAIT = 10000;
231 var Timeout = browserTest.Timeout;
232
233 return browserTest.onUIMode(AppMode.HOST_SETUP_ASK_PIN).then(function() {
234 document.getElementById('daemon-pin-entry').value = newPin;
235 document.getElementById('daemon-pin-confirm').value = newPin;
236 browserTest.clickOnControl('daemon-pin-ok');
237
238 var success = browserTest.onUIMode(AppMode.HOST_SETUP_DONE, Timeout.NONE);
239 var failure = browserTest.onUIMode(AppMode.HOST_SETUP_ERROR, Timeout.NONE);
240 failure.then(function(){
Jamie 2014/07/22 18:47:11 I think you need to update failure, ie: failure =
kelvinp 2014/07/23 22:22:27 Done.
241 return Promise.reject('Unexpected host setup failure');
242 });
243 return Promise.race([success, failure]);
244 }).then(function() {
245 console.log('browserTest: PIN Setup is done.')
246 browserTest.clickOnControl('host-config-done-dismiss');
247
248 // On Linux, we restart the host after changing the PIN, need to sleep
249 // for ten seconds before the host is ready for connection.
250 return base.Promise.sleep(HOST_SETUP_WAIT);
251 });
252 };
253
254 browserTest.ensureHostStartedWithPIN = function(pin) {
255 var AppMode = remoting.AppMode;
256 var HOST_RESTART_WAIT = 10000;
257 var Timeout = browserTest.Timeout;
Jamie 2014/07/22 18:47:11 You don't seem to be using any of these definition
kelvinp 2014/07/23 22:22:27 Done.
258
259 // Return if host is already
260 var startDaemonButton = document.getElementById('start-daemon');
261 if (startDaemonButton.offsetWidth != 0) {
weitao 2014/07/21 18:53:45 Could you please add a comment here? What does the
Jamie 2014/07/22 18:47:11 It's an indication that the element is visible, bu
kelvinp 2014/07/23 22:22:27 Done.
262 console.log('browserTest: Enabling remote connection.');
263 browserTest.clickOnControl('start-daemon');
weitao 2014/07/21 18:53:45 Have you tested this on all platforms? I assume yo
Jamie 2014/07/22 18:47:11 This is a good point. If we can't implement this c
kelvinp 2014/07/23 22:22:27 The code will work on Windows and Linux, as we are
264 } else {
265 console.log('browserTest: Changing the PIN of the host to <' + pin + '>.' );
266 browserTest.clickOnControl('change-daemon-pin');
267 }
268 return browserTest.setupPIN(pin);
269 };
270
271 // Called by Browser Test in C++
272 browserTest.ensureRemoteConnectionEnabled = function(pin) {
273 browserTest.ensureHostStartedWithPIN(pin).then(function(){
274 browserTest.automationController_.send(true);
275 }).catch(function(errorMessage){
276 console.error(errorMessage);
277 browserTest.automationController_.send(false);
278 });
279 };
280
228 browserTest.init(); 281 browserTest.init();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698