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 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 // Then start things up. | 145 // Then start things up. |
146 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); | 146 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); |
147 EXPECT_CALL(*data_type_manager, state()). | 147 EXPECT_CALL(*data_type_manager, state()). |
148 WillOnce(Return(DataTypeManager::CONFIGURED)). | 148 WillOnce(Return(DataTypeManager::CONFIGURED)). |
149 WillOnce(Return(DataTypeManager::CONFIGURED)); | 149 WillOnce(Return(DataTypeManager::CONFIGURED)); |
150 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 150 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
151 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 151 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
152 | 152 |
153 // Create some tokens in the token service; the service will startup when | 153 // Create some tokens in the token service; the service will startup when |
154 // it is notified that tokens are available. | 154 // it is notified that tokens are available. |
155 service_->set_setup_in_progress(true); | 155 service_->SetSetupInProgress(true); |
156 service_->signin()->StartSignIn("test_user", "", "", ""); | 156 service_->signin()->StartSignIn("test_user", "", "", ""); |
157 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 157 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
158 GaiaConstants::kSyncService, "sync_token"); | 158 GaiaConstants::kSyncService, "sync_token"); |
159 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 159 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
160 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 160 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
161 service_->set_setup_in_progress(false); | 161 service_->SetSetupInProgress(false); |
162 service_->OnUserChoseDatatypes( | |
163 false, syncable::ModelTypeSet(syncable::BOOKMARKS)); | |
164 EXPECT_TRUE(service_->ShouldPushChanges()); | 162 EXPECT_TRUE(service_->ShouldPushChanges()); |
165 } | 163 } |
166 | 164 |
167 TEST_F(ProfileSyncServiceStartupTest, StartNoCredentials) { | 165 TEST_F(ProfileSyncServiceStartupTest, StartNoCredentials) { |
168 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 166 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
169 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); | 167 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); |
170 | 168 |
171 // We've never completed startup. | 169 // We've never completed startup. |
172 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); | 170 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); |
173 // Make sure SigninManager doesn't think we're signed in (undoes the call to | 171 // Make sure SigninManager doesn't think we're signed in (undoes the call to |
(...skipping 12 matching lines...) Expand all Loading... |
186 Mock::VerifyAndClearExpectations(data_type_manager); | 184 Mock::VerifyAndClearExpectations(data_type_manager); |
187 | 185 |
188 // Then start things up. | 186 // Then start things up. |
189 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); | 187 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); |
190 EXPECT_CALL(*data_type_manager, state()). | 188 EXPECT_CALL(*data_type_manager, state()). |
191 WillOnce(Return(DataTypeManager::CONFIGURED)). | 189 WillOnce(Return(DataTypeManager::CONFIGURED)). |
192 WillOnce(Return(DataTypeManager::CONFIGURED)); | 190 WillOnce(Return(DataTypeManager::CONFIGURED)); |
193 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 191 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
194 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 192 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
195 | 193 |
196 service_->set_setup_in_progress(true); | 194 service_->SetSetupInProgress(true); |
197 service_->signin()->StartSignIn("test_user", "", "", ""); | 195 service_->signin()->StartSignIn("test_user", "", "", ""); |
198 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens. | 196 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens. |
199 content::NotificationService::current()->Notify( | 197 content::NotificationService::current()->Notify( |
200 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED, | 198 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED, |
201 content::Source<TokenService>( | 199 content::Source<TokenService>( |
202 TokenServiceFactory::GetForProfile(profile_.get())), | 200 TokenServiceFactory::GetForProfile(profile_.get())), |
203 content::NotificationService::NoDetails()); | 201 content::NotificationService::NoDetails()); |
204 service_->set_setup_in_progress(false); | 202 service_->SetSetupInProgress(false); |
205 service_->OnUserChoseDatatypes( | |
206 false, syncable::ModelTypeSet(syncable::BOOKMARKS)); | |
207 // Backend should initialize using a bogus GAIA token for credentials. | 203 // Backend should initialize using a bogus GAIA token for credentials. |
208 EXPECT_TRUE(service_->ShouldPushChanges()); | 204 EXPECT_TRUE(service_->ShouldPushChanges()); |
209 } | 205 } |
210 | 206 |
211 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) { | 207 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) { |
212 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0); | 208 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0); |
213 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); | 209 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); |
214 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 210 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
215 | 211 |
216 service_->Initialize(); | 212 service_->Initialize(); |
217 // Sync should not start because there are no tokens yet. | 213 // Sync should not start because there are no tokens yet. |
218 EXPECT_FALSE(service_->ShouldPushChanges()); | 214 EXPECT_FALSE(service_->ShouldPushChanges()); |
219 EXPECT_FALSE(service_->GetBackendForTest()); | 215 EXPECT_FALSE(service_->GetBackendForTest()); |
220 content::NotificationService::current()->Notify( | 216 content::NotificationService::current()->Notify( |
221 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED, | 217 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED, |
222 content::Source<TokenService>( | 218 content::Source<TokenService>( |
223 TokenServiceFactory::GetForProfile(profile_.get())), | 219 TokenServiceFactory::GetForProfile(profile_.get())), |
224 content::NotificationService::NoDetails()); | 220 content::NotificationService::NoDetails()); |
225 service_->set_setup_in_progress(false); | 221 service_->SetSetupInProgress(false); |
226 // Sync should not start because there are still no tokens. | 222 // Sync should not start because there are still no tokens. |
227 EXPECT_FALSE(service_->ShouldPushChanges()); | 223 EXPECT_FALSE(service_->ShouldPushChanges()); |
228 EXPECT_FALSE(service_->GetBackendForTest()); | 224 EXPECT_FALSE(service_->GetBackendForTest()); |
229 } | 225 } |
230 | 226 |
231 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) { | 227 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) { |
232 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 228 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
233 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); | 229 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); |
234 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 230 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
235 EXPECT_CALL(*data_type_manager, state()). | 231 EXPECT_CALL(*data_type_manager, state()). |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 | 399 |
404 // Preload the tokens. | 400 // Preload the tokens. |
405 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 401 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
406 GaiaConstants::kSyncService, "sync_token"); | 402 GaiaConstants::kSyncService, "sync_token"); |
407 service_->fail_initial_download(); | 403 service_->fail_initial_download(); |
408 | 404 |
409 service_->Initialize(); | 405 service_->Initialize(); |
410 EXPECT_FALSE(service_->sync_initialized()); | 406 EXPECT_FALSE(service_->sync_initialized()); |
411 EXPECT_FALSE(service_->GetBackendForTest()); | 407 EXPECT_FALSE(service_->GetBackendForTest()); |
412 } | 408 } |
OLD | NEW |