| 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..d64eda59c862cb580b2a0ee8554480e1ff9642fe 100644
|
| --- a/components/browser_sync/browser/profile_sync_service_unittest.cc
|
| +++ b/components/browser_sync/browser/profile_sync_service_unittest.cc
|
| @@ -904,6 +904,37 @@ 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.
|
| +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);
|
| +
|
| +// CrOS does not support signout.
|
| +#if !defined(OS_CHROMEOS)
|
| + EXPECT_TRUE(signin_manager()->GetAuthenticatedAccountId().empty());
|
| +#else
|
| + EXPECT_FALSE(signin_manager()->GetAuthenticatedAccountId().empty());
|
| +#endif
|
| +
|
| + EXPECT_FALSE(service()->IsSyncActive());
|
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_SYNC_TIME_NEVER),
|
| + service()->GetLastSyncedTimeString());
|
| + EXPECT_FALSE(service()->GetLocalDeviceInfoProvider()->GetLocalDeviceInfo());
|
| +}
|
| +
|
| // 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
|
|
|