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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 content::TestBrowserThreadBundle thread_bundle_; | 86 content::TestBrowserThreadBundle thread_bundle_; |
87 }; | 87 }; |
88 | 88 |
89 #if !defined(OS_CHROMEOS) | 89 #if !defined(OS_CHROMEOS) |
90 // Test that GetStatusLabelsForSyncGlobalError returns an error if a | 90 // Test that GetStatusLabelsForSyncGlobalError returns an error if a |
91 // passphrase is required. | 91 // passphrase is required. |
92 TEST_F(SyncUIUtilTest, PassphraseGlobalError) { | 92 TEST_F(SyncUIUtilTest, PassphraseGlobalError) { |
93 std::unique_ptr<Profile> profile = MakeSignedInTestingProfile(); | 93 std::unique_ptr<Profile> profile = MakeSignedInTestingProfile(); |
94 ProfileSyncServiceMock service( | 94 ProfileSyncServiceMock service( |
95 CreateProfileSyncServiceParamsForTest(profile.get())); | 95 CreateProfileSyncServiceParamsForTest(profile.get())); |
96 syncer::SyncBackendHost::Status status; | 96 browser_sync::SyncBackendHost::Status status; |
97 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) | 97 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) |
98 .WillRepeatedly(Return(false)); | 98 .WillRepeatedly(Return(false)); |
99 EXPECT_CALL(service, IsPassphraseRequired()) | 99 EXPECT_CALL(service, IsPassphraseRequired()) |
100 .WillRepeatedly(Return(true)); | 100 .WillRepeatedly(Return(true)); |
101 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) | 101 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) |
102 .WillRepeatedly(Return(true)); | 102 .WillRepeatedly(Return(true)); |
103 | 103 |
104 VerifySyncGlobalErrorResult(&service, | 104 VerifySyncGlobalErrorResult(&service, |
105 GoogleServiceAuthError::NONE, | 105 GoogleServiceAuthError::NONE, |
106 true /* signed in */, | 106 true /* signed in */, |
107 true /* error */); | 107 true /* error */); |
108 } | 108 } |
109 | 109 |
110 // Test that GetStatusLabelsForSyncGlobalError returns an error if a | 110 // Test that GetStatusLabelsForSyncGlobalError returns an error if a |
111 // passphrase is required and not for auth errors. | 111 // passphrase is required and not for auth errors. |
112 TEST_F(SyncUIUtilTest, AuthAndPassphraseGlobalError) { | 112 TEST_F(SyncUIUtilTest, AuthAndPassphraseGlobalError) { |
113 std::unique_ptr<Profile> profile(MakeSignedInTestingProfile()); | 113 std::unique_ptr<Profile> profile(MakeSignedInTestingProfile()); |
114 ProfileSyncServiceMock service( | 114 ProfileSyncServiceMock service( |
115 CreateProfileSyncServiceParamsForTest(profile.get())); | 115 CreateProfileSyncServiceParamsForTest(profile.get())); |
116 syncer::SyncBackendHost::Status status; | 116 browser_sync::SyncBackendHost::Status status; |
117 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) | 117 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) |
118 .WillRepeatedly(Return(false)); | 118 .WillRepeatedly(Return(false)); |
119 | 119 |
120 EXPECT_CALL(service, IsPassphraseRequired()) | 120 EXPECT_CALL(service, IsPassphraseRequired()) |
121 .WillRepeatedly(Return(true)); | 121 .WillRepeatedly(Return(true)); |
122 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) | 122 EXPECT_CALL(service, IsPassphraseRequiredForDecryption()) |
123 .WillRepeatedly(Return(true)); | 123 .WillRepeatedly(Return(true)); |
124 EXPECT_CALL(service, IsFirstSetupComplete()).WillRepeatedly(Return(true)); | 124 EXPECT_CALL(service, IsFirstSetupComplete()).WillRepeatedly(Return(true)); |
125 | 125 |
126 GoogleServiceAuthError auth_error( | 126 GoogleServiceAuthError auth_error( |
127 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 127 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
128 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(auth_error)); | 128 EXPECT_CALL(service, GetAuthError()).WillRepeatedly(ReturnRef(auth_error)); |
129 base::string16 menu_label, label2, label3; | 129 base::string16 menu_label, label2, label3; |
130 sync_ui_util::GetStatusLabelsForSyncGlobalError( | 130 sync_ui_util::GetStatusLabelsForSyncGlobalError( |
131 &service, &menu_label, &label2, &label3); | 131 &service, &menu_label, &label2, &label3); |
132 // Make sure we are still displaying the passphrase error badge (don't show | 132 // Make sure we are still displaying the passphrase error badge (don't show |
133 // auth errors through SyncUIUtil). | 133 // auth errors through SyncUIUtil). |
134 EXPECT_EQ(menu_label, l10n_util::GetStringUTF16( | 134 EXPECT_EQ(menu_label, l10n_util::GetStringUTF16( |
135 IDS_SYNC_PASSPHRASE_ERROR_WRENCH_MENU_ITEM)); | 135 IDS_SYNC_PASSPHRASE_ERROR_WRENCH_MENU_ITEM)); |
136 } | 136 } |
137 | 137 |
138 // Test that GetStatusLabelsForSyncGlobalError does not indicate errors for | 138 // Test that GetStatusLabelsForSyncGlobalError does not indicate errors for |
139 // auth errors (these are reported through SigninGlobalError). | 139 // auth errors (these are reported through SigninGlobalError). |
140 TEST_F(SyncUIUtilTest, AuthStateGlobalError) { | 140 TEST_F(SyncUIUtilTest, AuthStateGlobalError) { |
141 std::unique_ptr<Profile> profile(MakeSignedInTestingProfile()); | 141 std::unique_ptr<Profile> profile(MakeSignedInTestingProfile()); |
142 ProfileSyncService::InitParams init_params = | 142 ProfileSyncService::InitParams init_params = |
143 CreateProfileSyncServiceParamsForTest(profile.get()); | 143 CreateProfileSyncServiceParamsForTest(profile.get()); |
144 NiceMock<ProfileSyncServiceMock> service(&init_params); | 144 NiceMock<ProfileSyncServiceMock> service(&init_params); |
145 | 145 |
146 syncer::SyncBackendHost::Status status; | 146 browser_sync::SyncBackendHost::Status status; |
147 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) | 147 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) |
148 .WillRepeatedly(Return(false)); | 148 .WillRepeatedly(Return(false)); |
149 | 149 |
150 GoogleServiceAuthError::State table[] = { | 150 GoogleServiceAuthError::State table[] = { |
151 GoogleServiceAuthError::NONE, | 151 GoogleServiceAuthError::NONE, |
152 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, | 152 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, |
153 GoogleServiceAuthError::USER_NOT_SIGNED_UP, | 153 GoogleServiceAuthError::USER_NOT_SIGNED_UP, |
154 GoogleServiceAuthError::CONNECTION_FAILED, | 154 GoogleServiceAuthError::CONNECTION_FAILED, |
155 GoogleServiceAuthError::CAPTCHA_REQUIRED, | 155 GoogleServiceAuthError::CAPTCHA_REQUIRED, |
156 GoogleServiceAuthError::ACCOUNT_DELETED, | 156 GoogleServiceAuthError::ACCOUNT_DELETED, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 int caseNumber) { | 211 int caseNumber) { |
212 // Auth Error object is returned by reference in mock and needs to stay in | 212 // Auth Error object is returned by reference in mock and needs to stay in |
213 // scope throughout test, so it is owned by calling method. However it is | 213 // scope throughout test, so it is owned by calling method. However it is |
214 // immutable so can only be allocated in this method. | 214 // immutable so can only be allocated in this method. |
215 switch (caseNumber) { | 215 switch (caseNumber) { |
216 case STATUS_CASE_SETUP_IN_PROGRESS: { | 216 case STATUS_CASE_SETUP_IN_PROGRESS: { |
217 EXPECT_CALL(*service, IsFirstSetupComplete()) | 217 EXPECT_CALL(*service, IsFirstSetupComplete()) |
218 .WillRepeatedly(Return(false)); | 218 .WillRepeatedly(Return(false)); |
219 EXPECT_CALL(*service, IsFirstSetupInProgress()) | 219 EXPECT_CALL(*service, IsFirstSetupInProgress()) |
220 .WillRepeatedly(Return(true)); | 220 .WillRepeatedly(Return(true)); |
221 syncer::SyncBackendHost::Status status; | 221 browser_sync::SyncBackendHost::Status status; |
222 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 222 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
223 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 223 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
224 return; | 224 return; |
225 } | 225 } |
226 case STATUS_CASE_SETUP_ERROR: { | 226 case STATUS_CASE_SETUP_ERROR: { |
227 EXPECT_CALL(*service, IsFirstSetupComplete()) | 227 EXPECT_CALL(*service, IsFirstSetupComplete()) |
228 .WillRepeatedly(Return(false)); | 228 .WillRepeatedly(Return(false)); |
229 EXPECT_CALL(*service, IsFirstSetupInProgress()) | 229 EXPECT_CALL(*service, IsFirstSetupInProgress()) |
230 .WillRepeatedly(Return(false)); | 230 .WillRepeatedly(Return(false)); |
231 EXPECT_CALL(*service, HasUnrecoverableError()) | 231 EXPECT_CALL(*service, HasUnrecoverableError()) |
232 .WillRepeatedly(Return(true)); | 232 .WillRepeatedly(Return(true)); |
233 syncer::SyncBackendHost::Status status; | 233 browser_sync::SyncBackendHost::Status status; |
234 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 234 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
235 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 235 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
236 return; | 236 return; |
237 } | 237 } |
238 case STATUS_CASE_AUTHENTICATING: { | 238 case STATUS_CASE_AUTHENTICATING: { |
239 EXPECT_CALL(*service, IsFirstSetupComplete()) | 239 EXPECT_CALL(*service, IsFirstSetupComplete()) |
240 .WillRepeatedly(Return(true)); | 240 .WillRepeatedly(Return(true)); |
241 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); | 241 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); |
242 EXPECT_CALL(*service, IsPassphraseRequired()) | 242 EXPECT_CALL(*service, IsPassphraseRequired()) |
243 .WillRepeatedly(Return(false)); | 243 .WillRepeatedly(Return(false)); |
244 syncer::SyncBackendHost::Status status; | 244 browser_sync::SyncBackendHost::Status status; |
245 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 245 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
246 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 246 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
247 EXPECT_CALL(*service, HasUnrecoverableError()) | 247 EXPECT_CALL(*service, HasUnrecoverableError()) |
248 .WillRepeatedly(Return(false)); | 248 .WillRepeatedly(Return(false)); |
249 signin->set_auth_in_progress(); | 249 signin->set_auth_in_progress(); |
250 return; | 250 return; |
251 } | 251 } |
252 case STATUS_CASE_AUTH_ERROR: { | 252 case STATUS_CASE_AUTH_ERROR: { |
253 EXPECT_CALL(*service, IsFirstSetupComplete()) | 253 EXPECT_CALL(*service, IsFirstSetupComplete()) |
254 .WillRepeatedly(Return(true)); | 254 .WillRepeatedly(Return(true)); |
255 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); | 255 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); |
256 EXPECT_CALL(*service, IsPassphraseRequired()) | 256 EXPECT_CALL(*service, IsPassphraseRequired()) |
257 .WillRepeatedly(Return(false)); | 257 .WillRepeatedly(Return(false)); |
258 syncer::SyncBackendHost::Status status; | 258 browser_sync::SyncBackendHost::Status status; |
259 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 259 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
260 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 260 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
261 provider->SetAuthError( | 261 provider->SetAuthError( |
262 signin->GetAuthenticatedAccountId(), | 262 signin->GetAuthenticatedAccountId(), |
263 GoogleServiceAuthError(GoogleServiceAuthError::SERVICE_UNAVAILABLE)); | 263 GoogleServiceAuthError(GoogleServiceAuthError::SERVICE_UNAVAILABLE)); |
264 EXPECT_CALL(*service, HasUnrecoverableError()) | 264 EXPECT_CALL(*service, HasUnrecoverableError()) |
265 .WillRepeatedly(Return(false)); | 265 .WillRepeatedly(Return(false)); |
266 return; | 266 return; |
267 } | 267 } |
268 case STATUS_CASE_PROTOCOL_ERROR: { | 268 case STATUS_CASE_PROTOCOL_ERROR: { |
269 EXPECT_CALL(*service, IsFirstSetupComplete()) | 269 EXPECT_CALL(*service, IsFirstSetupComplete()) |
270 .WillRepeatedly(Return(true)); | 270 .WillRepeatedly(Return(true)); |
271 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); | 271 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); |
272 EXPECT_CALL(*service, IsPassphraseRequired()) | 272 EXPECT_CALL(*service, IsPassphraseRequired()) |
273 .WillRepeatedly(Return(false)); | 273 .WillRepeatedly(Return(false)); |
274 syncer::SyncProtocolError protocolError; | 274 syncer::SyncProtocolError protocolError; |
275 protocolError.action = syncer::STOP_AND_RESTART_SYNC; | 275 protocolError.action = syncer::STOP_AND_RESTART_SYNC; |
276 syncer::SyncBackendHost::Status status; | 276 browser_sync::SyncBackendHost::Status status; |
277 status.sync_protocol_error = protocolError; | 277 status.sync_protocol_error = protocolError; |
278 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 278 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
279 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 279 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
280 EXPECT_CALL(*service, HasUnrecoverableError()) | 280 EXPECT_CALL(*service, HasUnrecoverableError()) |
281 .WillRepeatedly(Return(false)); | 281 .WillRepeatedly(Return(false)); |
282 return; | 282 return; |
283 } | 283 } |
284 case STATUS_CASE_PASSPHRASE_ERROR: { | 284 case STATUS_CASE_PASSPHRASE_ERROR: { |
285 EXPECT_CALL(*service, IsFirstSetupComplete()) | 285 EXPECT_CALL(*service, IsFirstSetupComplete()) |
286 .WillRepeatedly(Return(true)); | 286 .WillRepeatedly(Return(true)); |
287 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); | 287 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); |
288 syncer::SyncBackendHost::Status status; | 288 browser_sync::SyncBackendHost::Status status; |
289 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 289 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
290 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 290 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
291 EXPECT_CALL(*service, HasUnrecoverableError()) | 291 EXPECT_CALL(*service, HasUnrecoverableError()) |
292 .WillRepeatedly(Return(false)); | 292 .WillRepeatedly(Return(false)); |
293 EXPECT_CALL(*service, IsPassphraseRequired()) | 293 EXPECT_CALL(*service, IsPassphraseRequired()) |
294 .WillRepeatedly(Return(true)); | 294 .WillRepeatedly(Return(true)); |
295 EXPECT_CALL(*service, IsPassphraseRequiredForDecryption()) | 295 EXPECT_CALL(*service, IsPassphraseRequiredForDecryption()) |
296 .WillRepeatedly(Return(true)); | 296 .WillRepeatedly(Return(true)); |
297 return; | 297 return; |
298 } | 298 } |
299 case STATUS_CASE_SYNCED: { | 299 case STATUS_CASE_SYNCED: { |
300 EXPECT_CALL(*service, IsFirstSetupComplete()) | 300 EXPECT_CALL(*service, IsFirstSetupComplete()) |
301 .WillRepeatedly(Return(true)); | 301 .WillRepeatedly(Return(true)); |
302 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); | 302 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(true)); |
303 EXPECT_CALL(*service, IsPassphraseRequired()) | 303 EXPECT_CALL(*service, IsPassphraseRequired()) |
304 .WillRepeatedly(Return(false)); | 304 .WillRepeatedly(Return(false)); |
305 syncer::SyncBackendHost::Status status; | 305 browser_sync::SyncBackendHost::Status status; |
306 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 306 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
307 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 307 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
308 EXPECT_CALL(*service, HasUnrecoverableError()) | 308 EXPECT_CALL(*service, HasUnrecoverableError()) |
309 .WillRepeatedly(Return(false)); | 309 .WillRepeatedly(Return(false)); |
310 EXPECT_CALL(*service, IsPassphraseRequired()) | 310 EXPECT_CALL(*service, IsPassphraseRequired()) |
311 .WillRepeatedly(Return(false)); | 311 .WillRepeatedly(Return(false)); |
312 return; | 312 return; |
313 } | 313 } |
314 case STATUS_CASE_SYNC_DISABLED_BY_POLICY: { | 314 case STATUS_CASE_SYNC_DISABLED_BY_POLICY: { |
315 EXPECT_CALL(*service, IsManaged()).WillRepeatedly(Return(true)); | 315 EXPECT_CALL(*service, IsManaged()).WillRepeatedly(Return(true)); |
316 EXPECT_CALL(*service, IsFirstSetupComplete()) | 316 EXPECT_CALL(*service, IsFirstSetupComplete()) |
317 .WillRepeatedly(Return(false)); | 317 .WillRepeatedly(Return(false)); |
318 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(false)); | 318 EXPECT_CALL(*service, IsSyncActive()).WillRepeatedly(Return(false)); |
319 EXPECT_CALL(*service, IsPassphraseRequired()) | 319 EXPECT_CALL(*service, IsPassphraseRequired()) |
320 .WillRepeatedly(Return(false)); | 320 .WillRepeatedly(Return(false)); |
321 syncer::SyncBackendHost::Status status; | 321 browser_sync::SyncBackendHost::Status status; |
322 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) | 322 EXPECT_CALL(*service, QueryDetailedSyncStatus(_)) |
323 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); | 323 .WillRepeatedly(DoAll(SetArgPointee<0>(status), Return(false))); |
324 EXPECT_CALL(*service, HasUnrecoverableError()) | 324 EXPECT_CALL(*service, HasUnrecoverableError()) |
325 .WillRepeatedly(Return(false)); | 325 .WillRepeatedly(Return(false)); |
326 return; | 326 return; |
327 } | 327 } |
328 default: | 328 default: |
329 NOTREACHED(); | 329 NOTREACHED(); |
330 } | 330 } |
331 } | 331 } |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 // from previous one. | 430 // from previous one. |
431 status.sync_protocol_error.action = syncer::UPGRADE_CLIENT; | 431 status.sync_protocol_error.action = syncer::UPGRADE_CLIENT; |
432 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) | 432 EXPECT_CALL(service, QueryDetailedSyncStatus(_)) |
433 .WillOnce(DoAll(SetArgPointee<0>(status), Return(true))); | 433 .WillOnce(DoAll(SetArgPointee<0>(status), Return(true))); |
434 base::string16 upgrade_client_status_label; | 434 base::string16 upgrade_client_status_label; |
435 sync_ui_util::GetStatusLabels(profile.get(), &service, *signin, | 435 sync_ui_util::GetStatusLabels(profile.get(), &service, *signin, |
436 sync_ui_util::PLAIN_TEXT, | 436 sync_ui_util::PLAIN_TEXT, |
437 &upgrade_client_status_label, &link_label); | 437 &upgrade_client_status_label, &link_label); |
438 EXPECT_NE(unrecoverable_error_status_label, upgrade_client_status_label); | 438 EXPECT_NE(unrecoverable_error_status_label, upgrade_client_status_label); |
439 } | 439 } |
OLD | NEW |