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

Side by Side Diff: chrome/browser/ui/webui/sync_setup_handler_unittest.cc

Issue 10020028: Merge 130722 - On ChromeOS, the user is always signed in and we should not (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1084/src/
Patch Set: Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/webui/sync_setup_handler.cc ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 } 206 }
207 207
208 scoped_ptr<Profile> profile_; 208 scoped_ptr<Profile> profile_;
209 ProfileSyncServiceMock* mock_pss_; 209 ProfileSyncServiceMock* mock_pss_;
210 GoogleServiceAuthError error_; 210 GoogleServiceAuthError error_;
211 SigninManagerMock* mock_signin_; 211 SigninManagerMock* mock_signin_;
212 TestWebUI web_ui_; 212 TestWebUI web_ui_;
213 scoped_ptr<TestingSyncSetupHandler> handler_; 213 scoped_ptr<TestingSyncSetupHandler> handler_;
214 }; 214 };
215 215
216 #if !defined(OS_CHROMEOS)
216 static void CheckInt(const DictionaryValue* dictionary, 217 static void CheckInt(const DictionaryValue* dictionary,
217 const std::string& key, 218 const std::string& key,
218 int expected_value) { 219 int expected_value) {
219 int actual_value; 220 int actual_value;
220 EXPECT_TRUE(dictionary->GetInteger(key, &actual_value)) << 221 EXPECT_TRUE(dictionary->GetInteger(key, &actual_value)) <<
221 "Did not expect to find value for " << key;; 222 "Did not expect to find value for " << key;;
222 EXPECT_EQ(actual_value, expected_value) << 223 EXPECT_EQ(actual_value, expected_value) <<
223 "Mismatch found for " << key;; 224 "Mismatch found for " << key;;
224 } 225 }
226 #endif
225 227
226 static void CheckBool(const DictionaryValue* dictionary, 228 static void CheckBool(const DictionaryValue* dictionary,
227 const std::string& key, 229 const std::string& key,
228 bool expected_value, 230 bool expected_value,
229 bool is_optional) { 231 bool is_optional) {
230 if (is_optional && !expected_value) { 232 if (is_optional && !expected_value) {
231 EXPECT_FALSE(dictionary->HasKey(key)) << 233 EXPECT_FALSE(dictionary->HasKey(key)) <<
232 "Did not expect to find value for " << key;; 234 "Did not expect to find value for " << key;;
233 } else { 235 } else {
234 bool actual_value; 236 bool actual_value;
235 EXPECT_TRUE(dictionary->GetBoolean(key, &actual_value)) << 237 EXPECT_TRUE(dictionary->GetBoolean(key, &actual_value)) <<
236 "No value found for " << key; 238 "No value found for " << key;
237 EXPECT_EQ(actual_value, expected_value) << 239 EXPECT_EQ(actual_value, expected_value) <<
238 "Mismatch found for " << key; 240 "Mismatch found for " << key;
239 } 241 }
240 } 242 }
241 243
242 static void CheckBool(const DictionaryValue* dictionary, 244 static void CheckBool(const DictionaryValue* dictionary,
243 const std::string& key, 245 const std::string& key,
244 bool expected_value) { 246 bool expected_value) {
245 return CheckBool(dictionary, key, expected_value, false); 247 return CheckBool(dictionary, key, expected_value, false);
246 } 248 }
247 249
250 #if !defined(OS_CHROMEOS)
248 static void CheckString(const DictionaryValue* dictionary, 251 static void CheckString(const DictionaryValue* dictionary,
249 const std::string& key, 252 const std::string& key,
250 const std::string& expected_value, 253 const std::string& expected_value,
251 bool is_optional) { 254 bool is_optional) {
252 if (is_optional && expected_value.empty()) { 255 if (is_optional && expected_value.empty()) {
253 EXPECT_FALSE(dictionary->HasKey(key)) << 256 EXPECT_FALSE(dictionary->HasKey(key)) <<
254 "Did not expect to find value for " << key; 257 "Did not expect to find value for " << key;
255 } else { 258 } else {
256 std::string actual_value; 259 std::string actual_value;
257 EXPECT_TRUE(dictionary->GetString(key, &actual_value)) << 260 EXPECT_TRUE(dictionary->GetString(key, &actual_value)) <<
258 "No value found for " << key; 261 "No value found for " << key;
259 EXPECT_EQ(actual_value, expected_value) << 262 EXPECT_EQ(actual_value, expected_value) <<
260 "Mismatch found for " << key; 263 "Mismatch found for " << key;
261 } 264 }
262 } 265 }
266 #endif
263 267
268 #if !defined(OS_CHROMEOS)
264 // Validates that the expected args are being passed off to javascript. 269 // Validates that the expected args are being passed off to javascript.
265 static void CheckShowSyncSetupArgs(const DictionaryValue* dictionary, 270 static void CheckShowSyncSetupArgs(const DictionaryValue* dictionary,
266 std::string error_message, 271 std::string error_message,
267 bool fatal_error, 272 bool fatal_error,
268 int error, 273 int error,
269 std::string user, 274 std::string user,
270 bool user_is_editable, 275 bool user_is_editable,
271 std::string captcha_url) { 276 std::string captcha_url) {
272 // showSyncSetupPage() expects to be passed a dictionary with the following 277 // showSyncSetupPage() expects to be passed a dictionary with the following
273 // named values set: 278 // named values set:
274 // error_message: custom error message to display. 279 // error_message: custom error message to display.
275 // fatalError: true if there was a fatal error while logging in. 280 // fatalError: true if there was a fatal error while logging in.
276 // error: GoogleServiceAuthError from previous login attempt (0 if none). 281 // error: GoogleServiceAuthError from previous login attempt (0 if none).
277 // user: The email the user most recently entered. 282 // user: The email the user most recently entered.
278 // editable_user: Whether the username field should be editable. 283 // editable_user: Whether the username field should be editable.
279 // captchaUrl: The captcha image to display to the user (empty if none). 284 // captchaUrl: The captcha image to display to the user (empty if none).
280 // 285 //
281 // The code below validates these arguments. 286 // The code below validates these arguments.
282 287
283 CheckString(dictionary, "error_message", error_message, true); 288 CheckString(dictionary, "error_message", error_message, true);
284 CheckString(dictionary, "user", user, false); 289 CheckString(dictionary, "user", user, false);
285 CheckString(dictionary, "captchaUrl", captcha_url, false); 290 CheckString(dictionary, "captchaUrl", captcha_url, false);
286 CheckInt(dictionary, "error", error); 291 CheckInt(dictionary, "error", error);
287 CheckBool(dictionary, "fatalError", fatal_error, true); 292 CheckBool(dictionary, "fatalError", fatal_error, true);
288 CheckBool(dictionary, "editable_user", user_is_editable); 293 CheckBool(dictionary, "editable_user", user_is_editable);
289 } 294 }
295 #endif
290 296
291 TEST_F(SyncSetupHandlerTest, Basic) { 297 TEST_F(SyncSetupHandlerTest, Basic) {
292 } 298 }
293 299
300 #if !defined(OS_CHROMEOS)
294 TEST_F(SyncSetupHandlerTest, DisplayBasicLogin) { 301 TEST_F(SyncSetupHandlerTest, DisplayBasicLogin) {
295 EXPECT_CALL(*mock_pss_, AreCredentialsAvailable()) 302 EXPECT_CALL(*mock_pss_, AreCredentialsAvailable())
296 .WillRepeatedly(Return(false)); 303 .WillRepeatedly(Return(false));
297 EXPECT_CALL(*mock_pss_, HasSyncSetupCompleted()) 304 EXPECT_CALL(*mock_pss_, HasSyncSetupCompleted())
298 .WillRepeatedly(Return(false)); 305 .WillRepeatedly(Return(false));
299 handler_->OpenSyncSetup(false); 306 handler_->OpenSyncSetup(false);
300 EXPECT_EQ(&web_ui_, 307 EXPECT_EQ(&web_ui_,
301 LoginUIServiceFactory::GetForProfile( 308 LoginUIServiceFactory::GetForProfile(
302 profile_.get())->current_login_ui()); 309 profile_.get())->current_login_ui());
303 ASSERT_EQ(1U, web_ui_.call_data().size()); 310 ASSERT_EQ(1U, web_ui_.call_data().size());
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 EXPECT_EQ("SyncSetupOverlay.showSyncSetupPage", data.function_name); 423 EXPECT_EQ("SyncSetupOverlay.showSyncSetupPage", data.function_name);
417 std::string page; 424 std::string page;
418 ASSERT_TRUE(data.arg1->GetAsString(&page)); 425 ASSERT_TRUE(data.arg1->GetAsString(&page));
419 EXPECT_EQ(page, "login"); 426 EXPECT_EQ(page, "login");
420 // Now make sure that the appropriate params are being passed. 427 // Now make sure that the appropriate params are being passed.
421 DictionaryValue* dictionary; 428 DictionaryValue* dictionary;
422 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary)); 429 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary));
423 CheckShowSyncSetupArgs( 430 CheckShowSyncSetupArgs(
424 dictionary, "", true, GoogleServiceAuthError::NONE, "", true, ""); 431 dictionary, "", true, GoogleServiceAuthError::NONE, "", true, "");
425 } 432 }
433 #endif // !OS_CHROMEOS
426 434
435 #if !defined(OS_CHROMEOS)
436 // TODO(kochi): We need equivalent tests for ChromeOS.
427 TEST_F(SyncSetupHandlerTest, UnrecoverableErrorInitializingSync) { 437 TEST_F(SyncSetupHandlerTest, UnrecoverableErrorInitializingSync) {
428 EXPECT_CALL(*mock_pss_, AreCredentialsAvailable()) 438 EXPECT_CALL(*mock_pss_, AreCredentialsAvailable())
429 .WillRepeatedly(Return(false)); 439 .WillRepeatedly(Return(false));
430 EXPECT_CALL(*mock_pss_, HasSyncSetupCompleted()) 440 EXPECT_CALL(*mock_pss_, HasSyncSetupCompleted())
431 .WillRepeatedly(Return(false)); 441 .WillRepeatedly(Return(false));
432 // Open the web UI. 442 // Open the web UI.
433 handler_->OpenSyncSetup(false); 443 handler_->OpenSyncSetup(false);
434 ASSERT_EQ(1U, web_ui_.call_data().size()); 444 ASSERT_EQ(1U, web_ui_.call_data().size());
435 // Fake a successful GAIA request (gaia credentials valid, but signin not 445 // Fake a successful GAIA request (gaia credentials valid, but signin not
436 // complete yet). 446 // complete yet).
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 std::string page; 501 std::string page;
492 ASSERT_TRUE(data.arg1->GetAsString(&page)); 502 ASSERT_TRUE(data.arg1->GetAsString(&page));
493 EXPECT_EQ(page, "login"); 503 EXPECT_EQ(page, "login");
494 // Now make sure that the appropriate params are being passed. 504 // Now make sure that the appropriate params are being passed.
495 DictionaryValue* dictionary; 505 DictionaryValue* dictionary;
496 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary)); 506 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary));
497 CheckShowSyncSetupArgs( 507 CheckShowSyncSetupArgs(
498 dictionary, "", false, GoogleServiceAuthError::SERVICE_UNAVAILABLE, 508 dictionary, "", false, GoogleServiceAuthError::SERVICE_UNAVAILABLE,
499 kTestUser, true, ""); 509 kTestUser, true, "");
500 } 510 }
511 #endif // !OS_CHROMEOS
501 512
502 TEST_F(SyncSetupHandlerTest, TestSyncEverything) { 513 TEST_F(SyncSetupHandlerTest, TestSyncEverything) {
503 std::string args = 514 std::string args =
504 "{\"syncAllDataTypes\":true," 515 "{\"syncAllDataTypes\":true,"
505 "\"sync_apps\":true," 516 "\"sync_apps\":true,"
506 "\"sync_autofill\":true," 517 "\"sync_autofill\":true,"
507 "\"sync_bookmarks\":true," 518 "\"sync_bookmarks\":true,"
508 "\"sync_extensions\":true," 519 "\"sync_extensions\":true,"
509 "\"sync_passwords\":true," 520 "\"sync_passwords\":true,"
510 "\"sync_preferences\":true," 521 "\"sync_preferences\":true,"
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) 778 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase())
768 .WillRepeatedly(Return(false)); 779 .WillRepeatedly(Return(false));
769 SetupInitializedProfileSyncService(); 780 SetupInitializedProfileSyncService();
770 // This should display the sync setup dialog (not login). 781 // This should display the sync setup dialog (not login).
771 SetDefaultExpectationsForConfigPage(); 782 SetDefaultExpectationsForConfigPage();
772 handler_->OpenSyncSetup(false); 783 handler_->OpenSyncSetup(false);
773 784
774 ExpectConfig(); 785 ExpectConfig();
775 } 786 }
776 787
788 #if !defined(OS_CHROMEOS)
777 TEST_F(SyncSetupHandlerTest, ShowSyncSetupWithAuthError) { 789 TEST_F(SyncSetupHandlerTest, ShowSyncSetupWithAuthError) {
778 // Initialize the system to a signed in state, but with an auth error. 790 // Initialize the system to a signed in state, but with an auth error.
779 error_ = GoogleServiceAuthError( 791 error_ = GoogleServiceAuthError(
780 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); 792 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
781 SetupInitializedProfileSyncService(); 793 SetupInitializedProfileSyncService();
782 mock_signin_->SetAuthenticatedUsername(kTestUser); 794 mock_signin_->SetAuthenticatedUsername(kTestUser);
783 EXPECT_CALL(*mock_pss_, AreCredentialsAvailable()) 795 EXPECT_CALL(*mock_pss_, AreCredentialsAvailable())
784 .WillRepeatedly(Return(true)); 796 .WillRepeatedly(Return(true));
785 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) 797 EXPECT_CALL(*mock_pss_, IsPassphraseRequired())
786 .WillRepeatedly(Return(false)); 798 .WillRepeatedly(Return(false));
(...skipping 15 matching lines...) Expand all
802 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary)); 814 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary));
803 // We should display a login screen with a non-editable username filled in. 815 // We should display a login screen with a non-editable username filled in.
804 CheckShowSyncSetupArgs(dictionary, 816 CheckShowSyncSetupArgs(dictionary,
805 "", 817 "",
806 false, 818 false,
807 GoogleServiceAuthError::NONE, 819 GoogleServiceAuthError::NONE,
808 kTestUser, 820 kTestUser,
809 false, 821 false,
810 ""); 822 "");
811 } 823 }
824 #endif
812 825
813 TEST_F(SyncSetupHandlerTest, ShowSetupSyncEverything) { 826 TEST_F(SyncSetupHandlerTest, ShowSetupSyncEverything) {
814 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) 827 EXPECT_CALL(*mock_pss_, IsPassphraseRequired())
815 .WillRepeatedly(Return(false)); 828 .WillRepeatedly(Return(false));
816 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) 829 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase())
817 .WillRepeatedly(Return(false)); 830 .WillRepeatedly(Return(false));
818 SetupInitializedProfileSyncService(); 831 SetupInitializedProfileSyncService();
819 SetDefaultExpectationsForConfigPage(); 832 SetDefaultExpectationsForConfigPage();
820 // This should display the sync setup dialog (not login). 833 // This should display the sync setup dialog (not login).
821 handler_->OpenSyncSetup(false); 834 handler_->OpenSyncSetup(false);
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 970
958 // This should display the sync setup dialog (not login). 971 // This should display the sync setup dialog (not login).
959 handler_->OpenSyncSetup(false); 972 handler_->OpenSyncSetup(false);
960 973
961 ExpectConfig(); 974 ExpectConfig();
962 const TestWebUI::CallData& data = web_ui_.call_data()[0]; 975 const TestWebUI::CallData& data = web_ui_.call_data()[0];
963 DictionaryValue* dictionary; 976 DictionaryValue* dictionary;
964 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary)); 977 ASSERT_TRUE(data.arg2->GetAsDictionary(&dictionary));
965 CheckBool(dictionary, "encryptAllData", true); 978 CheckBool(dictionary, "encryptAllData", true);
966 } 979 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/sync_setup_handler.cc ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698