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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/compiler_specific.h" | 6 #include "base/compiler_specific.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/browser/invalidation/fake_invalidation_service.h" | 10 #include "chrome/browser/invalidation/fake_invalidation_service.h" |
11 #include "chrome/browser/invalidation/invalidation_service_factory.h" | 11 #include "chrome/browser/invalidation/invalidation_service_factory.h" |
12 #include "chrome/browser/managed_mode/managed_user_signin_manager_wrapper.h" | 12 #include "chrome/browser/managed_mode/managed_user_signin_manager_wrapper.h" |
13 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h" | 13 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h" |
14 #include "chrome/browser/signin/fake_profile_oauth2_token_service_wrapper.h" | 14 #include "chrome/browser/signin/fake_profile_oauth2_token_service_wrapper.h" |
15 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" | 15 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
16 #include "chrome/browser/signin/signin_manager.h" | 16 #include "chrome/browser/signin/signin_manager.h" |
17 #include "chrome/browser/signin/signin_manager_factory.h" | 17 #include "chrome/browser/signin/signin_manager_factory.h" |
18 #include "chrome/browser/sync/glue/data_type_manager_impl.h" | 18 #include "chrome/browser/sync/glue/data_type_manager_impl.h" |
19 #include "chrome/browser/sync/glue/sync_backend_host_mock.h" | 19 #include "chrome/browser/sync/glue/sync_backend_host_mock.h" |
20 #include "chrome/browser/sync/profile_sync_components_factory_mock.h" | 20 #include "chrome/browser/sync/profile_sync_components_factory_mock.h" |
21 #include "chrome/common/pref_names.h" | 21 #include "chrome/common/pref_names.h" |
22 #include "chrome/test/base/testing_pref_service_syncable.h" | 22 #include "chrome/test/base/testing_pref_service_syncable.h" |
23 #include "chrome/test/base/testing_profile.h" | 23 #include "chrome/test/base/testing_profile.h" |
| 24 #include "components/sync_driver/pref_names.h" |
24 #include "content/public/test/test_browser_thread_bundle.h" | 25 #include "content/public/test/test_browser_thread_bundle.h" |
25 #include "google_apis/gaia/gaia_constants.h" | 26 #include "google_apis/gaia/gaia_constants.h" |
26 #include "testing/gmock/include/gmock/gmock.h" | 27 #include "testing/gmock/include/gmock/gmock.h" |
27 #include "testing/gtest/include/gtest/gtest.h" | 28 #include "testing/gtest/include/gtest/gtest.h" |
28 | 29 |
29 namespace browser_sync { | 30 namespace browser_sync { |
30 | 31 |
31 namespace { | 32 namespace { |
32 | 33 |
33 ACTION(ReturnNewDataTypeManager) { | 34 ACTION(ReturnNewDataTypeManager) { |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 CreateService(browser_sync::AUTO_START); | 186 CreateService(browser_sync::AUTO_START); |
186 Initialize(); | 187 Initialize(); |
187 const std::string& url = service()->sync_service_url().spec(); | 188 const std::string& url = service()->sync_service_url().spec(); |
188 EXPECT_TRUE(url == ProfileSyncService::kSyncServerUrl || | 189 EXPECT_TRUE(url == ProfileSyncService::kSyncServerUrl || |
189 url == ProfileSyncService::kDevServerUrl); | 190 url == ProfileSyncService::kDevServerUrl); |
190 } | 191 } |
191 | 192 |
192 // Verify a successful initialization. | 193 // Verify a successful initialization. |
193 TEST_F(ProfileSyncServiceTest, SuccessfulInitialization) { | 194 TEST_F(ProfileSyncServiceTest, SuccessfulInitialization) { |
194 profile()->GetTestingPrefService()->SetManagedPref( | 195 profile()->GetTestingPrefService()->SetManagedPref( |
195 prefs::kSyncManaged, | 196 sync_driver::prefs::kSyncManaged, base::Value::CreateBooleanValue(false)); |
196 base::Value::CreateBooleanValue(false)); | |
197 IssueTestTokens(); | 197 IssueTestTokens(); |
198 CreateService(browser_sync::AUTO_START); | 198 CreateService(browser_sync::AUTO_START); |
199 ExpectDataTypeManagerCreation(); | 199 ExpectDataTypeManagerCreation(); |
200 ExpectSyncBackendHostCreation(); | 200 ExpectSyncBackendHostCreation(); |
201 Initialize(); | 201 Initialize(); |
202 EXPECT_FALSE(service()->IsManaged()); | 202 EXPECT_FALSE(service()->IsManaged()); |
203 EXPECT_TRUE(service()->sync_initialized()); | 203 EXPECT_TRUE(service()->sync_initialized()); |
204 } | 204 } |
205 | 205 |
206 | 206 |
(...skipping 10 matching lines...) Expand all Loading... |
217 EXPECT_TRUE(observer.first_setup_in_progress()); | 217 EXPECT_TRUE(observer.first_setup_in_progress()); |
218 service()->SetSetupInProgress(false); | 218 service()->SetSetupInProgress(false); |
219 EXPECT_FALSE(observer.first_setup_in_progress()); | 219 EXPECT_FALSE(observer.first_setup_in_progress()); |
220 | 220 |
221 service()->RemoveObserver(&observer); | 221 service()->RemoveObserver(&observer); |
222 } | 222 } |
223 | 223 |
224 // Verify that disable by enterprise policy works. | 224 // Verify that disable by enterprise policy works. |
225 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { | 225 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { |
226 profile()->GetTestingPrefService()->SetManagedPref( | 226 profile()->GetTestingPrefService()->SetManagedPref( |
227 prefs::kSyncManaged, | 227 sync_driver::prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); |
228 base::Value::CreateBooleanValue(true)); | |
229 IssueTestTokens(); | 228 IssueTestTokens(); |
230 CreateService(browser_sync::AUTO_START); | 229 CreateService(browser_sync::AUTO_START); |
231 Initialize(); | 230 Initialize(); |
232 EXPECT_TRUE(service()->IsManaged()); | 231 EXPECT_TRUE(service()->IsManaged()); |
233 EXPECT_FALSE(service()->sync_initialized()); | 232 EXPECT_FALSE(service()->sync_initialized()); |
234 } | 233 } |
235 | 234 |
236 // Verify that disable by enterprise policy works even after the backend has | 235 // Verify that disable by enterprise policy works even after the backend has |
237 // been initialized. | 236 // been initialized. |
238 TEST_F(ProfileSyncServiceTest, DisabledByPolicyAfterInit) { | 237 TEST_F(ProfileSyncServiceTest, DisabledByPolicyAfterInit) { |
239 IssueTestTokens(); | 238 IssueTestTokens(); |
240 CreateService(browser_sync::AUTO_START); | 239 CreateService(browser_sync::AUTO_START); |
241 ExpectDataTypeManagerCreation(); | 240 ExpectDataTypeManagerCreation(); |
242 ExpectSyncBackendHostCreation(); | 241 ExpectSyncBackendHostCreation(); |
243 Initialize(); | 242 Initialize(); |
244 | 243 |
245 EXPECT_FALSE(service()->IsManaged()); | 244 EXPECT_FALSE(service()->IsManaged()); |
246 EXPECT_TRUE(service()->sync_initialized()); | 245 EXPECT_TRUE(service()->sync_initialized()); |
247 | 246 |
248 profile()->GetTestingPrefService()->SetManagedPref( | 247 profile()->GetTestingPrefService()->SetManagedPref( |
249 prefs::kSyncManaged, | 248 sync_driver::prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); |
250 base::Value::CreateBooleanValue(true)); | |
251 | 249 |
252 EXPECT_TRUE(service()->IsManaged()); | 250 EXPECT_TRUE(service()->IsManaged()); |
253 EXPECT_FALSE(service()->sync_initialized()); | 251 EXPECT_FALSE(service()->sync_initialized()); |
254 } | 252 } |
255 | 253 |
256 // Exercies the ProfileSyncService's code paths related to getting shut down | 254 // Exercies the ProfileSyncService's code paths related to getting shut down |
257 // before the backend initialize call returns. | 255 // before the backend initialize call returns. |
258 TEST_F(ProfileSyncServiceTest, AbortedByShutdown) { | 256 TEST_F(ProfileSyncServiceTest, AbortedByShutdown) { |
259 CreateService(browser_sync::AUTO_START); | 257 CreateService(browser_sync::AUTO_START); |
260 PrepareDelayedInitSyncBackendHost(); | 258 PrepareDelayedInitSyncBackendHost(); |
261 | 259 |
262 IssueTestTokens(); | 260 IssueTestTokens(); |
263 Initialize(); | 261 Initialize(); |
264 EXPECT_FALSE(service()->sync_initialized()); | 262 EXPECT_FALSE(service()->sync_initialized()); |
265 | 263 |
266 ShutdownAndDeleteService(); | 264 ShutdownAndDeleteService(); |
267 } | 265 } |
268 | 266 |
269 // Test StopAndSuppress() before we've initialized the backend. | 267 // Test StopAndSuppress() before we've initialized the backend. |
270 TEST_F(ProfileSyncServiceTest, EarlyStopAndSuppress) { | 268 TEST_F(ProfileSyncServiceTest, EarlyStopAndSuppress) { |
271 CreateService(browser_sync::AUTO_START); | 269 CreateService(browser_sync::AUTO_START); |
272 IssueTestTokens(); | 270 IssueTestTokens(); |
273 | 271 |
274 service()->StopAndSuppress(); | 272 service()->StopAndSuppress(); |
275 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)); | 273 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean( |
| 274 sync_driver::prefs::kSyncSuppressStart)); |
276 | 275 |
277 // Because of supression, this should fail. | 276 // Because of supression, this should fail. |
278 Initialize(); | 277 Initialize(); |
279 EXPECT_FALSE(service()->sync_initialized()); | 278 EXPECT_FALSE(service()->sync_initialized()); |
280 | 279 |
281 // Remove suppression. This should be enough to allow init to happen. | 280 // Remove suppression. This should be enough to allow init to happen. |
282 ExpectDataTypeManagerCreation(); | 281 ExpectDataTypeManagerCreation(); |
283 ExpectSyncBackendHostCreation(); | 282 ExpectSyncBackendHostCreation(); |
284 service()->UnsuppressAndStart(); | 283 service()->UnsuppressAndStart(); |
285 EXPECT_TRUE(service()->sync_initialized()); | 284 EXPECT_TRUE(service()->sync_initialized()); |
286 EXPECT_FALSE( | 285 EXPECT_FALSE(profile()->GetPrefs()->GetBoolean( |
287 profile()->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)); | 286 sync_driver::prefs::kSyncSuppressStart)); |
288 } | 287 } |
289 | 288 |
290 // Test StopAndSuppress() after we've initialized the backend. | 289 // Test StopAndSuppress() after we've initialized the backend. |
291 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { | 290 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { |
292 CreateService(browser_sync::AUTO_START); | 291 CreateService(browser_sync::AUTO_START); |
293 IssueTestTokens(); | 292 IssueTestTokens(); |
294 ExpectDataTypeManagerCreation(); | 293 ExpectDataTypeManagerCreation(); |
295 ExpectSyncBackendHostCreation(); | 294 ExpectSyncBackendHostCreation(); |
296 Initialize(); | 295 Initialize(); |
297 | 296 |
298 EXPECT_TRUE(service()->sync_initialized()); | 297 EXPECT_TRUE(service()->sync_initialized()); |
299 EXPECT_FALSE(profile()->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)); | 298 EXPECT_FALSE(profile()->GetPrefs()->GetBoolean( |
| 299 sync_driver::prefs::kSyncSuppressStart)); |
300 | 300 |
301 testing::Mock::VerifyAndClearExpectations(components_factory()); | 301 testing::Mock::VerifyAndClearExpectations(components_factory()); |
302 | 302 |
303 service()->StopAndSuppress(); | 303 service()->StopAndSuppress(); |
304 EXPECT_FALSE(service()->sync_initialized()); | 304 EXPECT_FALSE(service()->sync_initialized()); |
305 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)); | 305 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean( |
| 306 sync_driver::prefs::kSyncSuppressStart)); |
306 | 307 |
307 ExpectDataTypeManagerCreation(); | 308 ExpectDataTypeManagerCreation(); |
308 ExpectSyncBackendHostCreation(); | 309 ExpectSyncBackendHostCreation(); |
309 | 310 |
310 service()->UnsuppressAndStart(); | 311 service()->UnsuppressAndStart(); |
311 EXPECT_TRUE(service()->sync_initialized()); | 312 EXPECT_TRUE(service()->sync_initialized()); |
312 EXPECT_FALSE( | 313 EXPECT_FALSE(profile()->GetPrefs()->GetBoolean( |
313 profile()->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)); | 314 sync_driver::prefs::kSyncSuppressStart)); |
314 } | 315 } |
315 | 316 |
316 // Certain ProfileSyncService tests don't apply to Chrome OS, for example | 317 // Certain ProfileSyncService tests don't apply to Chrome OS, for example |
317 // things that deal with concepts like "signing out" and policy. | 318 // things that deal with concepts like "signing out" and policy. |
318 #if !defined (OS_CHROMEOS) | 319 #if !defined (OS_CHROMEOS) |
319 | 320 |
320 TEST_F(ProfileSyncServiceTest, EnableSyncAndSignOut) { | 321 TEST_F(ProfileSyncServiceTest, EnableSyncAndSignOut) { |
321 CreateService(browser_sync::AUTO_START); | 322 CreateService(browser_sync::AUTO_START); |
322 ExpectDataTypeManagerCreation(); | 323 ExpectDataTypeManagerCreation(); |
323 ExpectSyncBackendHostCreation(); | 324 ExpectSyncBackendHostCreation(); |
324 IssueTestTokens(); | 325 IssueTestTokens(); |
325 Initialize(); | 326 Initialize(); |
326 | 327 |
327 EXPECT_TRUE(service()->sync_initialized()); | 328 EXPECT_TRUE(service()->sync_initialized()); |
328 EXPECT_FALSE(profile()->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)); | 329 EXPECT_FALSE(profile()->GetPrefs()->GetBoolean( |
| 330 sync_driver::prefs::kSyncSuppressStart)); |
329 | 331 |
330 SigninManagerFactory::GetForProfile(profile())->SignOut(); | 332 SigninManagerFactory::GetForProfile(profile())->SignOut(); |
331 EXPECT_FALSE(service()->sync_initialized()); | 333 EXPECT_FALSE(service()->sync_initialized()); |
332 } | 334 } |
333 | 335 |
334 #endif // !defined(OS_CHROMEOS) | 336 #endif // !defined(OS_CHROMEOS) |
335 | 337 |
336 TEST_F(ProfileSyncServiceTest, GetSyncTokenStatus) { | 338 TEST_F(ProfileSyncServiceTest, GetSyncTokenStatus) { |
337 CreateService(browser_sync::AUTO_START); | 339 CreateService(browser_sync::AUTO_START); |
338 IssueTestTokens(); | 340 IssueTestTokens(); |
(...skipping 26 matching lines...) Expand all Loading... |
365 EXPECT_TRUE(token_status.next_token_request_time.is_null()); | 367 EXPECT_TRUE(token_status.next_token_request_time.is_null()); |
366 | 368 |
367 // Simulate successful connection. | 369 // Simulate successful connection. |
368 service()->OnConnectionStatusChange(syncer::CONNECTION_OK); | 370 service()->OnConnectionStatusChange(syncer::CONNECTION_OK); |
369 token_status = service()->GetSyncTokenStatus(); | 371 token_status = service()->GetSyncTokenStatus(); |
370 EXPECT_EQ(syncer::CONNECTION_OK, token_status.connection_status); | 372 EXPECT_EQ(syncer::CONNECTION_OK, token_status.connection_status); |
371 } | 373 } |
372 | 374 |
373 } // namespace | 375 } // namespace |
374 } // namespace browser_sync | 376 } // namespace browser_sync |
OLD | NEW |