| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/ui/webui/sync_setup_handler.h" | 5 #include "chrome/browser/ui/webui/sync_setup_handler.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 const char kTestCaptchaImageUrl[] = "http://pizzamyheart/image"; | 51 const char kTestCaptchaImageUrl[] = "http://pizzamyheart/image"; |
| 52 const char kTestCaptchaUnlockUrl[] = "http://pizzamyheart/unlock"; | 52 const char kTestCaptchaUnlockUrl[] = "http://pizzamyheart/unlock"; |
| 53 | 53 |
| 54 // Returns a ModelTypeSet with all user selectable types set. | 54 // Returns a ModelTypeSet with all user selectable types set. |
| 55 syncer::ModelTypeSet GetAllTypes() { | 55 syncer::ModelTypeSet GetAllTypes() { |
| 56 return syncer::UserSelectableTypes(); | 56 return syncer::UserSelectableTypes(); |
| 57 } | 57 } |
| 58 | 58 |
| 59 enum SyncAllDataConfig { | 59 enum SyncAllDataConfig { |
| 60 SYNC_ALL_DATA, | 60 SYNC_ALL_DATA, |
| 61 CHOOSE_WHAT_TO_SYNC | 61 CHOOSE_WHAT_TO_SYNC, |
| 62 SYNC_NOTHING |
| 62 }; | 63 }; |
| 63 | 64 |
| 64 enum EncryptAllConfig { | 65 enum EncryptAllConfig { |
| 65 ENCRYPT_ALL_DATA, | 66 ENCRYPT_ALL_DATA, |
| 66 ENCRYPT_PASSWORDS | 67 ENCRYPT_PASSWORDS |
| 67 }; | 68 }; |
| 68 | 69 |
| 69 // Create a json-format string with the key/value pairs appropriate for a call | 70 // Create a json-format string with the key/value pairs appropriate for a call |
| 70 // to HandleConfigure(). If |extra_values| is non-null, then the values from | 71 // to HandleConfigure(). If |extra_values| is non-null, then the values from |
| 71 // the passed dictionary are added to the json. | 72 // the passed dictionary are added to the json. |
| 72 std::string GetConfiguration(const DictionaryValue* extra_values, | 73 std::string GetConfiguration(const DictionaryValue* extra_values, |
| 73 SyncAllDataConfig sync_all, | 74 SyncAllDataConfig sync_all, |
| 74 syncer::ModelTypeSet types, | 75 syncer::ModelTypeSet types, |
| 75 const std::string& passphrase, | 76 const std::string& passphrase, |
| 76 EncryptAllConfig encrypt_all) { | 77 EncryptAllConfig encrypt_all) { |
| 77 DictionaryValue result; | 78 DictionaryValue result; |
| 78 if (extra_values) | 79 if (extra_values) |
| 79 result.MergeDictionary(extra_values); | 80 result.MergeDictionary(extra_values); |
| 80 result.SetBoolean("syncAllDataTypes", sync_all == SYNC_ALL_DATA); | 81 result.SetBoolean("syncAllDataTypes", sync_all == SYNC_ALL_DATA); |
| 82 result.SetBoolean("syncNothing", sync_all == SYNC_NOTHING); |
| 81 result.SetBoolean("encryptAllData", encrypt_all == ENCRYPT_ALL_DATA); | 83 result.SetBoolean("encryptAllData", encrypt_all == ENCRYPT_ALL_DATA); |
| 82 result.SetBoolean("usePassphrase", !passphrase.empty()); | 84 result.SetBoolean("usePassphrase", !passphrase.empty()); |
| 83 if (!passphrase.empty()) | 85 if (!passphrase.empty()) |
| 84 result.SetString("passphrase", passphrase); | 86 result.SetString("passphrase", passphrase); |
| 85 // Add all of our data types. | 87 // Add all of our data types. |
| 86 result.SetBoolean("appsSynced", types.Has(syncer::APPS)); | 88 result.SetBoolean("appsSynced", types.Has(syncer::APPS)); |
| 87 result.SetBoolean("autofillSynced", types.Has(syncer::AUTOFILL)); | 89 result.SetBoolean("autofillSynced", types.Has(syncer::AUTOFILL)); |
| 88 result.SetBoolean("bookmarksSynced", types.Has(syncer::BOOKMARKS)); | 90 result.SetBoolean("bookmarksSynced", types.Has(syncer::BOOKMARKS)); |
| 89 result.SetBoolean("extensionsSynced", types.Has(syncer::EXTENSIONS)); | 91 result.SetBoolean("extensionsSynced", types.Has(syncer::EXTENSIONS)); |
| 90 result.SetBoolean("passwordsSynced", types.Has(syncer::PASSWORDS)); | 92 result.SetBoolean("passwordsSynced", types.Has(syncer::PASSWORDS)); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 CheckBool(dictionary, "editableUser", user_is_editable); | 177 CheckBool(dictionary, "editableUser", user_is_editable); |
| 176 } | 178 } |
| 177 | 179 |
| 178 // Checks to make sure that the values stored in |dictionary| match the values | 180 // Checks to make sure that the values stored in |dictionary| match the values |
| 179 // expected by the showSyncSetupPage() JS function for a given set of data | 181 // expected by the showSyncSetupPage() JS function for a given set of data |
| 180 // types. | 182 // types. |
| 181 void CheckConfigDataTypeArguments(DictionaryValue* dictionary, | 183 void CheckConfigDataTypeArguments(DictionaryValue* dictionary, |
| 182 SyncAllDataConfig config, | 184 SyncAllDataConfig config, |
| 183 syncer::ModelTypeSet types) { | 185 syncer::ModelTypeSet types) { |
| 184 CheckBool(dictionary, "syncAllDataTypes", config == SYNC_ALL_DATA); | 186 CheckBool(dictionary, "syncAllDataTypes", config == SYNC_ALL_DATA); |
| 187 CheckBool(dictionary, "syncNothing", config == SYNC_NOTHING); |
| 185 CheckBool(dictionary, "appsSynced", types.Has(syncer::APPS)); | 188 CheckBool(dictionary, "appsSynced", types.Has(syncer::APPS)); |
| 186 CheckBool(dictionary, "autofillSynced", types.Has(syncer::AUTOFILL)); | 189 CheckBool(dictionary, "autofillSynced", types.Has(syncer::AUTOFILL)); |
| 187 CheckBool(dictionary, "bookmarksSynced", types.Has(syncer::BOOKMARKS)); | 190 CheckBool(dictionary, "bookmarksSynced", types.Has(syncer::BOOKMARKS)); |
| 188 CheckBool(dictionary, "extensionsSynced", types.Has(syncer::EXTENSIONS)); | 191 CheckBool(dictionary, "extensionsSynced", types.Has(syncer::EXTENSIONS)); |
| 189 CheckBool(dictionary, "passwordsSynced", types.Has(syncer::PASSWORDS)); | 192 CheckBool(dictionary, "passwordsSynced", types.Has(syncer::PASSWORDS)); |
| 190 CheckBool(dictionary, "preferencesSynced", types.Has(syncer::PREFERENCES)); | 193 CheckBool(dictionary, "preferencesSynced", types.Has(syncer::PREFERENCES)); |
| 191 CheckBool(dictionary, "tabsSynced", types.Has(syncer::PROXY_TABS)); | 194 CheckBool(dictionary, "tabsSynced", types.Has(syncer::PROXY_TABS)); |
| 192 CheckBool(dictionary, "themesSynced", types.Has(syncer::THEMES)); | 195 CheckBool(dictionary, "themesSynced", types.Has(syncer::THEMES)); |
| 193 CheckBool(dictionary, "typedUrlsSynced", types.Has(syncer::TYPED_URLS)); | 196 CheckBool(dictionary, "typedUrlsSynced", types.Has(syncer::TYPED_URLS)); |
| 194 } | 197 } |
| (...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 917 .WillRepeatedly(Return(false)); | 920 .WillRepeatedly(Return(false)); |
| 918 SetupInitializedProfileSyncService(); | 921 SetupInitializedProfileSyncService(); |
| 919 EXPECT_CALL(*mock_pss_, OnUserChoseDatatypes(true, _)); | 922 EXPECT_CALL(*mock_pss_, OnUserChoseDatatypes(true, _)); |
| 920 handler_->HandleConfigure(&list_args); | 923 handler_->HandleConfigure(&list_args); |
| 921 | 924 |
| 922 // Ensure that we navigated to the "done" state since we don't need a | 925 // Ensure that we navigated to the "done" state since we don't need a |
| 923 // passphrase. | 926 // passphrase. |
| 924 ExpectDone(); | 927 ExpectDone(); |
| 925 } | 928 } |
| 926 | 929 |
| 930 TEST_P(SyncSetupHandlerTest, TestSyncNothing) { |
| 931 std::string args = GetConfiguration( |
| 932 NULL, SYNC_NOTHING, GetAllTypes(), std::string(), ENCRYPT_PASSWORDS); |
| 933 ListValue list_args; |
| 934 list_args.Append(new StringValue(args)); |
| 935 EXPECT_CALL(*mock_pss_, DisableForUser()); |
| 936 SetupInitializedProfileSyncService(); |
| 937 handler_->HandleConfigure(&list_args); |
| 938 |
| 939 // Ensure that the sync setup dialog was closed. |
| 940 const TestWebUI::CallData& data = web_ui_.call_data()[0]; |
| 941 EXPECT_EQ("OptionsPage.closeOverlay", data.function_name); |
| 942 } |
| 943 |
| 927 TEST_P(SyncSetupHandlerTest, TurnOnEncryptAll) { | 944 TEST_P(SyncSetupHandlerTest, TurnOnEncryptAll) { |
| 928 std::string args = GetConfiguration( | 945 std::string args = GetConfiguration( |
| 929 NULL, SYNC_ALL_DATA, GetAllTypes(), std::string(), ENCRYPT_ALL_DATA); | 946 NULL, SYNC_ALL_DATA, GetAllTypes(), std::string(), ENCRYPT_ALL_DATA); |
| 930 ListValue list_args; | 947 ListValue list_args; |
| 931 list_args.Append(new StringValue(args)); | 948 list_args.Append(new StringValue(args)); |
| 932 EXPECT_CALL(*mock_pss_, IsPassphraseRequiredForDecryption()) | 949 EXPECT_CALL(*mock_pss_, IsPassphraseRequiredForDecryption()) |
| 933 .WillRepeatedly(Return(false)); | 950 .WillRepeatedly(Return(false)); |
| 934 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 951 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 935 .WillRepeatedly(Return(false)); | 952 .WillRepeatedly(Return(false)); |
| 936 SetupInitializedProfileSyncService(); | 953 SetupInitializedProfileSyncService(); |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1306 ExpectConfig(); | 1323 ExpectConfig(); |
| 1307 const TestWebUI::CallData& data = web_ui_.call_data()[0]; | 1324 const TestWebUI::CallData& data = web_ui_.call_data()[0]; |
| 1308 DictionaryValue* dictionary; | 1325 DictionaryValue* dictionary; |
| 1309 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary)); | 1326 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary)); |
| 1310 CheckBool(dictionary, "encryptAllData", true); | 1327 CheckBool(dictionary, "encryptAllData", true); |
| 1311 } | 1328 } |
| 1312 | 1329 |
| 1313 INSTANTIATE_TEST_CASE_P(SyncSetupHandlerTestWithParam, | 1330 INSTANTIATE_TEST_CASE_P(SyncSetupHandlerTestWithParam, |
| 1314 SyncSetupHandlerTest, | 1331 SyncSetupHandlerTest, |
| 1315 Values(true, false)); | 1332 Values(true, false)); |
| OLD | NEW |