| Index: components/sync_driver/startup_controller_unittest.cc
|
| diff --git a/components/sync_driver/startup_controller_unittest.cc b/components/sync_driver/startup_controller_unittest.cc
|
| index c6de60f1180d37cae812d768e8386ffd79c540ed..2c2207664c565c5ce47b26ec6f5fd6dac137dfa6 100644
|
| --- a/components/sync_driver/startup_controller_unittest.cc
|
| +++ b/components/sync_driver/startup_controller_unittest.cc
|
| @@ -10,8 +10,6 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/run_loop.h"
|
| #include "base/time/time.h"
|
| -#include "components/signin/core/browser/fake_profile_oauth2_token_service.h"
|
| -#include "components/sync_driver/signin_manager_wrapper.h"
|
| #include "components/sync_driver/sync_driver_switches.h"
|
| #include "components/sync_driver/sync_prefs.h"
|
| #include "components/syncable_prefs/testing_pref_service_syncable.h"
|
| @@ -19,9 +17,6 @@
|
|
|
| namespace browser_sync {
|
|
|
| -static const char kTestUser[] = "test@gmail.com";
|
| -static const char kTestToken[] = "testToken";
|
| -
|
| // These are coupled to the implementation of StartupController's
|
| // GetBackendInitializationStateString which is used by about:sync. We use it
|
| // as a convenient way to verify internal state and that the class is
|
| @@ -30,54 +25,27 @@ static const char kStateStringStarted[] = "Started";
|
| static const char kStateStringDeferred[] = "Deferred";
|
| static const char kStateStringNotStarted[] = "Not started";
|
|
|
| -class FakeSigninManagerWrapper : public SigninManagerWrapper {
|
| - public:
|
| - FakeSigninManagerWrapper() : SigninManagerWrapper(NULL) {}
|
| - std::string GetEffectiveUsername() const override { return std::string(); }
|
| -
|
| - std::string GetAccountIdToUse() const override { return account_id_; }
|
| -
|
| - void set_account_id(const std::string& account_id) {
|
| - account_id_ = account_id;
|
| - }
|
| -
|
| - private:
|
| - std::string account_id_;
|
| -};
|
| -
|
| class StartupControllerTest : public testing::Test {
|
| public:
|
| - StartupControllerTest() : started_(false) {}
|
| + StartupControllerTest() : can_start_(false), started_(false) {}
|
|
|
| void SetUp() override {
|
| sync_driver::SyncPrefs::RegisterProfilePrefs(pref_service_.registry());
|
| sync_prefs_.reset(new sync_driver::SyncPrefs(&pref_service_));
|
| - token_service_.reset(new FakeProfileOAuth2TokenService());
|
| - signin_.reset(new FakeSigninManagerWrapper());
|
| -
|
| - SetUpController();
|
| - }
|
| -
|
| - void TearDown() override {
|
| - controller_.reset();
|
| - signin_.reset();
|
| - token_service_->Shutdown();
|
| - token_service_.reset();
|
| - sync_prefs_.reset();
|
| - started_ = false;
|
| - }
|
| -
|
| - void SetUpController() {
|
| - started_ = false;
|
| - base::Closure fake_start_backend = base::Bind(
|
| - &StartupControllerTest::FakeStartBackend, base::Unretained(this));
|
| - controller_.reset(new StartupController(token_service(), sync_prefs_.get(),
|
| - signin_.get(), fake_start_backend));
|
| + controller_.reset(new StartupController(
|
| + sync_prefs_.get(),
|
| + base::Bind(&StartupControllerTest::CanStart, base::Unretained(this)),
|
| + base::Bind(&StartupControllerTest::FakeStartBackend,
|
| + base::Unretained(this))));
|
| controller_->Reset(syncer::UserTypes());
|
| controller_->OverrideFallbackTimeoutForTest(
|
| base::TimeDelta::FromSeconds(0));
|
| }
|
|
|
| + bool CanStart() { return can_start_; }
|
| +
|
| + void SetCanStart(bool can_start) { can_start_ = can_start; }
|
| +
|
| void FakeStartBackend() {
|
| started_ = true;
|
| sync_prefs()->SetFirstSetupComplete();
|
| @@ -107,20 +75,15 @@ class StartupControllerTest : public testing::Test {
|
| bool started() const { return started_; }
|
| void clear_started() { started_ = false; }
|
| StartupController* controller() { return controller_.get(); }
|
| - FakeSigninManagerWrapper* signin() { return signin_.get(); }
|
| - FakeProfileOAuth2TokenService* token_service() {
|
| - return token_service_.get();
|
| - }
|
| sync_driver::SyncPrefs* sync_prefs() { return sync_prefs_.get(); }
|
|
|
| private:
|
| + bool can_start_;
|
| bool started_;
|
| base::MessageLoop message_loop_;
|
| syncable_prefs::TestingPrefServiceSyncable pref_service_;
|
| - scoped_ptr<StartupController> controller_;
|
| - scoped_ptr<FakeSigninManagerWrapper> signin_;
|
| - scoped_ptr<FakeProfileOAuth2TokenService> token_service_;
|
| scoped_ptr<sync_driver::SyncPrefs> sync_prefs_;
|
| + scoped_ptr<StartupController> controller_;
|
| };
|
|
|
| // Test that sync doesn't start until all conditions are met.
|
| @@ -128,45 +91,23 @@ TEST_F(StartupControllerTest, Basic) {
|
| controller()->TryStart();
|
| ExpectNotStarted();
|
|
|
| - sync_prefs()->SetFirstSetupComplete();
|
| - controller()->TryStart();
|
| - ExpectNotStarted();
|
| -
|
| - signin()->set_account_id(kTestUser);
|
| - controller()->TryStart();
|
| - ExpectNotStarted();
|
| -
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
| controller()->TryStart();
|
| - ExpectStartDeferred();
|
| -}
|
| -
|
| -// Test that sync doesn't start when not requested even if all other
|
| -// conditons are met.
|
| -TEST_F(StartupControllerTest, NotRequested) {
|
| - sync_prefs()->SetFirstSetupComplete();
|
| - sync_prefs()->SetSyncRequested(false);
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| - controller()->TryStart();
|
| - ExpectNotStarted();
|
| + ExpectStarted();
|
| }
|
|
|
| -// Test that sync doesn't when managed even if all other conditons are met.
|
| -TEST_F(StartupControllerTest, Managed) {
|
| +// Test that sync defers if first setup is complete.
|
| +TEST_F(StartupControllerTest, DefersAfterFirstSetupComplete) {
|
| sync_prefs()->SetFirstSetupComplete();
|
| - sync_prefs()->SetManagedForTest(true);
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
| controller()->TryStart();
|
| - ExpectNotStarted();
|
| + ExpectStartDeferred();
|
| }
|
|
|
| // Test that a data type triggering startup starts sync immediately.
|
| TEST_F(StartupControllerTest, NoDeferralDataTypeTrigger) {
|
| sync_prefs()->SetFirstSetupComplete();
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
| controller()->OnDataTypeRequestsSyncStartup(syncer::SESSIONS);
|
| ExpectStarted();
|
| }
|
| @@ -175,8 +116,7 @@ TEST_F(StartupControllerTest, NoDeferralDataTypeTrigger) {
|
| // sync immediately.
|
| TEST_F(StartupControllerTest, DataTypeTriggerInterruptsDeferral) {
|
| sync_prefs()->SetFirstSetupComplete();
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
| controller()->TryStart();
|
| ExpectStartDeferred();
|
|
|
| @@ -194,8 +134,7 @@ TEST_F(StartupControllerTest, DataTypeTriggerInterruptsDeferral) {
|
| // conditions are met and no data type requests sync.
|
| TEST_F(StartupControllerTest, FallbackTimer) {
|
| sync_prefs()->SetFirstSetupComplete();
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
| controller()->TryStart();
|
| ExpectStartDeferred();
|
|
|
| @@ -214,10 +153,9 @@ TEST_F(StartupControllerTest, NoDeferralWithoutSessionsSync) {
|
| sync_prefs()->SetKeepEverythingSynced(false);
|
| sync_prefs()->SetPreferredDataTypes(syncer::UserTypes(), types);
|
| controller()->Reset(syncer::UserTypes());
|
| - sync_prefs()->SetFirstSetupComplete();
|
|
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + sync_prefs()->SetFirstSetupComplete();
|
| + SetCanStart(true);
|
| controller()->TryStart();
|
| ExpectStarted();
|
| }
|
| @@ -234,9 +172,7 @@ TEST_F(StartupControllerTest, FallbackTimerWaits) {
|
| // Test that sync starts immediately when setup in progress is true.
|
| TEST_F(StartupControllerTest, NoDeferralSetupInProgressTrigger) {
|
| sync_prefs()->SetFirstSetupComplete();
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| -
|
| + SetCanStart(true);
|
| controller()->SetSetupInProgress(true);
|
| ExpectStarted();
|
| }
|
| @@ -245,8 +181,7 @@ TEST_F(StartupControllerTest, NoDeferralSetupInProgressTrigger) {
|
| // and starts sync immediately.
|
| TEST_F(StartupControllerTest, SetupInProgressTriggerInterruptsDeferral) {
|
| sync_prefs()->SetFirstSetupComplete();
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
| controller()->TryStart();
|
| ExpectStartDeferred();
|
|
|
| @@ -256,8 +191,7 @@ TEST_F(StartupControllerTest, SetupInProgressTriggerInterruptsDeferral) {
|
|
|
| // Test that start isn't deferred on the first start but is on restarts.
|
| TEST_F(StartupControllerTest, DeferralOnRestart) {
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
| controller()->TryStart();
|
| ExpectStarted();
|
|
|
| @@ -270,8 +204,7 @@ TEST_F(StartupControllerTest, DeferralOnRestart) {
|
|
|
| // Test that setup-in-progress tracking is persistent across a Reset.
|
| TEST_F(StartupControllerTest, ResetDuringSetup) {
|
| - signin()->set_account_id(kTestUser);
|
| - token_service()->UpdateCredentials(kTestUser, kTestToken);
|
| + SetCanStart(true);
|
|
|
| // Simulate UI telling us setup is in progress.
|
| controller()->SetSetupInProgress(true);
|
|
|