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 "components/browser_sync/profile_sync_service.h" | 5 #include "components/browser_sync/profile_sync_service.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 #include "components/sync/driver/sync_service_observer.h" | 40 #include "components/sync/driver/sync_service_observer.h" |
41 #include "components/sync/driver/sync_util.h" | 41 #include "components/sync/driver/sync_util.h" |
42 #include "components/syncable_prefs/testing_pref_service_syncable.h" | 42 #include "components/syncable_prefs/testing_pref_service_syncable.h" |
43 #include "components/version_info/version_info.h" | 43 #include "components/version_info/version_info.h" |
44 #include "components/version_info/version_info_values.h" | 44 #include "components/version_info/version_info_values.h" |
45 #include "google_apis/gaia/gaia_constants.h" | 45 #include "google_apis/gaia/gaia_constants.h" |
46 #include "testing/gmock/include/gmock/gmock.h" | 46 #include "testing/gmock/include/gmock/gmock.h" |
47 #include "testing/gtest/include/gtest/gtest.h" | 47 #include "testing/gtest/include/gtest/gtest.h" |
48 #include "ui/base/l10n/l10n_util.h" | 48 #include "ui/base/l10n/l10n_util.h" |
49 | 49 |
50 using syncer::SyncBackendHostMock; | |
51 using testing::Return; | 50 using testing::Return; |
52 | 51 |
53 namespace browser_sync { | 52 namespace browser_sync { |
54 | 53 |
55 namespace { | 54 namespace { |
56 | 55 |
57 const char kGaiaId[] = "12345"; | 56 const char kGaiaId[] = "12345"; |
58 const char kEmail[] = "test_user@gmail.com"; | 57 const char kEmail[] = "test_user@gmail.com"; |
59 | 58 |
60 class FakeDataTypeManager : public syncer::DataTypeManager { | 59 class FakeDataTypeManager : public sync_driver::DataTypeManager { |
61 public: | 60 public: |
62 typedef base::Callback<void(syncer::ConfigureReason)> ConfigureCalled; | 61 typedef base::Callback<void(syncer::ConfigureReason)> ConfigureCalled; |
63 | 62 |
64 explicit FakeDataTypeManager(const ConfigureCalled& configure_called) | 63 explicit FakeDataTypeManager(const ConfigureCalled& configure_called) |
65 : configure_called_(configure_called) {} | 64 : configure_called_(configure_called) {} |
66 | 65 |
67 ~FakeDataTypeManager() override{}; | 66 ~FakeDataTypeManager() override{}; |
68 | 67 |
69 void Configure(syncer::ModelTypeSet desired_types, | 68 void Configure(syncer::ModelTypeSet desired_types, |
70 syncer::ConfigureReason reason) override { | 69 syncer::ConfigureReason reason) override { |
71 DCHECK(!configure_called_.is_null()); | 70 DCHECK(!configure_called_.is_null()); |
72 configure_called_.Run(reason); | 71 configure_called_.Run(reason); |
73 } | 72 } |
74 | 73 |
75 void ReenableType(syncer::ModelType type) override {} | 74 void ReenableType(syncer::ModelType type) override {} |
76 void ResetDataTypeErrors() override {} | 75 void ResetDataTypeErrors() override {} |
77 void PurgeForMigration(syncer::ModelTypeSet undesired_types, | 76 void PurgeForMigration(syncer::ModelTypeSet undesired_types, |
78 syncer::ConfigureReason reason) override {} | 77 syncer::ConfigureReason reason) override {} |
79 void Stop() override{}; | 78 void Stop() override{}; |
80 State state() const override { return syncer::DataTypeManager::CONFIGURED; }; | 79 State state() const override { |
| 80 return sync_driver::DataTypeManager::CONFIGURED; |
| 81 }; |
81 | 82 |
82 private: | 83 private: |
83 ConfigureCalled configure_called_; | 84 ConfigureCalled configure_called_; |
84 }; | 85 }; |
85 | 86 |
86 ACTION_P(ReturnNewDataTypeManager, configure_called) { | 87 ACTION_P(ReturnNewDataTypeManager, configure_called) { |
87 return new FakeDataTypeManager(configure_called); | 88 return new FakeDataTypeManager(configure_called); |
88 } | 89 } |
89 | 90 |
90 using testing::Return; | 91 using testing::Return; |
91 using testing::StrictMock; | 92 using testing::StrictMock; |
92 using testing::_; | 93 using testing::_; |
93 | 94 |
94 class TestSyncServiceObserver : public syncer::SyncServiceObserver { | 95 class TestSyncServiceObserver : public sync_driver::SyncServiceObserver { |
95 public: | 96 public: |
96 explicit TestSyncServiceObserver(ProfileSyncService* service) | 97 explicit TestSyncServiceObserver(ProfileSyncService* service) |
97 : service_(service), setup_in_progress_(false) {} | 98 : service_(service), setup_in_progress_(false) {} |
98 void OnStateChanged() override { | 99 void OnStateChanged() override { |
99 setup_in_progress_ = service_->IsSetupInProgress(); | 100 setup_in_progress_ = service_->IsSetupInProgress(); |
100 } | 101 } |
101 bool setup_in_progress() const { return setup_in_progress_; } | 102 bool setup_in_progress() const { return setup_in_progress_; } |
102 | 103 |
103 private: | 104 private: |
104 ProfileSyncService* service_; | 105 ProfileSyncService* service_; |
105 bool setup_in_progress_; | 106 bool setup_in_progress_; |
106 }; | 107 }; |
107 | 108 |
108 // A variant of the SyncBackendHostMock that won't automatically | 109 // A variant of the SyncBackendHostMock that won't automatically |
109 // call back when asked to initialized. Allows us to test things | 110 // call back when asked to initialized. Allows us to test things |
110 // that could happen while backend init is in progress. | 111 // that could happen while backend init is in progress. |
111 class SyncBackendHostNoReturn : public SyncBackendHostMock { | 112 class SyncBackendHostNoReturn : public SyncBackendHostMock { |
112 void Initialize( | 113 void Initialize( |
113 syncer::SyncFrontend* frontend, | 114 sync_driver::SyncFrontend* frontend, |
114 std::unique_ptr<base::Thread> sync_thread, | 115 std::unique_ptr<base::Thread> sync_thread, |
115 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, | 116 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, |
116 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, | 117 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, |
117 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, | 118 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, |
118 const GURL& service_url, | 119 const GURL& service_url, |
119 const std::string& sync_user_agent, | 120 const std::string& sync_user_agent, |
120 const syncer::SyncCredentials& credentials, | 121 const syncer::SyncCredentials& credentials, |
121 bool delete_sync_data_folder, | 122 bool delete_sync_data_folder, |
122 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, | 123 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, |
123 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& | 124 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& |
124 unrecoverable_error_handler, | 125 unrecoverable_error_handler, |
125 const base::Closure& report_unrecoverable_error_function, | 126 const base::Closure& report_unrecoverable_error_function, |
126 const HttpPostProviderFactoryGetter& http_post_provider_factory_getter, | 127 const HttpPostProviderFactoryGetter& http_post_provider_factory_getter, |
127 std::unique_ptr<syncer::SyncEncryptionHandler::NigoriState> | 128 std::unique_ptr<syncer::SyncEncryptionHandler::NigoriState> |
128 saved_nigori_state) override {} | 129 saved_nigori_state) override {} |
129 }; | 130 }; |
130 | 131 |
131 class SyncBackendHostMockCollectDeleteDirParam : public SyncBackendHostMock { | 132 class SyncBackendHostMockCollectDeleteDirParam : public SyncBackendHostMock { |
132 public: | 133 public: |
133 explicit SyncBackendHostMockCollectDeleteDirParam( | 134 explicit SyncBackendHostMockCollectDeleteDirParam( |
134 std::vector<bool>* delete_dir_param) | 135 std::vector<bool>* delete_dir_param) |
135 : delete_dir_param_(delete_dir_param) {} | 136 : delete_dir_param_(delete_dir_param) {} |
136 | 137 |
137 void Initialize( | 138 void Initialize( |
138 syncer::SyncFrontend* frontend, | 139 sync_driver::SyncFrontend* frontend, |
139 std::unique_ptr<base::Thread> sync_thread, | 140 std::unique_ptr<base::Thread> sync_thread, |
140 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, | 141 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, |
141 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, | 142 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, |
142 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, | 143 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, |
143 const GURL& service_url, | 144 const GURL& service_url, |
144 const std::string& sync_user_agent, | 145 const std::string& sync_user_agent, |
145 const syncer::SyncCredentials& credentials, | 146 const syncer::SyncCredentials& credentials, |
146 bool delete_sync_data_folder, | 147 bool delete_sync_data_folder, |
147 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, | 148 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, |
148 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& | 149 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 signin_manager()->SetAuthenticatedAccountInfo(kGaiaId, kEmail); | 241 signin_manager()->SetAuthenticatedAccountInfo(kGaiaId, kEmail); |
241 component_factory_ = profile_sync_service_bundle_.component_factory(); | 242 component_factory_ = profile_sync_service_bundle_.component_factory(); |
242 ProfileSyncServiceBundle::SyncClientBuilder builder( | 243 ProfileSyncServiceBundle::SyncClientBuilder builder( |
243 &profile_sync_service_bundle_); | 244 &profile_sync_service_bundle_); |
244 ProfileSyncService::InitParams init_params = | 245 ProfileSyncService::InitParams init_params = |
245 profile_sync_service_bundle_.CreateBasicInitParams(behavior, | 246 profile_sync_service_bundle_.CreateBasicInitParams(behavior, |
246 builder.Build()); | 247 builder.Build()); |
247 | 248 |
248 service_.reset(new ProfileSyncService(std::move(init_params))); | 249 service_.reset(new ProfileSyncService(std::move(init_params))); |
249 service_->RegisterDataTypeController( | 250 service_->RegisterDataTypeController( |
250 base::MakeUnique<syncer::FakeDataTypeController>(syncer::BOOKMARKS)); | 251 base::MakeUnique<sync_driver::FakeDataTypeController>( |
| 252 syncer::BOOKMARKS)); |
251 } | 253 } |
252 | 254 |
253 #if defined(OS_WIN) || defined(OS_MACOSX) || \ | 255 #if defined(OS_WIN) || defined(OS_MACOSX) || \ |
254 (defined(OS_LINUX) && !defined(OS_CHROMEOS)) | 256 (defined(OS_LINUX) && !defined(OS_CHROMEOS)) |
255 void CreateServiceWithoutSignIn() { | 257 void CreateServiceWithoutSignIn() { |
256 CreateService(ProfileSyncService::AUTO_START); | 258 CreateService(ProfileSyncService::AUTO_START); |
257 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, | 259 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, |
258 signin_metrics::SignoutDelete::IGNORE_METRIC); | 260 signin_metrics::SignoutDelete::IGNORE_METRIC); |
259 } | 261 } |
260 #endif | 262 #endif |
261 | 263 |
262 void ShutdownAndDeleteService() { | 264 void ShutdownAndDeleteService() { |
263 if (service_) | 265 if (service_) |
264 service_->Shutdown(); | 266 service_->Shutdown(); |
265 service_.reset(); | 267 service_.reset(); |
266 } | 268 } |
267 | 269 |
268 void InitializeForNthSync() { | 270 void InitializeForNthSync() { |
269 // Set first sync time before initialize to simulate a complete sync setup. | 271 // Set first sync time before initialize to simulate a complete sync setup. |
270 syncer::SyncPrefs sync_prefs(prefs()); | 272 sync_driver::SyncPrefs sync_prefs(prefs()); |
271 sync_prefs.SetFirstSyncTime(base::Time::Now()); | 273 sync_prefs.SetFirstSyncTime(base::Time::Now()); |
272 sync_prefs.SetFirstSetupComplete(); | 274 sync_prefs.SetFirstSetupComplete(); |
273 sync_prefs.SetKeepEverythingSynced(true); | 275 sync_prefs.SetKeepEverythingSynced(true); |
274 service_->Initialize(); | 276 service_->Initialize(); |
275 } | 277 } |
276 | 278 |
277 void InitializeForFirstSync() { service_->Initialize(); } | 279 void InitializeForFirstSync() { service_->Initialize(); } |
278 | 280 |
279 void TriggerPassphraseRequired() { | 281 void TriggerPassphraseRequired() { |
280 service_->OnPassphraseRequired(syncer::REASON_DECRYPTION, | 282 service_->OnPassphraseRequired(syncer::REASON_DECRYPTION, |
281 sync_pb::EncryptedData()); | 283 sync_pb::EncryptedData()); |
282 } | 284 } |
283 | 285 |
284 void TriggerDataTypeStartRequest() { | 286 void TriggerDataTypeStartRequest() { |
285 service_->OnDataTypeRequestsSyncStartup(syncer::BOOKMARKS); | 287 service_->OnDataTypeRequestsSyncStartup(syncer::BOOKMARKS); |
286 } | 288 } |
287 | 289 |
288 void OnConfigureCalled(syncer::ConfigureReason configure_reason) { | 290 void OnConfigureCalled(syncer::ConfigureReason configure_reason) { |
289 syncer::DataTypeManager::ConfigureResult result; | 291 sync_driver::DataTypeManager::ConfigureResult result; |
290 result.status = syncer::DataTypeManager::OK; | 292 result.status = sync_driver::DataTypeManager::OK; |
291 service()->OnConfigureDone(result); | 293 service()->OnConfigureDone(result); |
292 } | 294 } |
293 | 295 |
294 FakeDataTypeManager::ConfigureCalled GetDefaultConfigureCalledCallback() { | 296 FakeDataTypeManager::ConfigureCalled GetDefaultConfigureCalledCallback() { |
295 return base::Bind(&ProfileSyncServiceTest::OnConfigureCalled, | 297 return base::Bind(&ProfileSyncServiceTest::OnConfigureCalled, |
296 base::Unretained(this)); | 298 base::Unretained(this)); |
297 } | 299 } |
298 | 300 |
299 void OnConfigureCalledRecordReason(syncer::ConfigureReason* reason_dest, | 301 void OnConfigureCalledRecordReason(syncer::ConfigureReason* reason_dest, |
300 syncer::ConfigureReason reason) { | 302 syncer::ConfigureReason reason) { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 ProfileOAuth2TokenService* auth_service() { | 362 ProfileOAuth2TokenService* auth_service() { |
361 return profile_sync_service_bundle_.auth_service(); | 363 return profile_sync_service_bundle_.auth_service(); |
362 } | 364 } |
363 | 365 |
364 ProfileSyncService* service() { return service_.get(); } | 366 ProfileSyncService* service() { return service_.get(); } |
365 | 367 |
366 syncable_prefs::TestingPrefServiceSyncable* prefs() { | 368 syncable_prefs::TestingPrefServiceSyncable* prefs() { |
367 return profile_sync_service_bundle_.pref_service(); | 369 return profile_sync_service_bundle_.pref_service(); |
368 } | 370 } |
369 | 371 |
370 syncer::SyncApiComponentFactoryMock* component_factory() { | 372 SyncApiComponentFactoryMock* component_factory() { |
371 return component_factory_; | 373 return component_factory_; |
372 } | 374 } |
373 | 375 |
374 protected: | 376 protected: |
375 void PumpLoop() { | 377 void PumpLoop() { |
376 base::RunLoop run_loop; | 378 base::RunLoop run_loop; |
377 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, | 379 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
378 run_loop.QuitClosure()); | 380 run_loop.QuitClosure()); |
379 run_loop.Run(); | 381 run_loop.Run(); |
380 } | 382 } |
381 | 383 |
382 private: | 384 private: |
383 base::MessageLoop message_loop_; | 385 base::MessageLoop message_loop_; |
384 ProfileSyncServiceBundle profile_sync_service_bundle_; | 386 ProfileSyncServiceBundle profile_sync_service_bundle_; |
385 std::unique_ptr<ProfileSyncService> service_; | 387 std::unique_ptr<ProfileSyncService> service_; |
386 | 388 |
387 // The current component factory used by sync. May be null if the server | 389 // The current component factory used by sync. May be null if the server |
388 // hasn't been created yet. | 390 // hasn't been created yet. |
389 syncer::SyncApiComponentFactoryMock* component_factory_; | 391 SyncApiComponentFactoryMock* component_factory_; |
390 }; | 392 }; |
391 | 393 |
392 // Verify that the server URLs are sane. | 394 // Verify that the server URLs are sane. |
393 TEST_F(ProfileSyncServiceTest, InitialState) { | 395 TEST_F(ProfileSyncServiceTest, InitialState) { |
394 CreateService(ProfileSyncService::AUTO_START); | 396 CreateService(ProfileSyncService::AUTO_START); |
395 InitializeForNthSync(); | 397 InitializeForNthSync(); |
396 const std::string& url = service()->sync_service_url().spec(); | 398 const std::string& url = service()->sync_service_url().spec(); |
397 EXPECT_TRUE(url == syncer::internal::kSyncServerUrl || | 399 EXPECT_TRUE(url == internal::kSyncServerUrl || |
398 url == syncer::internal::kSyncDevServerUrl); | 400 url == internal::kSyncDevServerUrl); |
399 } | 401 } |
400 | 402 |
401 // Verify a successful initialization. | 403 // Verify a successful initialization. |
402 TEST_F(ProfileSyncServiceTest, SuccessfulInitialization) { | 404 TEST_F(ProfileSyncServiceTest, SuccessfulInitialization) { |
403 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, | 405 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, |
404 new base::FundamentalValue(false)); | 406 new base::FundamentalValue(false)); |
405 IssueTestTokens(); | 407 IssueTestTokens(); |
406 CreateService(ProfileSyncService::AUTO_START); | 408 CreateService(ProfileSyncService::AUTO_START); |
407 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 409 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
408 ExpectSyncBackendHostCreation(1); | 410 ExpectSyncBackendHostCreation(1); |
409 InitializeForNthSync(); | 411 InitializeForNthSync(); |
410 EXPECT_FALSE(service()->IsManaged()); | 412 EXPECT_FALSE(service()->IsManaged()); |
411 EXPECT_TRUE(service()->IsSyncActive()); | 413 EXPECT_TRUE(service()->IsSyncActive()); |
412 } | 414 } |
413 | 415 |
414 // Verify that an initialization where first setup is not complete does not | 416 // Verify that an initialization where first setup is not complete does not |
415 // start up the backend. | 417 // start up the backend. |
416 TEST_F(ProfileSyncServiceTest, NeedsConfirmation) { | 418 TEST_F(ProfileSyncServiceTest, NeedsConfirmation) { |
417 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, | 419 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, |
418 new base::FundamentalValue(false)); | 420 new base::FundamentalValue(false)); |
419 IssueTestTokens(); | 421 IssueTestTokens(); |
420 CreateService(ProfileSyncService::MANUAL_START); | 422 CreateService(ProfileSyncService::MANUAL_START); |
421 syncer::SyncPrefs sync_prefs(prefs()); | 423 sync_driver::SyncPrefs sync_prefs(prefs()); |
422 base::Time now = base::Time::Now(); | 424 base::Time now = base::Time::Now(); |
423 sync_prefs.SetLastSyncedTime(now); | 425 sync_prefs.SetLastSyncedTime(now); |
424 sync_prefs.SetKeepEverythingSynced(true); | 426 sync_prefs.SetKeepEverythingSynced(true); |
425 service()->Initialize(); | 427 service()->Initialize(); |
426 EXPECT_FALSE(service()->IsSyncActive()); | 428 EXPECT_FALSE(service()->IsSyncActive()); |
427 | 429 |
428 // The last sync time shouldn't be cleared. | 430 // The last sync time shouldn't be cleared. |
429 // TODO(zea): figure out a way to check that the directory itself wasn't | 431 // TODO(zea): figure out a way to check that the directory itself wasn't |
430 // cleared. | 432 // cleared. |
431 EXPECT_EQ(now, sync_prefs.GetLastSyncedTime()); | 433 EXPECT_EQ(now, sync_prefs.GetLastSyncedTime()); |
(...skipping 11 matching lines...) Expand all Loading... |
443 auto sync_blocker = service()->GetSetupInProgressHandle(); | 445 auto sync_blocker = service()->GetSetupInProgressHandle(); |
444 EXPECT_TRUE(observer.setup_in_progress()); | 446 EXPECT_TRUE(observer.setup_in_progress()); |
445 sync_blocker.reset(); | 447 sync_blocker.reset(); |
446 EXPECT_FALSE(observer.setup_in_progress()); | 448 EXPECT_FALSE(observer.setup_in_progress()); |
447 | 449 |
448 service()->RemoveObserver(&observer); | 450 service()->RemoveObserver(&observer); |
449 } | 451 } |
450 | 452 |
451 // Verify that disable by enterprise policy works. | 453 // Verify that disable by enterprise policy works. |
452 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { | 454 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { |
453 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, | 455 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, |
454 new base::FundamentalValue(true)); | 456 new base::FundamentalValue(true)); |
455 IssueTestTokens(); | 457 IssueTestTokens(); |
456 CreateService(ProfileSyncService::AUTO_START); | 458 CreateService(ProfileSyncService::AUTO_START); |
457 InitializeForNthSync(); | 459 InitializeForNthSync(); |
458 EXPECT_TRUE(service()->IsManaged()); | 460 EXPECT_TRUE(service()->IsManaged()); |
459 EXPECT_FALSE(service()->IsSyncActive()); | 461 EXPECT_FALSE(service()->IsSyncActive()); |
460 } | 462 } |
461 | 463 |
462 // Verify that disable by enterprise policy works even after the backend has | 464 // Verify that disable by enterprise policy works even after the backend has |
463 // been initialized. | 465 // been initialized. |
464 TEST_F(ProfileSyncServiceTest, DisabledByPolicyAfterInit) { | 466 TEST_F(ProfileSyncServiceTest, DisabledByPolicyAfterInit) { |
465 IssueTestTokens(); | 467 IssueTestTokens(); |
466 CreateService(ProfileSyncService::AUTO_START); | 468 CreateService(ProfileSyncService::AUTO_START); |
467 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 469 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
468 ExpectSyncBackendHostCreation(1); | 470 ExpectSyncBackendHostCreation(1); |
469 InitializeForNthSync(); | 471 InitializeForNthSync(); |
470 | 472 |
471 EXPECT_FALSE(service()->IsManaged()); | 473 EXPECT_FALSE(service()->IsManaged()); |
472 EXPECT_TRUE(service()->IsSyncActive()); | 474 EXPECT_TRUE(service()->IsSyncActive()); |
473 | 475 |
474 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, | 476 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, |
475 new base::FundamentalValue(true)); | 477 new base::FundamentalValue(true)); |
476 | 478 |
477 EXPECT_TRUE(service()->IsManaged()); | 479 EXPECT_TRUE(service()->IsManaged()); |
478 EXPECT_FALSE(service()->IsSyncActive()); | 480 EXPECT_FALSE(service()->IsSyncActive()); |
479 } | 481 } |
480 | 482 |
481 // Exercies the ProfileSyncService's code paths related to getting shut down | 483 // Exercies the ProfileSyncService's code paths related to getting shut down |
482 // before the backend initialize call returns. | 484 // before the backend initialize call returns. |
483 TEST_F(ProfileSyncServiceTest, AbortedByShutdown) { | 485 TEST_F(ProfileSyncServiceTest, AbortedByShutdown) { |
484 CreateService(ProfileSyncService::AUTO_START); | 486 CreateService(ProfileSyncService::AUTO_START); |
(...skipping 29 matching lines...) Expand all Loading... |
514 | 516 |
515 // Test RequestStop() after we've initialized the backend. | 517 // Test RequestStop() after we've initialized the backend. |
516 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { | 518 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { |
517 CreateService(ProfileSyncService::AUTO_START); | 519 CreateService(ProfileSyncService::AUTO_START); |
518 IssueTestTokens(); | 520 IssueTestTokens(); |
519 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 521 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
520 ExpectSyncBackendHostCreation(1); | 522 ExpectSyncBackendHostCreation(1); |
521 InitializeForNthSync(); | 523 InitializeForNthSync(); |
522 | 524 |
523 EXPECT_TRUE(service()->IsSyncActive()); | 525 EXPECT_TRUE(service()->IsSyncActive()); |
524 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); | 526 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); |
525 | 527 |
526 testing::Mock::VerifyAndClearExpectations(component_factory()); | 528 testing::Mock::VerifyAndClearExpectations(component_factory()); |
527 | 529 |
528 service()->RequestStop(ProfileSyncService::KEEP_DATA); | 530 service()->RequestStop(ProfileSyncService::KEEP_DATA); |
529 EXPECT_FALSE(service()->IsSyncActive()); | 531 EXPECT_FALSE(service()->IsSyncActive()); |
530 EXPECT_TRUE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); | 532 EXPECT_TRUE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); |
531 | 533 |
532 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 534 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
533 ExpectSyncBackendHostCreation(1); | 535 ExpectSyncBackendHostCreation(1); |
534 | 536 |
535 service()->RequestStart(); | 537 service()->RequestStart(); |
536 EXPECT_TRUE(service()->IsSyncActive()); | 538 EXPECT_TRUE(service()->IsSyncActive()); |
537 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); | 539 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); |
538 } | 540 } |
539 | 541 |
540 // Certain ProfileSyncService tests don't apply to Chrome OS, for example | 542 // Certain ProfileSyncService tests don't apply to Chrome OS, for example |
541 // things that deal with concepts like "signing out" and policy. | 543 // things that deal with concepts like "signing out" and policy. |
542 #if !defined(OS_CHROMEOS) | 544 #if !defined(OS_CHROMEOS) |
543 TEST_F(ProfileSyncServiceTest, EnableSyncAndSignOut) { | 545 TEST_F(ProfileSyncServiceTest, EnableSyncAndSignOut) { |
544 CreateService(ProfileSyncService::AUTO_START); | 546 CreateService(ProfileSyncService::AUTO_START); |
545 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 547 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
546 ExpectSyncBackendHostCreation(1); | 548 ExpectSyncBackendHostCreation(1); |
547 IssueTestTokens(); | 549 IssueTestTokens(); |
548 InitializeForNthSync(); | 550 InitializeForNthSync(); |
549 | 551 |
550 EXPECT_TRUE(service()->IsSyncActive()); | 552 EXPECT_TRUE(service()->IsSyncActive()); |
551 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); | 553 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); |
552 | 554 |
553 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, | 555 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, |
554 signin_metrics::SignoutDelete::IGNORE_METRIC); | 556 signin_metrics::SignoutDelete::IGNORE_METRIC); |
555 EXPECT_FALSE(service()->IsSyncActive()); | 557 EXPECT_FALSE(service()->IsSyncActive()); |
556 } | 558 } |
557 #endif // !defined(OS_CHROMEOS) | 559 #endif // !defined(OS_CHROMEOS) |
558 | 560 |
559 TEST_F(ProfileSyncServiceTest, GetSyncTokenStatus) { | 561 TEST_F(ProfileSyncServiceTest, GetSyncTokenStatus) { |
560 CreateService(ProfileSyncService::AUTO_START); | 562 CreateService(ProfileSyncService::AUTO_START); |
561 IssueTestTokens(); | 563 IssueTestTokens(); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
676 | 678 |
677 // Test Sync will stop after receive memory pressure | 679 // Test Sync will stop after receive memory pressure |
678 TEST_F(ProfileSyncServiceTest, MemoryPressureRecording) { | 680 TEST_F(ProfileSyncServiceTest, MemoryPressureRecording) { |
679 CreateService(ProfileSyncService::AUTO_START); | 681 CreateService(ProfileSyncService::AUTO_START); |
680 IssueTestTokens(); | 682 IssueTestTokens(); |
681 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 683 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
682 ExpectSyncBackendHostCreation(1); | 684 ExpectSyncBackendHostCreation(1); |
683 InitializeForNthSync(); | 685 InitializeForNthSync(); |
684 | 686 |
685 EXPECT_TRUE(service()->IsSyncActive()); | 687 EXPECT_TRUE(service()->IsSyncActive()); |
686 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); | 688 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); |
687 | 689 |
688 testing::Mock::VerifyAndClearExpectations(component_factory()); | 690 testing::Mock::VerifyAndClearExpectations(component_factory()); |
689 | 691 |
690 syncer::SyncPrefs sync_prefs(service()->GetSyncClient()->GetPrefService()); | 692 sync_driver::SyncPrefs sync_prefs( |
| 693 service()->GetSyncClient()->GetPrefService()); |
691 | 694 |
692 EXPECT_EQ(prefs()->GetInteger(syncer::prefs::kSyncMemoryPressureWarningCount), | 695 EXPECT_EQ( |
693 0); | 696 prefs()->GetInteger(sync_driver::prefs::kSyncMemoryPressureWarningCount), |
| 697 0); |
694 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); | 698 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); |
695 | 699 |
696 // Simulate memory pressure notification. | 700 // Simulate memory pressure notification. |
697 base::MemoryPressureListener::NotifyMemoryPressure( | 701 base::MemoryPressureListener::NotifyMemoryPressure( |
698 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); | 702 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); |
699 base::RunLoop().RunUntilIdle(); | 703 base::RunLoop().RunUntilIdle(); |
700 | 704 |
701 // Verify memory pressure recorded. | 705 // Verify memory pressure recorded. |
702 EXPECT_EQ(prefs()->GetInteger(syncer::prefs::kSyncMemoryPressureWarningCount), | 706 EXPECT_EQ( |
703 1); | 707 prefs()->GetInteger(sync_driver::prefs::kSyncMemoryPressureWarningCount), |
| 708 1); |
704 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); | 709 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); |
705 | 710 |
706 // Simulate memory pressure notification. | 711 // Simulate memory pressure notification. |
707 base::MemoryPressureListener::NotifyMemoryPressure( | 712 base::MemoryPressureListener::NotifyMemoryPressure( |
708 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); | 713 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); |
709 base::RunLoop().RunUntilIdle(); | 714 base::RunLoop().RunUntilIdle(); |
710 ShutdownAndDeleteService(); | 715 ShutdownAndDeleteService(); |
711 | 716 |
712 // Verify memory pressure and shutdown recorded. | 717 // Verify memory pressure and shutdown recorded. |
713 EXPECT_EQ(prefs()->GetInteger(syncer::prefs::kSyncMemoryPressureWarningCount), | 718 EXPECT_EQ( |
714 2); | 719 prefs()->GetInteger(sync_driver::prefs::kSyncMemoryPressureWarningCount), |
| 720 2); |
715 EXPECT_TRUE(sync_prefs.DidSyncShutdownCleanly()); | 721 EXPECT_TRUE(sync_prefs.DidSyncShutdownCleanly()); |
716 } | 722 } |
717 | 723 |
718 // Verify that OnLocalSetPassphraseEncryption triggers catch up configure sync | 724 // Verify that OnLocalSetPassphraseEncryption triggers catch up configure sync |
719 // cycle, calls ClearServerData, shuts down and restarts sync. | 725 // cycle, calls ClearServerData, shuts down and restarts sync. |
720 TEST_F(ProfileSyncServiceTest, OnLocalSetPassphraseEncryption) { | 726 TEST_F(ProfileSyncServiceTest, OnLocalSetPassphraseEncryption) { |
721 base::test::ScopedFeatureList scoped_feature_list; | 727 base::test::ScopedFeatureList scoped_feature_list; |
722 scoped_feature_list.InitAndEnableFeature( | 728 scoped_feature_list.InitAndEnableFeature( |
723 switches::kSyncClearDataOnPassphraseEncryption); | 729 switches::kSyncClearDataOnPassphraseEncryption); |
724 IssueTestTokens(); | 730 IssueTestTokens(); |
725 CreateService(ProfileSyncService::AUTO_START); | 731 CreateService(ProfileSyncService::AUTO_START); |
726 | 732 |
727 syncer::SyncManager::ClearServerDataCallback captured_callback; | 733 syncer::SyncManager::ClearServerDataCallback captured_callback; |
728 syncer::ConfigureReason configure_reason = syncer::CONFIGURE_REASON_UNKNOWN; | 734 syncer::ConfigureReason configure_reason = syncer::CONFIGURE_REASON_UNKNOWN; |
729 | 735 |
730 // Initialize sync, ensure that both DataTypeManager and SyncBackendHost are | 736 // Initialize sync, ensure that both DataTypeManager and SyncBackendHost are |
731 // initialized and DTM::Configure is called with | 737 // initialized and DTM::Configure is called with |
732 // CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE. | 738 // CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE. |
733 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); | 739 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); |
734 ExpectDataTypeManagerCreation( | 740 ExpectDataTypeManagerCreation( |
735 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 741 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
736 InitializeForNthSync(); | 742 InitializeForNthSync(); |
737 EXPECT_TRUE(service()->IsSyncActive()); | 743 EXPECT_TRUE(service()->IsSyncActive()); |
738 testing::Mock::VerifyAndClearExpectations(component_factory()); | 744 testing::Mock::VerifyAndClearExpectations(component_factory()); |
739 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 745 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
740 syncer::DataTypeManager::ConfigureResult result; | 746 sync_driver::DataTypeManager::ConfigureResult result; |
741 result.status = syncer::DataTypeManager::OK; | 747 result.status = sync_driver::DataTypeManager::OK; |
742 service()->OnConfigureDone(result); | 748 service()->OnConfigureDone(result); |
743 | 749 |
744 // Simulate user entering encryption passphrase. Ensure that catch up | 750 // Simulate user entering encryption passphrase. Ensure that catch up |
745 // configure cycle is started (DTM::Configure is called with | 751 // configure cycle is started (DTM::Configure is called with |
746 // CONFIGURE_REASON_CATCH_UP). | 752 // CONFIGURE_REASON_CATCH_UP). |
747 const syncer::SyncEncryptionHandler::NigoriState nigori_state; | 753 const syncer::SyncEncryptionHandler::NigoriState nigori_state; |
748 service()->OnLocalSetPassphraseEncryption(nigori_state); | 754 service()->OnLocalSetPassphraseEncryption(nigori_state); |
749 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); | 755 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); |
750 EXPECT_TRUE(captured_callback.is_null()); | 756 EXPECT_TRUE(captured_callback.is_null()); |
751 | 757 |
(...skipping 22 matching lines...) Expand all Loading... |
774 scoped_feature_list.InitAndEnableFeature( | 780 scoped_feature_list.InitAndEnableFeature( |
775 switches::kSyncClearDataOnPassphraseEncryption); | 781 switches::kSyncClearDataOnPassphraseEncryption); |
776 IssueTestTokens(); | 782 IssueTestTokens(); |
777 CreateService(ProfileSyncService::AUTO_START); | 783 CreateService(ProfileSyncService::AUTO_START); |
778 ExpectSyncBackendHostCreation(1); | 784 ExpectSyncBackendHostCreation(1); |
779 ExpectDataTypeManagerCreation( | 785 ExpectDataTypeManagerCreation( |
780 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 786 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
781 InitializeForNthSync(); | 787 InitializeForNthSync(); |
782 testing::Mock::VerifyAndClearExpectations(component_factory()); | 788 testing::Mock::VerifyAndClearExpectations(component_factory()); |
783 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 789 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
784 syncer::DataTypeManager::ConfigureResult result; | 790 sync_driver::DataTypeManager::ConfigureResult result; |
785 result.status = syncer::DataTypeManager::OK; | 791 result.status = sync_driver::DataTypeManager::OK; |
786 service()->OnConfigureDone(result); | 792 service()->OnConfigureDone(result); |
787 | 793 |
788 // Simulate user entering encryption passphrase. Ensure Configure was called | 794 // Simulate user entering encryption passphrase. Ensure Configure was called |
789 // but don't let it continue. | 795 // but don't let it continue. |
790 const syncer::SyncEncryptionHandler::NigoriState nigori_state; | 796 const syncer::SyncEncryptionHandler::NigoriState nigori_state; |
791 service()->OnLocalSetPassphraseEncryption(nigori_state); | 797 service()->OnLocalSetPassphraseEncryption(nigori_state); |
792 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); | 798 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); |
793 | 799 |
794 // Simulate browser restart. First configuration is a regular one. | 800 // Simulate browser restart. First configuration is a regular one. |
795 service()->Shutdown(); | 801 service()->Shutdown(); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 service()->Shutdown(); | 852 service()->Shutdown(); |
847 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); | 853 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); |
848 ExpectDataTypeManagerCreation( | 854 ExpectDataTypeManagerCreation( |
849 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 855 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
850 service()->RequestStart(); | 856 service()->RequestStart(); |
851 testing::Mock::VerifyAndClearExpectations(component_factory()); | 857 testing::Mock::VerifyAndClearExpectations(component_factory()); |
852 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 858 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
853 EXPECT_TRUE(captured_callback.is_null()); | 859 EXPECT_TRUE(captured_callback.is_null()); |
854 | 860 |
855 // Simulate configure successful. This time it should be catch up. | 861 // Simulate configure successful. This time it should be catch up. |
856 syncer::DataTypeManager::ConfigureResult result; | 862 sync_driver::DataTypeManager::ConfigureResult result; |
857 result.status = syncer::DataTypeManager::OK; | 863 result.status = sync_driver::DataTypeManager::OK; |
858 service()->OnConfigureDone(result); | 864 service()->OnConfigureDone(result); |
859 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); | 865 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); |
860 EXPECT_TRUE(captured_callback.is_null()); | 866 EXPECT_TRUE(captured_callback.is_null()); |
861 | 867 |
862 // Simulate catch up configure successful. Ensure that SBH::ClearServerData is | 868 // Simulate catch up configure successful. Ensure that SBH::ClearServerData is |
863 // called. | 869 // called. |
864 service()->OnConfigureDone(result); | 870 service()->OnConfigureDone(result); |
865 EXPECT_FALSE(captured_callback.is_null()); | 871 EXPECT_FALSE(captured_callback.is_null()); |
866 | 872 |
867 ExpectSyncBackendHostCreation(1); | 873 ExpectSyncBackendHostCreation(1); |
868 ExpectDataTypeManagerCreation( | 874 ExpectDataTypeManagerCreation( |
869 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 875 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
870 captured_callback.Run(); | 876 captured_callback.Run(); |
871 testing::Mock::VerifyAndClearExpectations(component_factory()); | 877 testing::Mock::VerifyAndClearExpectations(component_factory()); |
872 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 878 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
873 } | 879 } |
874 | 880 |
875 // Test that the passphrase prompt due to version change logic gets triggered | 881 // Test that the passphrase prompt due to version change logic gets triggered |
876 // on a datatype type requesting startup, but only happens once. | 882 // on a datatype type requesting startup, but only happens once. |
877 TEST_F(ProfileSyncServiceTest, PassphrasePromptDueToVersion) { | 883 TEST_F(ProfileSyncServiceTest, PassphrasePromptDueToVersion) { |
878 IssueTestTokens(); | 884 IssueTestTokens(); |
879 CreateService(ProfileSyncService::AUTO_START); | 885 CreateService(ProfileSyncService::AUTO_START); |
880 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 886 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
881 ExpectSyncBackendHostCreation(1); | 887 ExpectSyncBackendHostCreation(1); |
882 InitializeForNthSync(); | 888 InitializeForNthSync(); |
883 | 889 |
884 syncer::SyncPrefs sync_prefs(service()->GetSyncClient()->GetPrefService()); | 890 sync_driver::SyncPrefs sync_prefs( |
| 891 service()->GetSyncClient()->GetPrefService()); |
885 EXPECT_EQ(PRODUCT_VERSION, sync_prefs.GetLastRunVersion()); | 892 EXPECT_EQ(PRODUCT_VERSION, sync_prefs.GetLastRunVersion()); |
886 | 893 |
887 sync_prefs.SetPassphrasePrompted(true); | 894 sync_prefs.SetPassphrasePrompted(true); |
888 | 895 |
889 // Until a datatype requests startup while a passphrase is required the | 896 // Until a datatype requests startup while a passphrase is required the |
890 // passphrase prompt bit should remain set. | 897 // passphrase prompt bit should remain set. |
891 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); | 898 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); |
892 TriggerPassphraseRequired(); | 899 TriggerPassphraseRequired(); |
893 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); | 900 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); |
894 | 901 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if | 962 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if |
956 // entry for sessions exists in map. | 963 // entry for sessions exists in map. |
957 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) { | 964 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) { |
958 CreateService(ProfileSyncService::AUTO_START); | 965 CreateService(ProfileSyncService::AUTO_START); |
959 service()->OnSessionRestoreComplete(); | 966 service()->OnSessionRestoreComplete(); |
960 service()->OnSyncCycleCompleted(); | 967 service()->OnSyncCycleCompleted(); |
961 } | 968 } |
962 | 969 |
963 } // namespace | 970 } // namespace |
964 } // namespace browser_sync | 971 } // namespace browser_sync |
OLD | NEW |