Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Side by Side Diff: components/browser_sync/browser/profile_sync_service_unittest.cc

Issue 1575153004: [Sync] Simplify sync startup behavior. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@setup
Patch Set: Rebase. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <utility> 5 #include <utility>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 return new FakeDataTypeManager(configure_called); 85 return new FakeDataTypeManager(configure_called);
86 } 86 }
87 87
88 using testing::Return; 88 using testing::Return;
89 using testing::StrictMock; 89 using testing::StrictMock;
90 using testing::_; 90 using testing::_;
91 91
92 class TestSyncServiceObserver : public sync_driver::SyncServiceObserver { 92 class TestSyncServiceObserver : public sync_driver::SyncServiceObserver {
93 public: 93 public:
94 explicit TestSyncServiceObserver(ProfileSyncService* service) 94 explicit TestSyncServiceObserver(ProfileSyncService* service)
95 : service_(service), first_setup_in_progress_(false) {} 95 : service_(service), setup_in_progress_(false) {}
96 void OnStateChanged() override { 96 void OnStateChanged() override {
97 first_setup_in_progress_ = service_->IsFirstSetupInProgress(); 97 setup_in_progress_ = service_->IsSetupInProgress();
98 } 98 }
99 bool first_setup_in_progress() const { return first_setup_in_progress_; } 99 bool setup_in_progress() const { return setup_in_progress_; }
100
100 private: 101 private:
101 ProfileSyncService* service_; 102 ProfileSyncService* service_;
102 bool first_setup_in_progress_; 103 bool setup_in_progress_;
103 }; 104 };
104 105
105 // A variant of the SyncBackendHostMock that won't automatically 106 // A variant of the SyncBackendHostMock that won't automatically
106 // call back when asked to initialized. Allows us to test things 107 // call back when asked to initialized. Allows us to test things
107 // that could happen while backend init is in progress. 108 // that could happen while backend init is in progress.
108 class SyncBackendHostNoReturn : public SyncBackendHostMock { 109 class SyncBackendHostNoReturn : public SyncBackendHostMock {
109 void Initialize( 110 void Initialize(
110 sync_driver::SyncFrontend* frontend, 111 sync_driver::SyncFrontend* frontend,
111 scoped_ptr<base::Thread> sync_thread, 112 scoped_ptr<base::Thread> sync_thread,
112 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, 113 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread,
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 #endif 259 #endif
259 260
260 void ShutdownAndDeleteService() { 261 void ShutdownAndDeleteService() {
261 if (service_) 262 if (service_)
262 service_->Shutdown(); 263 service_->Shutdown();
263 service_.reset(); 264 service_.reset();
264 } 265 }
265 266
266 void InitializeForNthSync() { 267 void InitializeForNthSync() {
267 // Set first sync time before initialize to simulate a complete sync setup. 268 // Set first sync time before initialize to simulate a complete sync setup.
268 sync_driver::SyncPrefs sync_prefs( 269 sync_driver::SyncPrefs sync_prefs(prefs());
269 service_->GetSyncClient()->GetPrefService());
270 sync_prefs.SetFirstSyncTime(base::Time::Now()); 270 sync_prefs.SetFirstSyncTime(base::Time::Now());
271 sync_prefs.SetFirstSetupComplete(); 271 sync_prefs.SetFirstSetupComplete();
272 sync_prefs.SetKeepEverythingSynced(true); 272 sync_prefs.SetKeepEverythingSynced(true);
273 service_->Initialize(); 273 service_->Initialize();
274 } 274 }
275 275
276 void InitializeForFirstSync() { 276 void InitializeForFirstSync() {
277 service_->Initialize(); 277 service_->Initialize();
278 } 278 }
279 279
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 // Verify that the SetSetupInProgress function call updates state 416 // Verify that the SetSetupInProgress function call updates state
417 // and notifies observers. 417 // and notifies observers.
418 TEST_F(ProfileSyncServiceTest, SetupInProgress) { 418 TEST_F(ProfileSyncServiceTest, SetupInProgress) {
419 CreateService(browser_sync::AUTO_START); 419 CreateService(browser_sync::AUTO_START);
420 InitializeForFirstSync(); 420 InitializeForFirstSync();
421 421
422 TestSyncServiceObserver observer(service()); 422 TestSyncServiceObserver observer(service());
423 service()->AddObserver(&observer); 423 service()->AddObserver(&observer);
424 424
425 service()->SetSetupInProgress(true); 425 service()->SetSetupInProgress(true);
426 EXPECT_TRUE(observer.first_setup_in_progress()); 426 EXPECT_TRUE(observer.setup_in_progress());
427 service()->SetSetupInProgress(false); 427 service()->SetSetupInProgress(false);
428 EXPECT_FALSE(observer.first_setup_in_progress()); 428 EXPECT_FALSE(observer.setup_in_progress());
429 429
430 service()->RemoveObserver(&observer); 430 service()->RemoveObserver(&observer);
431 } 431 }
432 432
433 // Verify that disable by enterprise policy works. 433 // Verify that disable by enterprise policy works.
434 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { 434 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) {
435 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, 435 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged,
436 new base::FundamentalValue(true)); 436 new base::FundamentalValue(true));
437 IssueTestTokens(); 437 IssueTestTokens();
438 CreateService(browser_sync::AUTO_START); 438 CreateService(browser_sync::AUTO_START);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 InitializeForNthSync(); 470 InitializeForNthSync();
471 EXPECT_FALSE(service()->IsSyncActive()); 471 EXPECT_FALSE(service()->IsSyncActive());
472 472
473 ShutdownAndDeleteService(); 473 ShutdownAndDeleteService();
474 } 474 }
475 475
476 // Test RequestStop() before we've initialized the backend. 476 // Test RequestStop() before we've initialized the backend.
477 TEST_F(ProfileSyncServiceTest, EarlyRequestStop) { 477 TEST_F(ProfileSyncServiceTest, EarlyRequestStop) {
478 CreateService(browser_sync::AUTO_START); 478 CreateService(browser_sync::AUTO_START);
479 IssueTestTokens(); 479 IssueTestTokens();
480 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback());
481 ExpectSyncBackendHostCreation(1);
480 482
481 service()->RequestStop(ProfileSyncService::KEEP_DATA); 483 service()->RequestStop(ProfileSyncService::KEEP_DATA);
482 EXPECT_TRUE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); 484 EXPECT_FALSE(service()->IsSyncRequested());
483 485
484 // Because of suppression, this should fail. 486 // Because sync is not requested, this should fail.
485 sync_driver::SyncPrefs sync_prefs( 487 InitializeForNthSync();
486 service()->GetSyncClient()->GetPrefService()); 488 EXPECT_FALSE(service()->IsSyncRequested());
487 sync_prefs.SetFirstSyncTime(base::Time::Now());
488 service()->Initialize();
489 EXPECT_FALSE(service()->IsSyncActive()); 489 EXPECT_FALSE(service()->IsSyncActive());
490 490
491 // Request start. This should be enough to allow init to happen. 491 // Request start. This should be enough to allow init to happen.
492 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback());
493 ExpectSyncBackendHostCreation(1);
494 service()->RequestStart(); 492 service()->RequestStart();
493 EXPECT_TRUE(service()->IsSyncRequested());
495 EXPECT_TRUE(service()->IsSyncActive()); 494 EXPECT_TRUE(service()->IsSyncActive());
496 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart));
497 } 495 }
498 496
499 // Test RequestStop() after we've initialized the backend. 497 // Test RequestStop() after we've initialized the backend.
500 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { 498 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) {
501 CreateService(browser_sync::AUTO_START); 499 CreateService(browser_sync::AUTO_START);
502 IssueTestTokens(); 500 IssueTestTokens();
503 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); 501 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback());
504 ExpectSyncBackendHostCreation(1); 502 ExpectSyncBackendHostCreation(1);
505 InitializeForNthSync(); 503 InitializeForNthSync();
506 504
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if 906 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if
909 // entry for sessions exists in map. 907 // entry for sessions exists in map.
910 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) { 908 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) {
911 CreateService(browser_sync::AUTO_START); 909 CreateService(browser_sync::AUTO_START);
912 service()->OnSessionRestoreComplete(); 910 service()->OnSessionRestoreComplete();
913 service()->OnSyncCycleCompleted(); 911 service()->OnSyncCycleCompleted();
914 } 912 }
915 913
916 } // namespace 914 } // namespace
917 } // namespace browser_sync 915 } // namespace browser_sync
OLDNEW
« no previous file with comments | « components/browser_sync/browser/profile_sync_service_startup_unittest.cc ('k') | components/sync_driver/startup_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698