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..dc978d3aaac64df52ab329b7e593a906601c57c1 |
--- /dev/null |
+++ b/chrome/browser/ui/webui/sync_setup_browsertest.js |
@@ -0,0 +1,107 @@ |
+// 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. |
+ |
+// TODO(scr) remove this debugging tool. |
James Hawkins
2011/11/09 17:15:56
Time to remove this.
Sheridan Rawlins
2011/11/09 23:51:00
Done.
|
+var runMessageLoop = false; |
+if (runMessageLoop) |
+ GEN('#include "chrome/test/base/ui_test_utils.h"'); |
+ |
+/** |
+ * 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', |
+ ]); |
+ }, |
+ |
+ /** |
+ * Debugging tool to see what's going on. |
+ * TODO(scr) remove this code. |
+ */ |
+ testGenPostamble: function() { |
+ if (runMessageLoop) |
+ GEN('ui_test_utils::RunMessageLoop();'); |
+ }, |
+ |
+ /** |
+ * Verify starting point is not synced. |
James Hawkins
2011/11/09 17:15:56
Verifies
Sheridan Rawlins
2011/11/09 23:51:00
Done.
|
+ */ |
+ verifyUnsynced: function() { |
+ assertFalse(PersonalOptions.getInstance().syncSetupCompleted); |
+ }, |
+ |
+ /** |
+ * Click the "Sign in to Chrome" button. |
James Hawkins
2011/11/09 17:15:56
Clicks
Sheridan Rawlins
2011/11/09 23:51:00
Done.
|
+ */ |
+ startSyncing: function() { |
+ var startStopSyncButton = $('start-stop-sync'); |
+ assertNotEquals(null, startStopSyncButton); |
+ this.mockHandler.expects(once()).SyncSetupShowSetupUI(). |
+ will(callFunction(function() { |
+ OptionsPage.navigateToPage('syncSetup'); |
+ })); |
+ |
+ this.mockHandler.expects(once()).SyncSetupAttachHandler(). |
+ will(callFunction(function() { |
+ SyncSetupOverlay.showSyncSetupPage( |
+ 'login', { |
+ user: '', |
+ error: 0, |
+ editable_user: true, |
+ }); |
+ })); |
+ startStopSyncButton.click(); |
+ }, |
+ |
+ gaiaLogin: function() { |
James Hawkins
2011/11/09 17:15:56
Document the method.
Sheridan Rawlins
2011/11/09 23:51:00
Moved into test; moot.
|
+ // Find the DOM objects on the page. |
+ 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 |
+ this.mockHandler.expects(once()).SyncSetupSubmitAuth(NOT_NULL). |
+ will(callFunction(function() { |
+ SyncSetupOverlay.showSuccessAndClose(); |
+ })); |
+ this.mockHandler.expects(once()).SyncSetupDidClosePage(); |
+ |
+ // set the email & password, then sign in. |
+ gaiaEmail.value = 'foo@bar.baz'; |
+ gaiaPasswd.value = 'foo@bar.baz'; |
+ signInButton.click(); |
+ }, |
+}; |
+ |
+// Verify that initial state is unsynced, start syncing, then login. |
+TEST_F('SyncSetupWebUITest', 'VerifySignIn', function() { |
James Hawkins
2011/11/09 17:15:56
This test method looks weird...it just calls other
Sheridan Rawlins
2011/11/09 23:51:00
I had the feeling that further tests might need to
|
+ this.verifyUnsynced(); |
+ this.startSyncing(); |
+ this.gaiaLogin(); |
+}); |
+ |