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

Side by Side Diff: chrome/browser/ui/webui/sync_setup_browsertest.js

Issue 8503003: Seed test for SyncUI: sign in successfully with mocks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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
« no previous file with comments | « no previous file | chrome/chrome_tests.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 // TODO(scr) remove this debugging tool.
Sheridan Rawlins 2011/11/08 06:58:14 I plan on removing this before commit, but it is u
6 var runMessageLoop = false;
7 if (runMessageLoop)
8 GEN('#include "chrome/test/base/ui_test_utils.h"');
9
10 /**
11 * Test fixture for sync setup WebUI testing.
12 * @constructor
13 * @extends {testing.Test}
14 */
15 function SyncSetupWebUITest() {}
16
17 SyncSetupWebUITest.prototype = {
18 __proto__: testing.Test.prototype,
19
20 /**
21 * Browse to personal options.
22 **/
23 browsePreload: 'chrome://settings/personal',
24
25 /** @inheritDoc */
26 preLoad: function() {
27
James Hawkins 2011/11/08 17:08:37 Inconsistency: Blank line at beginning of method b
Sheridan Rawlins 2011/11/08 21:32:04 Done.
28 function MockSyncSetupHandler() {}
29
30 MockSyncSetupHandler.prototype = {
31 stopSyncing: function() {},
32 SyncSetupDidClosePage: function() {},
33 SyncSetupSubmitAuth: function() {},
34 SyncSetupConfigure: function() {},
35 SyncSetupPassphrase: function() {},
36 SyncSetupPassphraseCancel: function() {},
37 SyncSetupAttachHandler: function() {},
38 SyncSetupShowErrorUI: function() {},
39 SyncSetupShowSetupUI: function() {},
Dan Beam 2011/11/08 21:54:48 Do we do this alot? Seems like we would. If we d
Sheridan Rawlins 2011/11/09 02:44:22 Thanks - cool suggestion to make it easier (& memo
40 };
41 var mockHandler = this.mockHandler = mock(MockSyncSetupHandler);
James Hawkins 2011/11/08 17:08:37 What's with this construct? var mockHandler = thi
Sheridan Rawlins 2011/11/08 21:32:04 It's useful in other tests which set up several st
42
43 // Register mock as a handler of the chrome.send messages.
44 registerMockMessageCallbacks(mockHandler, MockSyncSetupHandler);
45 },
46
47 /**
48 * Debugging tool to see what's going on.
49 * TODO(scr) remove this code.
50 */
51 testGenPostamble: function() {
52 if (runMessageLoop)
53 GEN('ui_test_utils::RunMessageLoop();');
54 },
55
56 /**
57 * Verify starting point is not synced.
58 */
59 verifyUnsynced: function() {
60 var customizeSyncButton = $('customize-sync');
61 assertNotEquals(null, customizeSyncButton);
62 assertTrue(customizeSyncButton.hidden);
James Hawkins 2011/11/08 17:08:37 Testing wether elemenets are hidden or not (i.e.,
Sheridan Rawlins 2011/11/08 21:32:04 How 'bout checking syncSetupCompleted is false? D
63 },
64
65 /**
66 * Click the "Sign in to Chrome" button.
67 */
68 startSyncing: function() {
69 var startStopSyncButton = $('start-stop-sync');
James Hawkins 2011/11/08 17:08:37 I'm also hesitant to have tests reference element
Sheridan Rawlins 2011/11/08 21:32:04 Done.
70 assertNotEquals(null, startStopSyncButton);
71 this.mockHandler.expects(once()).SyncSetupShowSetupUI().
72 will(callFunction(function() {
73 OptionsPage.navigateToPage('syncSetup');
74 }));
75
76 this.mockHandler.expects(once()).SyncSetupAttachHandler().
77 will(callFunction(function() {
78 SyncSetupOverlay.showSyncSetupPage(
79 'login', {
80 user: '',
81 error: 0,
82 editable_user: true,
83 });
84 }));
85 startStopSyncButton.click();
86 },
87
88 gaiaLogin: function() {
89 // Find the DOM objects on the page.
90 var gaiaEmail = $('gaia-email');
91 assertNotEquals(null, gaiaEmail);
92 var gaiaPasswd = $('gaia-passwd');
93 assertNotEquals(null, gaiaPasswd);
94 var signIn = $('sign-in');
95 assertNotEquals(null, signIn);
96
97 // Set up mock expectations
98 this.mockHandler.expects(once()).SyncSetupSubmitAuth(NOT_NULL).
99 will(callFunction(function() {
100 SyncSetupOverlay.showSuccessAndClose();
101 }));
102 this.mockHandler.expects(once()).SyncSetupDidClosePage();
103
104 // set the email & password, then sign in.
105 gaiaEmail.value = 'foo@bar.baz';
106 gaiaPasswd.value = 'foo@bar.baz';
107 signIn.click();
108 },
109 };
110
111 // Verify that initial state is unsynced, start syncing, then login.
112 TEST_F('SyncSetupWebUITest', 'VerifySignIn', function() {
113 this.verifyUnsynced();
114 this.startSyncing();
115 this.gaiaLogin();
116 });
117
OLDNEW
« no previous file with comments | « no previous file | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698