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

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

Issue 389673003: Handle host need upgrade in Pin browser test (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Jamie's feedbacks 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} 7 * @suppress {checkTypes}
8 * Browser test for the scenario below: 8 * Browser test for the scenario below:
9 * 1. Change the PIN. 9 * 1. Change the PIN.
10 * 2. Connect with the new PIN. 10 * 2. Connect with the new PIN.
11 * 3. Verify the connection succeeded. 11 * 3. Verify the connection succeeded.
12 * 4. Disconnect and reconnect with the old PIN. 12 * 4. Disconnect and reconnect with the old PIN.
13 * 5. Verify the connection failed. 13 * 5. Verify the connection failed.
14 */ 14 */
15 15
16 'use strict'; 16 'use strict';
17 17
18 /** @constructor */ 18 /** @constructor */
19 browserTest.Update_PIN = function() {}; 19 browserTest.Update_PIN = function() {};
20 20
21 browserTest.Update_PIN.prototype.run = function(data) { 21 browserTest.Update_PIN.prototype.run = function(data) {
22 var LOGIN_BACKOFF_WAIT = 2000; 22 var LOGIN_BACKOFF_WAIT = 2000;
23 // Input validation 23 // Input validation
24 browserTest.expect(typeof data.new_pin == 'string'); 24 browserTest.expect(typeof data.new_pin == 'string');
25 browserTest.expect(typeof data.old_pin == 'string'); 25 browserTest.expect(typeof data.old_pin == 'string');
26 browserTest.expect(data.new_pin != data.old_pin, 26 browserTest.expect(data.new_pin != data.old_pin,
27 'The new PIN and the old PIN cannot be the same'); 27 'The new PIN and the old PIN cannot be the same');
28 28
29 this.changePIN_(data.new_pin).then( 29 this.changePIN_(data.new_pin).then(
30 this.connect_.bind(this) 30 browserTest.connectMe2Me
31 ).then( 31 ).then(
32 this.enterPIN_.bind(this, data.old_pin, true /* expectError*/) 32 this.enterPIN_.bind(this, data.old_pin, true /* expectError*/)
33 ).then( 33 ).then(
34 // Sleep for two seconds to allow for the login backoff logic to reset. 34 // Sleep for two seconds to allow for the login backoff logic to reset.
35 base.Promise.sleep.bind(null, LOGIN_BACKOFF_WAIT) 35 base.Promise.sleep.bind(null, LOGIN_BACKOFF_WAIT)
36 ).then( 36 ).then(
37 this.connect_.bind(this) 37 browserTest.connectMe2Me
38 ).then( 38 ).then(
39 this.enterPIN_.bind(this, data.new_pin, false /* expectError*/) 39 this.enterPIN_.bind(this, data.new_pin, false /* expectError*/)
40 ).then( 40 ).then(
41 // Clean up the test by disconnecting and changing the PIN back 41 // Clean up the test by disconnecting and changing the PIN back
42 this.disconnect_.bind(this) 42 this.disconnect_.bind(this)
43 ).then( 43 ).then(
44 // The PIN must be restored regardless of success or failure. 44 // The PIN must be restored regardless of success or failure.
45 this.changePIN_.bind(this, data.old_pin), 45 this.changePIN_.bind(this, data.old_pin),
46 this.changePIN_.bind(this, data.old_pin) 46 this.changePIN_.bind(this, data.old_pin)
47 ).then( 47 ).then(
(...skipping 17 matching lines...) Expand all
65 browserTest.clickOnControl('daemon-pin-ok'); 65 browserTest.clickOnControl('daemon-pin-ok');
66 return onSetupDone; 66 return onSetupDone;
67 }).then(function() { 67 }).then(function() {
68 browserTest.clickOnControl('host-config-done-dismiss'); 68 browserTest.clickOnControl('host-config-done-dismiss');
69 // On Linux, we restart the host after changing the PIN, need to sleep 69 // On Linux, we restart the host after changing the PIN, need to sleep
70 // for ten seconds before the host is ready for connection. 70 // for ten seconds before the host is ready for connection.
71 return base.Promise.sleep(HOST_RESTART_WAIT); 71 return base.Promise.sleep(HOST_RESTART_WAIT);
72 }); 72 });
73 }; 73 };
74 74
75 browserTest.Update_PIN.prototype.connect_ = function() {
76 browserTest.clickOnControl('this-host-connect');
77 return browserTest.onUIMode(remoting.AppMode.CLIENT_PIN_PROMPT);
78 };
79
80 browserTest.Update_PIN.prototype.disconnect_ = function() { 75 browserTest.Update_PIN.prototype.disconnect_ = function() {
81 var AppMode = remoting.AppMode; 76 var AppMode = remoting.AppMode;
82 77
83 remoting.disconnect(); 78 remoting.disconnect();
84 79
85 return browserTest.onUIMode(AppMode.CLIENT_SESSION_FINISHED_ME2ME) 80 return browserTest.onUIMode(AppMode.CLIENT_SESSION_FINISHED_ME2ME)
86 .then(function() { 81 .then(function() {
87 var onHome = browserTest.onUIMode(AppMode.HOME); 82 var onHome = browserTest.onUIMode(AppMode.HOME);
88 browserTest.clickOnControl('client-finished-me2me-button'); 83 browserTest.clickOnControl('client-finished-me2me-button');
89 return onHome; 84 return onHome;
(...skipping 10 matching lines...) Expand all
100 return base.Promise.sleep(CONNECT_PIN_WAIT).then(function() { 95 return base.Promise.sleep(CONNECT_PIN_WAIT).then(function() {
101 browserTest.clickOnControl('pin-connect-button'); 96 browserTest.clickOnControl('pin-connect-button');
102 }).then(function() { 97 }).then(function() {
103 if (expectError) { 98 if (expectError) {
104 return browserTest.expectMe2MeError(remoting.Error.INVALID_ACCESS_CODE); 99 return browserTest.expectMe2MeError(remoting.Error.INVALID_ACCESS_CODE);
105 } else { 100 } else {
106 return browserTest.expectMe2MeConnected(); 101 return browserTest.expectMe2MeConnected();
107 } 102 }
108 }); 103 });
109 }; 104 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698