| 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 browser_sync::SyncBackendHost::Status status; | 96 syncer::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 browser_sync::SyncBackendHost::Status status; | 116 syncer::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 browser_sync::SyncBackendHost::Status status; | 146 syncer::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 browser_sync::SyncBackendHost::Status status; | 221 syncer::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 browser_sync::SyncBackendHost::Status status; | 233 syncer::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 browser_sync::SyncBackendHost::Status status; | 244 syncer::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 browser_sync::SyncBackendHost::Status status; | 258 syncer::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 browser_sync::SyncBackendHost::Status status; | 276 syncer::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 browser_sync::SyncBackendHost::Status status; | 288 syncer::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 browser_sync::SyncBackendHost::Status status; | 305 syncer::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 browser_sync::SyncBackendHost::Status status; | 321 syncer::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 |