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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 80 |
81 class SyncUIUtilTest : public testing::Test { | 81 class SyncUIUtilTest : public testing::Test { |
82 private: | 82 private: |
83 content::TestBrowserThreadBundle thread_bundle_; | 83 content::TestBrowserThreadBundle thread_bundle_; |
84 }; | 84 }; |
85 | 85 |
86 #if !defined(OS_CHROMEOS) | 86 #if !defined(OS_CHROMEOS) |
87 // Test that GetStatusLabelsForSyncGlobalError returns an error if a | 87 // Test that GetStatusLabelsForSyncGlobalError returns an error if a |
88 // passphrase is required. | 88 // passphrase is required. |
89 TEST_F(SyncUIUtilTest, PassphraseGlobalError) { | 89 TEST_F(SyncUIUtilTest, PassphraseGlobalError) { |
90 scoped_ptr<Profile> profile = MakeSignedInTestingProfile(); | 90 std::unique_ptr<Profile> profile = MakeSignedInTestingProfile(); |
91 ProfileSyncServiceMock service( | 91 ProfileSyncServiceMock service( |
92 CreateProfileSyncServiceParamsForTest(profile.get())); | 92 CreateProfileSyncServiceParamsForTest(profile.get())); |
93 browser_sync::SyncBackendHost::Status status; | 93 browser_sync::SyncBackendHost::Status status; |
94 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) | 94 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) |
95 .WillRepeatedly(Return(false)); | 95 .WillRepeatedly(Return(false)); |
96 EXPECT_CALL(service, IsPassphraseRequired()) | 96 EXPECT_CALL(service, IsPassphraseRequired()) |
97 .WillRepeatedly(Return(true)); | 97 .WillRepeatedly(Return(true)); |
98 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) | 98 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) |
99 .WillRepeatedly(Return(true)); | 99 .WillRepeatedly(Return(true)); |
100 | 100 |
101 VerifySyncGlobalErrorResult(&service, | 101 VerifySyncGlobalErrorResult(&service, |
102 GoogleServiceAuthError::NONE, | 102 GoogleServiceAuthError::NONE, |
103 true /* signed in */, | 103 true /* signed in */, |
104 true /* error */); | 104 true /* error */); |
105 } | 105 } |
106 | 106 |
107 // Test that GetStatusLabelsForSyncGlobalError returns an error if a | 107 // Test that GetStatusLabelsForSyncGlobalError returns an error if a |
108 // passphrase is required and not for auth errors. | 108 // passphrase is required and not for auth errors. |
109 TEST_F(SyncUIUtilTest, AuthAndPassphraseGlobalError) { | 109 TEST_F(SyncUIUtilTest, AuthAndPassphraseGlobalError) { |
110 scoped_ptr<Profile> profile(MakeSignedInTestingProfile()); | 110 std::unique_ptr<Profile> profile(MakeSignedInTestingProfile()); |
111 ProfileSyncServiceMock service( | 111 ProfileSyncServiceMock service( |
112 CreateProfileSyncServiceParamsForTest(profile.get())); | 112 CreateProfileSyncServiceParamsForTest(profile.get())); |
113 browser_sync::SyncBackendHost::Status status; | 113 browser_sync::SyncBackendHost::Status status; |
114 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) | 114 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) |
115 .WillRepeatedly(Return(false)); | 115 .WillRepeatedly(Return(false)); |
116 | 116 |
117 EXPECT_CALL(service, IsPassphraseRequired()) | 117 EXPECT_CALL(service, IsPassphraseRequired()) |
118 .WillRepeatedly(Return(true)); | 118 .WillRepeatedly(Return(true)); |
119 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) | 119 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) |
120 .WillRepeatedly(Return(true)); | 120 .WillRepeatedly(Return(true)); |
121 EXPECT_CALL(service, IsFirstSetupComplete()).WillRepeatedly(Return(true)); | 121 EXPECT_CALL(service, IsFirstSetupComplete()).WillRepeatedly(Return(true)); |
122 | 122 |
123 GoogleServiceAuthError auth_error( | 123 GoogleServiceAuthError auth_error( |
124 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 124 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
125 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(auth_error)); | 125 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(auth_error)); |
126 base::string16 menu_label, label2, label3; | 126 base::string16 menu_label, label2, label3; |
127 sync_ui_util::GetStatusLabelsForSyncGlobalError( | 127 sync_ui_util::GetStatusLabelsForSyncGlobalError( |
128 &service, &menu_label, &label2, &label3); | 128 &service, &menu_label, &label2, &label3); |
129 // Make sure we are still displaying the passphrase error badge (don't show | 129 // Make sure we are still displaying the passphrase error badge (don't show |
130 // auth errors through SyncUIUtil). | 130 // auth errors through SyncUIUtil). |
131 EXPECT_EQ(menu_label, l10n_util::GetStringUTF16( | 131 EXPECT_EQ(menu_label, l10n_util::GetStringUTF16( |
132 IDS_SYNC_PASSPHRASE_ERROR_WRENCH_MENU_ITEM)); | 132 IDS_SYNC_PASSPHRASE_ERROR_WRENCH_MENU_ITEM)); |
133 } | 133 } |
134 | 134 |
135 // Test that GetStatusLabelsForSyncGlobalError does not indicate errors for | 135 // Test that GetStatusLabelsForSyncGlobalError does not indicate errors for |
136 // auth errors (these are reported through SigninGlobalError). | 136 // auth errors (these are reported through SigninGlobalError). |
137 TEST_F(SyncUIUtilTest, AuthStateGlobalError) { | 137 TEST_F(SyncUIUtilTest, AuthStateGlobalError) { |
138 scoped_ptr<Profile> profile(MakeSignedInTestingProfile()); | 138 std::unique_ptr<Profile> profile(MakeSignedInTestingProfile()); |
139 ProfileSyncService::InitParams init_params = | 139 ProfileSyncService::InitParams init_params = |
140 CreateProfileSyncServiceParamsForTest(profile.get()); | 140 CreateProfileSyncServiceParamsForTest(profile.get()); |
141 NiceMock<ProfileSyncServiceMock> service(&init_params); | 141 NiceMock<ProfileSyncServiceMock> service(&init_params); |
142 | 142 |
143 browser_sync::SyncBackendHost::Status status; | 143 browser_sync::SyncBackendHost::Status status; |
144 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) | 144 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) |
145 .WillRepeatedly(Return(false)); | 145 .WillRepeatedly(Return(false)); |
146 | 146 |
147 GoogleServiceAuthError::State table[] = { | 147 GoogleServiceAuthError::State table[] = { |
148 GoogleServiceAuthError::NONE, | 148 GoogleServiceAuthError::NONE, |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 NOTREACHED(); | 330 NOTREACHED(); |
331 } | 331 } |
332 } | 332 } |
333 | 333 |
334 // This test ensures that a each distinctive ProfileSyncService statuses | 334 // This test ensures that a each distinctive ProfileSyncService statuses |
335 // will return a unique combination of status and link messages from | 335 // will return a unique combination of status and link messages from |
336 // GetStatusLabels(). | 336 // GetStatusLabels(). |
337 TEST_F(SyncUIUtilTest, DistinctCasesReportUniqueMessageSets) { | 337 TEST_F(SyncUIUtilTest, DistinctCasesReportUniqueMessageSets) { |
338 std::set<base::string16> messages; | 338 std::set<base::string16> messages; |
339 for (int idx = 0; idx != NUMBER_OF_STATUS_CASES; idx++) { | 339 for (int idx = 0; idx != NUMBER_OF_STATUS_CASES; idx++) { |
340 scoped_ptr<Profile> profile(new TestingProfile()); | 340 std::unique_ptr<Profile> profile(new TestingProfile()); |
341 ProfileSyncService::InitParams init_params = | 341 ProfileSyncService::InitParams init_params = |
342 CreateProfileSyncServiceParamsForTest(profile.get()); | 342 CreateProfileSyncServiceParamsForTest(profile.get()); |
343 NiceMock<ProfileSyncServiceMock> service(&init_params); | 343 NiceMock<ProfileSyncServiceMock> service(&init_params); |
344 GoogleServiceAuthError error = GoogleServiceAuthError::AuthErrorNone(); | 344 GoogleServiceAuthError error = GoogleServiceAuthError::AuthErrorNone(); |
345 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); | 345 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); |
346 FakeSigninManagerForSyncUIUtilTest signin(profile.get()); | 346 FakeSigninManagerForSyncUIUtilTest signin(profile.get()); |
347 signin.SetAuthenticatedAccountInfo(kTestGaiaId, kTestUser); | 347 signin.SetAuthenticatedAccountInfo(kTestGaiaId, kTestUser); |
348 scoped_ptr<FakeAuthStatusProvider> provider(new FakeAuthStatusProvider( | 348 std::unique_ptr<FakeAuthStatusProvider> provider(new FakeAuthStatusProvider( |
349 SigninErrorControllerFactory::GetForProfile(profile.get()))); | 349 SigninErrorControllerFactory::GetForProfile(profile.get()))); |
350 GetDistinctCase(&service, &signin, provider.get(), idx); | 350 GetDistinctCase(&service, &signin, provider.get(), idx); |
351 base::string16 status_label; | 351 base::string16 status_label; |
352 base::string16 link_label; | 352 base::string16 link_label; |
353 sync_ui_util::GetStatusLabels(profile.get(), &service, signin, | 353 sync_ui_util::GetStatusLabels(profile.get(), &service, signin, |
354 sync_ui_util::WITH_HTML, &status_label, | 354 sync_ui_util::WITH_HTML, &status_label, |
355 &link_label); | 355 &link_label); |
356 // If the status and link message combination is already present in the set | 356 // If the status and link message combination is already present in the set |
357 // of messages already seen, this is a duplicate rather than a unique | 357 // of messages already seen, this is a duplicate rather than a unique |
358 // message, and the test has failed. | 358 // message, and the test has failed. |
359 EXPECT_FALSE(status_label.empty()) << | 359 EXPECT_FALSE(status_label.empty()) << |
360 "Empty status label returned for case #" << idx; | 360 "Empty status label returned for case #" << idx; |
361 base::string16 combined_label = | 361 base::string16 combined_label = |
362 status_label + base::ASCIIToUTF16("#") + link_label; | 362 status_label + base::ASCIIToUTF16("#") + link_label; |
363 EXPECT_TRUE(messages.find(combined_label) == messages.end()) << | 363 EXPECT_TRUE(messages.find(combined_label) == messages.end()) << |
364 "Duplicate message for case #" << idx << ": " << combined_label; | 364 "Duplicate message for case #" << idx << ": " << combined_label; |
365 messages.insert(combined_label); | 365 messages.insert(combined_label); |
366 testing::Mock::VerifyAndClearExpectations(&service); | 366 testing::Mock::VerifyAndClearExpectations(&service); |
367 testing::Mock::VerifyAndClearExpectations(&signin); | 367 testing::Mock::VerifyAndClearExpectations(&signin); |
368 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); | 368 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); |
369 provider.reset(); | 369 provider.reset(); |
370 signin.Shutdown(); | 370 signin.Shutdown(); |
371 } | 371 } |
372 } | 372 } |
373 | 373 |
374 // This test ensures that the html_links parameter on GetStatusLabels() is | 374 // This test ensures that the html_links parameter on GetStatusLabels() is |
375 // honored. | 375 // honored. |
376 TEST_F(SyncUIUtilTest, HtmlNotIncludedInStatusIfNotRequested) { | 376 TEST_F(SyncUIUtilTest, HtmlNotIncludedInStatusIfNotRequested) { |
377 for (int idx = 0; idx != NUMBER_OF_STATUS_CASES; idx++) { | 377 for (int idx = 0; idx != NUMBER_OF_STATUS_CASES; idx++) { |
378 scoped_ptr<Profile> profile(MakeSignedInTestingProfile()); | 378 std::unique_ptr<Profile> profile(MakeSignedInTestingProfile()); |
379 ProfileSyncService::InitParams init_params = | 379 ProfileSyncService::InitParams init_params = |
380 CreateProfileSyncServiceParamsForTest(profile.get()); | 380 CreateProfileSyncServiceParamsForTest(profile.get()); |
381 NiceMock<ProfileSyncServiceMock> service(&init_params); | 381 NiceMock<ProfileSyncServiceMock> service(&init_params); |
382 GoogleServiceAuthError error = GoogleServiceAuthError::AuthErrorNone(); | 382 GoogleServiceAuthError error = GoogleServiceAuthError::AuthErrorNone(); |
383 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); | 383 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); |
384 FakeSigninManagerForSyncUIUtilTest signin(profile.get()); | 384 FakeSigninManagerForSyncUIUtilTest signin(profile.get()); |
385 signin.SetAuthenticatedAccountInfo(kTestGaiaId, kTestUser); | 385 signin.SetAuthenticatedAccountInfo(kTestGaiaId, kTestUser); |
386 scoped_ptr<FakeAuthStatusProvider> provider(new FakeAuthStatusProvider( | 386 std::unique_ptr<FakeAuthStatusProvider> provider(new FakeAuthStatusProvider( |
387 SigninErrorControllerFactory::GetForProfile(profile.get()))); | 387 SigninErrorControllerFactory::GetForProfile(profile.get()))); |
388 GetDistinctCase(&service, &signin, provider.get(), idx); | 388 GetDistinctCase(&service, &signin, provider.get(), idx); |
389 base::string16 status_label; | 389 base::string16 status_label; |
390 base::string16 link_label; | 390 base::string16 link_label; |
391 sync_ui_util::GetStatusLabels(profile.get(), &service, signin, | 391 sync_ui_util::GetStatusLabels(profile.get(), &service, signin, |
392 sync_ui_util::PLAIN_TEXT, &status_label, | 392 sync_ui_util::PLAIN_TEXT, &status_label, |
393 &link_label); | 393 &link_label); |
394 | 394 |
395 // Ensures a search for string 'href' (found in links, not a string to be | 395 // Ensures a search for string 'href' (found in links, not a string to be |
396 // found in an English language message) fails when links are excluded from | 396 // found in an English language message) fails when links are excluded from |
397 // the status label. | 397 // the status label. |
398 EXPECT_FALSE(status_label.empty()); | 398 EXPECT_FALSE(status_label.empty()); |
399 EXPECT_EQ(status_label.find(base::ASCIIToUTF16("href")), | 399 EXPECT_EQ(status_label.find(base::ASCIIToUTF16("href")), |
400 base::string16::npos); | 400 base::string16::npos); |
401 testing::Mock::VerifyAndClearExpectations(&service); | 401 testing::Mock::VerifyAndClearExpectations(&service); |
402 testing::Mock::VerifyAndClearExpectations(&signin); | 402 testing::Mock::VerifyAndClearExpectations(&signin); |
403 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); | 403 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(error)); |
404 provider.reset(); | 404 provider.reset(); |
405 signin.Shutdown(); | 405 signin.Shutdown(); |
406 } | 406 } |
407 } | 407 } |
OLD | NEW |