| 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
| 10 #include "chrome/browser/signin/signin_manager.h" | 10 #include "chrome/browser/signin/signin_manager.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 file_thread_.Stop(); | 66 file_thread_.Stop(); |
| 67 ui_loop_.RunAllPending(); | 67 ui_loop_.RunAllPending(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 protected: | 70 protected: |
| 71 // Overridden below by ProfileSyncServiceStartupCrosTest. | 71 // Overridden below by ProfileSyncServiceStartupCrosTest. |
| 72 virtual void CreateSyncService() { | 72 virtual void CreateSyncService() { |
| 73 SigninManager* signin = new FakeSigninManager(); | 73 SigninManager* signin = new FakeSigninManager(); |
| 74 signin->SetAuthenticatedUsername("test_user"); | 74 signin->SetAuthenticatedUsername("test_user"); |
| 75 profile_->SetSigninManager(signin); | 75 profile_->SetSigninManager(signin); |
| 76 service_.reset(new TestProfileSyncService(&factory_, | 76 service_.reset(new TestProfileSyncService( |
| 77 profile_.get(), | 77 new ProfileSyncComponentsFactoryMock(), |
| 78 signin, | 78 profile_.get(), |
| 79 ProfileSyncService::MANUAL_START, | 79 signin, |
| 80 true, | 80 ProfileSyncService::MANUAL_START, |
| 81 base::Closure())); | 81 true, |
| 82 base::Closure())); |
| 82 } | 83 } |
| 83 | 84 |
| 84 DataTypeManagerMock* SetUpDataTypeManager() { | 85 DataTypeManagerMock* SetUpDataTypeManager() { |
| 85 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); | 86 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); |
| 86 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)). | 87 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)). |
| 87 WillOnce(Return(data_type_manager)); | 88 WillOnce(Return(data_type_manager)); |
| 88 return data_type_manager; | 89 return data_type_manager; |
| 89 } | 90 } |
| 90 | 91 |
| 92 ProfileSyncComponentsFactoryMock* factory_mock() { |
| 93 return static_cast<ProfileSyncComponentsFactoryMock*>(service_->factory()); |
| 94 } |
| 95 |
| 91 MessageLoop ui_loop_; | 96 MessageLoop ui_loop_; |
| 92 content::TestBrowserThread ui_thread_; | 97 content::TestBrowserThread ui_thread_; |
| 93 content::TestBrowserThread file_thread_; | 98 content::TestBrowserThread file_thread_; |
| 94 content::TestBrowserThread io_thread_; | 99 content::TestBrowserThread io_thread_; |
| 95 scoped_ptr<TestingProfile> profile_; | 100 scoped_ptr<TestingProfile> profile_; |
| 96 ProfileSyncComponentsFactoryMock factory_; | |
| 97 scoped_ptr<TestProfileSyncService> service_; | 101 scoped_ptr<TestProfileSyncService> service_; |
| 98 ProfileSyncServiceObserverMock observer_; | 102 ProfileSyncServiceObserverMock observer_; |
| 99 }; | 103 }; |
| 100 | 104 |
| 101 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest { | 105 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest { |
| 102 protected: | 106 protected: |
| 103 virtual void CreateSyncService() { | 107 virtual void CreateSyncService() { |
| 104 SigninManager* signin = profile_->GetSigninManager(); | 108 SigninManager* signin = profile_->GetSigninManager(); |
| 105 signin->SetAuthenticatedUsername("test_user"); | 109 signin->SetAuthenticatedUsername("test_user"); |
| 106 service_.reset(new TestProfileSyncService(&factory_, | 110 service_.reset(new TestProfileSyncService( |
| 107 profile_.get(), | 111 new ProfileSyncComponentsFactoryMock(), |
| 108 signin, | 112 profile_.get(), |
| 109 ProfileSyncService::AUTO_START, | 113 signin, |
| 110 true, | 114 ProfileSyncService::AUTO_START, |
| 111 base::Closure())); | 115 true, |
| 116 base::Closure())); |
| 112 } | 117 } |
| 113 }; | 118 }; |
| 114 | 119 |
| 115 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) { | 120 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) { |
| 116 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 121 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 117 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); | 122 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); |
| 118 | 123 |
| 119 // We've never completed startup. | 124 // We've never completed startup. |
| 120 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); | 125 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); |
| 121 // Make sure SigninManager doesn't think we're signed in (undoes the call to | 126 // Make sure SigninManager doesn't think we're signed in (undoes the call to |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 profile_->GetTokenService()->IssueAuthTokenForTest( | 186 profile_->GetTokenService()->IssueAuthTokenForTest( |
| 182 GaiaConstants::kSyncService, "sync_token"); | 187 GaiaConstants::kSyncService, "sync_token"); |
| 183 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 188 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); |
| 184 service_->Initialize(); | 189 service_->Initialize(); |
| 185 } | 190 } |
| 186 | 191 |
| 187 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { | 192 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { |
| 188 // Disable sync through policy. | 193 // Disable sync through policy. |
| 189 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); | 194 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); |
| 190 | 195 |
| 191 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); | 196 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0); |
| 192 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 197 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 193 | 198 |
| 194 // Service should not be started by Initialize() since it's managed. | 199 // Service should not be started by Initialize() since it's managed. |
| 195 profile_->GetTokenService()->IssueAuthTokenForTest( | 200 profile_->GetTokenService()->IssueAuthTokenForTest( |
| 196 GaiaConstants::kSyncService, "sync_token"); | 201 GaiaConstants::kSyncService, "sync_token"); |
| 197 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 202 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); |
| 198 service_->Initialize(); | 203 service_->Initialize(); |
| 199 } | 204 } |
| 200 | 205 |
| 201 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { | 206 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 212 Mock::VerifyAndClearExpectations(data_type_manager); | 217 Mock::VerifyAndClearExpectations(data_type_manager); |
| 213 EXPECT_CALL(*data_type_manager, state()). | 218 EXPECT_CALL(*data_type_manager, state()). |
| 214 WillOnce(Return(DataTypeManager::CONFIGURED)); | 219 WillOnce(Return(DataTypeManager::CONFIGURED)); |
| 215 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 220 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
| 216 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 221 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 217 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); | 222 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); |
| 218 | 223 |
| 219 // When switching back to unmanaged, the state should change, but the service | 224 // When switching back to unmanaged, the state should change, but the service |
| 220 // should not start up automatically (kSyncSetupCompleted will be false). | 225 // should not start up automatically (kSyncSetupCompleted will be false). |
| 221 Mock::VerifyAndClearExpectations(data_type_manager); | 226 Mock::VerifyAndClearExpectations(data_type_manager); |
| 222 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); | 227 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0); |
| 223 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 228 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 224 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); | 229 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); |
| 225 } | 230 } |
| 226 | 231 |
| 227 TEST_F(ProfileSyncServiceStartupTest, ClearServerData) { | 232 TEST_F(ProfileSyncServiceStartupTest, ClearServerData) { |
| 228 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 233 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 229 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); | 234 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); |
| 230 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 235 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 231 | 236 |
| 232 profile_->GetTokenService()->IssueAuthTokenForTest( | 237 profile_->GetTokenService()->IssueAuthTokenForTest( |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 | 332 |
| 328 // Preload the tokens. | 333 // Preload the tokens. |
| 329 profile_->GetTokenService()->IssueAuthTokenForTest( | 334 profile_->GetTokenService()->IssueAuthTokenForTest( |
| 330 GaiaConstants::kSyncService, "sync_token"); | 335 GaiaConstants::kSyncService, "sync_token"); |
| 331 service_->fail_initial_download(); | 336 service_->fail_initial_download(); |
| 332 | 337 |
| 333 service_->Initialize(); | 338 service_->Initialize(); |
| 334 EXPECT_FALSE(service_->sync_initialized()); | 339 EXPECT_FALSE(service_->sync_initialized()); |
| 335 EXPECT_FALSE(service_->GetBackendForTest()); | 340 EXPECT_FALSE(service_->GetBackendForTest()); |
| 336 } | 341 } |
| OLD | NEW |