Chromium Code Reviews| Index: components/browser_sync/browser/profile_sync_service_unittest.cc |
| diff --git a/components/browser_sync/browser/profile_sync_service_unittest.cc b/components/browser_sync/browser/profile_sync_service_unittest.cc |
| index 7369677134b0e36f025c5f324d1e28e40691f616..8ab7294098767bf641cd5e1d139133b7e23fbecc 100644 |
| --- a/components/browser_sync/browser/profile_sync_service_unittest.cc |
| +++ b/components/browser_sync/browser/profile_sync_service_unittest.cc |
| @@ -904,6 +904,36 @@ TEST_F(ProfileSyncServiceTest, ResetSyncData) { |
| service()->OnActionableError(client_cmd); |
| } |
| +// Test that when ProfileSyncService receives actionable error |
| +// DISABLE_SYNC_ON_CLIENT it disables sync and signs out. |
| +// CrOS does not support signout. |
| +#if !defined(OS_CHROMEOS) |
| +TEST_F(ProfileSyncServiceTest, DisableSyncOnClient) { |
| + IssueTestTokens(); |
| + CreateService(ProfileSyncService::AUTO_START); |
| + ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| + ExpectSyncBackendHostCreation(1); |
| + InitializeForNthSync(); |
| + |
| + EXPECT_TRUE(service()->IsSyncActive()); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_SYNC_TIME_JUST_NOW), |
| + service()->GetLastSyncedTimeString()); |
| + EXPECT_TRUE(service()->GetLocalDeviceInfoProvider()->GetLocalDeviceInfo()); |
| + |
| + syncer::SyncProtocolError client_cmd; |
| + client_cmd.action = syncer::DISABLE_SYNC_ON_CLIENT; |
| + service()->OnActionableError(client_cmd); |
| + |
| + EXPECT_FALSE(service()->IsSyncActive()); |
| + EXPECT_TRUE(service()->GetAccessTokenForTest().empty()); |
| + EXPECT_TRUE(signin_manager()->GetAuthenticatedAccountId().empty()); |
|
maxbogue
2016/05/16 22:51:02
You could move the #if inside the test and have an
Patrick Noland
2016/05/17 21:30:07
Done.
|
| + |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_SYNC_TIME_NEVER), |
| + service()->GetLastSyncedTimeString()); |
| + EXPECT_FALSE(service()->GetLocalDeviceInfoProvider()->GetLocalDeviceInfo()); |
| +} |
| +#endif |
| + |
| // Regression test for crbug/555434. The issue is that check for sessions DTC in |
| // OnSessionRestoreComplete was creating map entry with nullptr which later was |
| // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if |