Index: chrome/browser/ui/webui/sync_setup_browsertest.js |
diff --git a/chrome/browser/ui/webui/sync_setup_browsertest.js b/chrome/browser/ui/webui/sync_setup_browsertest.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dd1e3b43684355bd5c2c21439ccc20bae9bb465a |
--- /dev/null |
+++ b/chrome/browser/ui/webui/sync_setup_browsertest.js |
@@ -0,0 +1,90 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+/** |
+ * Test fixture for sync setup WebUI testing. |
+ * @constructor |
+ * @extends {testing.Test} |
+ */ |
+function SyncSetupWebUITest() {} |
+ |
+SyncSetupWebUITest.prototype = { |
+ __proto__: testing.Test.prototype, |
+ |
+ /** |
+ * Browse to personal options. |
+ **/ |
+ browsePreload: 'chrome://settings/personal', |
+ |
+ /** @inheritDoc */ |
+ preLoad: function() { |
+ this.makeAndRegisterMockHandler(['stopSyncing', |
+ 'SyncSetupDidClosePage', |
+ 'SyncSetupSubmitAuth', |
+ 'SyncSetupConfigure', |
+ 'SyncSetupPassphrase', |
+ 'SyncSetupPassphraseCancel', |
+ 'SyncSetupAttachHandler', |
+ 'SyncSetupShowErrorUI', |
+ 'SyncSetupShowSetupUI', |
+ ]); |
+ }, |
+ |
+ /** |
+ * Verifies starting point is not synced. |
+ */ |
+ verifyUnsynced: function() { |
James Hawkins
2011/11/10 00:24:43
This helper method only makes one call. Just inlin
Sheridan Rawlins
2011/11/10 02:02:12
Done.
|
+ assertFalse(PersonalOptions.getInstance().syncSetupCompleted); |
+ }, |
+ |
+ /** |
+ * Clicks the "Sign in to Chrome" button. |
+ */ |
+ startSyncing: function() { |
+ var startStopSyncButton = $('start-stop-sync'); |
James Hawkins
2011/11/10 00:24:43
Tests should not be querying elements using ID.
Sheridan Rawlins
2011/11/10 02:02:12
Done.
|
+ assertNotEquals(null, startStopSyncButton); |
+ this.mockHandler.expects(once()).SyncSetupShowSetupUI(). |
+ will(callFunction(function() { |
+ OptionsPage.navigateToPage('syncSetup'); |
James Hawkins
2011/11/10 00:24:43
Two space indentation.
Sheridan Rawlins
2011/11/10 02:02:12
Done.
|
+ })); |
+ |
+ this.mockHandler.expects(once()).SyncSetupAttachHandler(). |
+ will(callFunction(function() { |
+ SyncSetupOverlay.showSyncSetupPage( |
+ 'login', { |
+ user: '', |
+ error: 0, |
+ editable_user: true, |
+ }); |
+ })); |
+ startStopSyncButton.click(); |
+ }, |
+}; |
+ |
+// Verify that initial state is unsynced, start syncing, then login. |
+TEST_F('SyncSetupWebUITest', 'VerifySignIn', function() { |
+ this.verifyUnsynced(); |
+ this.startSyncing(); |
+ |
+ // Find the DOM objects on the page. |
James Hawkins
2011/11/10 00:24:43
s/Find/Verify/
Sheridan Rawlins
2011/11/10 02:02:12
Done.
|
+ var gaiaEmail = SyncSetupOverlay.getLoginEmail(); |
+ assertNotEquals(null, gaiaEmail); |
+ var gaiaPasswd = SyncSetupOverlay.getLoginPasswd(); |
+ assertNotEquals(null, gaiaPasswd); |
+ var signInButton = SyncSetupOverlay.getSignInButton(); |
+ assertNotEquals(null, signInButton); |
+ |
+ // Set up mock expectations |
James Hawkins
2011/11/10 00:24:43
period at end of sentence; however, this particula
Sheridan Rawlins
2011/11/10 02:02:12
Done.
|
+ this.mockHandler.expects(once()).SyncSetupSubmitAuth(NOT_NULL). |
+ will(callFunction(function() { |
+ SyncSetupOverlay.showSuccessAndClose(); |
+ })); |
+ this.mockHandler.expects(once()).SyncSetupDidClosePage(); |
+ |
+ // set the email & password, then sign in. |
James Hawkins
2011/11/10 00:24:43
Capitalize sentence.
Sheridan Rawlins
2011/11/10 02:02:12
Done.
|
+ gaiaEmail.value = 'foo@bar.baz'; |
+ gaiaPasswd.value = 'foo@bar.baz'; |
+ signInButton.click(); |
+}); |
+ |