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

Unified Diff: chrome/browser/sync/sync_setup_wizard_unittest.cc

Issue 2880001: HTML sync setup UI. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Created 10 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync/sync_setup_wizard.cc ('k') | chrome/browser/sync/syncable/model_type.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/sync_setup_wizard_unittest.cc
diff --git a/chrome/browser/sync/sync_setup_wizard_unittest.cc b/chrome/browser/sync/sync_setup_wizard_unittest.cc
index ca63f9746d16ed88d0840d6d656b8361d06e3b3d..a80c6c5cbce9c76ce00b2f05b301587ca843e1c3 100644
--- a/chrome/browser/sync/sync_setup_wizard_unittest.cc
+++ b/chrome/browser/sync/sync_setup_wizard_unittest.cc
@@ -38,6 +38,7 @@ class ProfileSyncServiceForWizardTest : public ProfileSyncService {
user_accepted_merge_and_sync_(false),
user_cancelled_dialog_(false) {
RegisterPreferences();
+ ResetTestStats();
}
virtual ~ProfileSyncServiceForWizardTest() { }
@@ -49,6 +50,13 @@ class ProfileSyncServiceForWizardTest : public ProfileSyncService {
password_ = password;
captcha_ = captcha;
}
+
+ virtual void OnUserChoseDatatypes(bool sync_everything,
+ const syncable::ModelTypeSet& chosen_types) {
+ user_chose_data_types_ = true;
+ chosen_data_types_ = chosen_types;
+ }
+
virtual void OnUserAcceptedMergeAndSync() {
user_accepted_merge_and_sync_ = true;
}
@@ -72,6 +80,9 @@ class ProfileSyncServiceForWizardTest : public ProfileSyncService {
captcha_.clear();
user_accepted_merge_and_sync_ = false;
user_cancelled_dialog_ = false;
+ user_chose_data_types_ = false;
+ keep_everything_synced_ = false;
+ chosen_data_types_.clear();
}
std::string username_;
@@ -79,6 +90,9 @@ class ProfileSyncServiceForWizardTest : public ProfileSyncService {
std::string captcha_;
bool user_accepted_merge_and_sync_;
bool user_cancelled_dialog_;
+ bool user_chose_data_types_;
+ bool keep_everything_synced_;
+ syncable::ModelTypeSet chosen_data_types_;
private:
chrome_common_net::FakeNetworkChangeNotifierThread
@@ -249,7 +263,10 @@ TEST_F(SyncSetupWizardTest, InitialStepLogin) {
EXPECT_EQ(SyncSetupWizard::GAIA_LOGIN, test_window_->flow()->current_state_);
dialog_args.Clear();
SyncSetupFlow::GetArgsForGaiaLogin(service_, &dialog_args);
- EXPECT_EQ(4U, dialog_args.size());
+ EXPECT_EQ(5U, dialog_args.size());
+ std::string iframe_to_show;
+ dialog_args.GetString(L"iframeToShow", &iframe_to_show);
+ EXPECT_EQ("login", iframe_to_show);
std::string actual_user;
dialog_args.GetString(L"user", &actual_user);
EXPECT_EQ(kTestUser, actual_user);
@@ -264,7 +281,9 @@ TEST_F(SyncSetupWizardTest, InitialStepLogin) {
service_->set_auth_state(kTestUser, captcha_error);
wizard_->Step(SyncSetupWizard::GAIA_LOGIN);
SyncSetupFlow::GetArgsForGaiaLogin(service_, &dialog_args);
- EXPECT_EQ(4U, dialog_args.size());
+ EXPECT_EQ(5U, dialog_args.size());
+ dialog_args.GetString(L"iframeToShow", &iframe_to_show);
+ EXPECT_EQ("login", iframe_to_show);
std::string captcha_url;
dialog_args.GetString(L"captchaUrl", &captcha_url);
EXPECT_EQ(kTestCaptchaUrl, GURL(captcha_url).spec());
@@ -277,15 +296,50 @@ TEST_F(SyncSetupWizardTest, InitialStepLogin) {
wizard_->Step(SyncSetupWizard::GAIA_SUCCESS);
EXPECT_TRUE(wizard_->IsVisible());
EXPECT_FALSE(test_window_->TestAndResetWasShowHTMLDialogCalled());
- EXPECT_EQ(SyncSetupWizard::GAIA_SUCCESS,
+ // In a non-discrete run, GAIA_SUCCESS immediately transitions you to
+ // CHOOSE_DATA_TYPES.
+ EXPECT_EQ(SyncSetupWizard::CHOOSE_DATA_TYPES,
test_window_->flow()->current_state_);
+ // That's all we're testing here, just move on to DONE. We'll test the
+ // "choose data types" scenarios elsewhere.
wizard_->Step(SyncSetupWizard::DONE); // No merge and sync.
EXPECT_TRUE(wizard_->IsVisible());
EXPECT_FALSE(test_window_->TestAndResetWasShowHTMLDialogCalled());
EXPECT_EQ(SyncSetupWizard::DONE, test_window_->flow()->current_state_);
}
+TEST_F(SyncSetupWizardTest, ChooseDataTypesSetsPrefs) {
+ SKIP_TEST_ON_MACOSX();
+ wizard_->Step(SyncSetupWizard::GAIA_LOGIN);
+ wizard_->Step(SyncSetupWizard::CHOOSE_DATA_TYPES);
+
+ ListValue data_type_choices_value;
+ std::string data_type_choices = "{\"keepEverythingSynced\":false,";
+ data_type_choices += "\"syncBookmarks\":true,\"syncPreferences\":true,";
+ data_type_choices += "\"syncThemes\":false,\"syncPasswords\":false,";
+ data_type_choices += "\"syncAutofill\":false,\"syncExtensions\":false,";
+ data_type_choices += "\"syncTypedUrls\":true}";
+ data_type_choices_value.Append(new StringValue(data_type_choices));
+
+ // Simulate the user choosing data types; bookmarks and prefs are on, the rest
+ // are off.
+ test_window_->flow()->flow_handler_->HandleChooseDataTypes(
+ &data_type_choices_value);
+ EXPECT_TRUE(wizard_->IsVisible());
+ EXPECT_TRUE(test_window_->TestAndResetWasShowHTMLDialogCalled());
+ EXPECT_FALSE(service_->keep_everything_synced_);
+ EXPECT_EQ(service_->chosen_data_types_.count(syncable::BOOKMARKS), 1U);
+ EXPECT_EQ(service_->chosen_data_types_.count(syncable::PREFERENCES), 1U);
+ EXPECT_EQ(service_->chosen_data_types_.count(syncable::THEMES), 0U);
+ EXPECT_EQ(service_->chosen_data_types_.count(syncable::PASSWORDS), 0U);
+ EXPECT_EQ(service_->chosen_data_types_.count(syncable::AUTOFILL), 0U);
+ EXPECT_EQ(service_->chosen_data_types_.count(syncable::EXTENSIONS), 0U);
+ EXPECT_EQ(service_->chosen_data_types_.count(syncable::TYPED_URLS), 1U);
+
+ test_window_->CloseDialog();
+}
+
TEST_F(SyncSetupWizardTest, DialogCancelled) {
SKIP_TEST_ON_MACOSX();
wizard_->Step(SyncSetupWizard::GAIA_LOGIN);
@@ -378,7 +432,10 @@ TEST_F(SyncSetupWizardTest, DiscreteRun) {
wizard_->Step(SyncSetupWizard::GAIA_LOGIN);
EXPECT_TRUE(wizard_->IsVisible());
SyncSetupFlow::GetArgsForGaiaLogin(service_, &dialog_args);
- EXPECT_EQ(4U, dialog_args.size());
+ EXPECT_EQ(5U, dialog_args.size());
+ std::string iframe_to_show;
+ dialog_args.GetString(L"iframeToShow", &iframe_to_show);
+ EXPECT_EQ("login", iframe_to_show);
std::string actual_user;
dialog_args.GetString(L"user", &actual_user);
EXPECT_EQ(kTestUser, actual_user);
« no previous file with comments | « chrome/browser/sync/sync_setup_wizard.cc ('k') | chrome/browser/sync/syncable/model_type.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698