Index: chrome/browser/sync/profile_sync_service_startup_unittest.cc |
diff --git a/chrome/browser/sync/profile_sync_service_startup_unittest.cc b/chrome/browser/sync/profile_sync_service_startup_unittest.cc |
index 1f82139f45154820238f4a67de5b12264e744653..4f5935e40d91f5d3428db0a5944b6936f80507be 100644 |
--- a/chrome/browser/sync/profile_sync_service_startup_unittest.cc |
+++ b/chrome/browser/sync/profile_sync_service_startup_unittest.cc |
@@ -119,6 +119,40 @@ TEST_F(ProfileSyncServiceStartupTest, SKIP_MACOSX(StartNormal)) { |
service_->Initialize(); |
} |
+TEST_F(ProfileSyncServiceStartupTest, SKIP_MACOSX(ManagedStartup)) { |
+ // Disable sync through policy. |
+ profile_.GetPrefs()->SetBoolean(prefs::kSyncManaged, true); |
+ |
+ EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); |
+ EXPECT_CALL(observer_, OnStateChanged()).Times(1); |
+ |
+ // Service should not be started by Initialize() since it's managed. |
+ service_->Initialize(); |
+} |
+ |
+TEST_F(ProfileSyncServiceStartupTest, SKIP_MACOSX(SwitchManaged)) { |
+ DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
+ EXPECT_CALL(*data_type_manager, Configure(_)).Times(1); |
+ EXPECT_CALL(observer_, OnStateChanged()).Times(3); |
+ |
+ service_->Initialize(); |
+ |
+ // The service should stop when switching to managed mode. |
+ Mock::VerifyAndClearExpectations(data_type_manager); |
+ EXPECT_CALL(*data_type_manager, state()). |
+ WillOnce(Return(DataTypeManager::CONFIGURED)); |
+ EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
+ EXPECT_CALL(observer_, OnStateChanged()).Times(2); |
+ profile_.GetPrefs()->SetBoolean(prefs::kSyncManaged, true); |
+ |
+ // When switching back to unmanaged, the state should change, but the service |
+ // should not start up automatically (kSyncSetupCompleted will be false). |
+ Mock::VerifyAndClearExpectations(data_type_manager); |
+ EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); |
+ EXPECT_CALL(observer_, OnStateChanged()).Times(1); |
+ profile_.GetPrefs()->ClearPref(prefs::kSyncManaged); |
+} |
+ |
TEST_F(ProfileSyncServiceStartupTest, SKIP_MACOSX(StartFailure)) { |
DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
DataTypeManager::ConfigureResult result = |