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

Unified Diff: components/sync_driver/startup_controller_unittest.cc

Issue 2203673002: [Sync] Move //components/sync_driver to //components/sync/driver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sd-a
Patch Set: Full change rebased on static lib. Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/sync_driver/startup_controller.cc ('k') | components/sync_driver/sync_api_component_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
deleted file mode 100644
index cb6ac3ed0843c5e9789dfa44cf630c9390fa84cf..0000000000000000000000000000000000000000
--- a/components/sync_driver/startup_controller_unittest.cc
+++ /dev/null
@@ -1,213 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/sync_driver/startup_controller.h"
-
-#include <string>
-
-#include "base/command_line.h"
-#include "base/message_loop/message_loop.h"
-#include "base/run_loop.h"
-#include "base/time/time.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"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace browser_sync {
-
-// 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
-// outputting the correct values for the debug string.
-static const char kStateStringStarted[] = "Started";
-static const char kStateStringDeferred[] = "Deferred";
-static const char kStateStringNotStarted[] = "Not started";
-
-class StartupControllerTest : public testing::Test {
- public:
- 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_));
- 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();
- }
-
- void ExpectStarted() {
- EXPECT_TRUE(started());
- EXPECT_EQ(kStateStringStarted,
- controller()->GetBackendInitializationStateString());
- }
-
- void ExpectStartDeferred() {
- const bool deferred_start =
- !base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kSyncDisableDeferredStartup);
- EXPECT_EQ(!deferred_start, started());
- EXPECT_EQ(deferred_start ? kStateStringDeferred : kStateStringStarted,
- controller()->GetBackendInitializationStateString());
- }
-
- void ExpectNotStarted() {
- EXPECT_FALSE(started());
- EXPECT_EQ(kStateStringNotStarted,
- controller()->GetBackendInitializationStateString());
- }
-
- bool started() const { return started_; }
- void clear_started() { started_ = false; }
- StartupController* controller() { return controller_.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_;
- std::unique_ptr<sync_driver::SyncPrefs> sync_prefs_;
- std::unique_ptr<StartupController> controller_;
-};
-
-// Test that sync doesn't start if setup is not in progress or complete.
-TEST_F(StartupControllerTest, NoSetupComplete) {
- controller()->TryStart();
- ExpectNotStarted();
-
- SetCanStart(true);
- controller()->TryStart();
- ExpectNotStarted();
-}
-
-// Test that sync defers if first setup is complete.
-TEST_F(StartupControllerTest, DefersAfterFirstSetupComplete) {
- sync_prefs()->SetFirstSetupComplete();
- SetCanStart(true);
- controller()->TryStart();
- ExpectStartDeferred();
-}
-
-// Test that a data type triggering startup starts sync immediately.
-TEST_F(StartupControllerTest, NoDeferralDataTypeTrigger) {
- sync_prefs()->SetFirstSetupComplete();
- SetCanStart(true);
- controller()->OnDataTypeRequestsSyncStartup(syncer::SESSIONS);
- ExpectStarted();
-}
-
-// Test that a data type trigger interrupts the deferral timer and starts
-// sync immediately.
-TEST_F(StartupControllerTest, DataTypeTriggerInterruptsDeferral) {
- sync_prefs()->SetFirstSetupComplete();
- SetCanStart(true);
- controller()->TryStart();
- ExpectStartDeferred();
-
- controller()->OnDataTypeRequestsSyncStartup(syncer::SESSIONS);
- ExpectStarted();
-
- // The fallback timer shouldn't result in another invocation of the closure
- // we passed to the StartupController.
- clear_started();
- base::RunLoop().RunUntilIdle();
- EXPECT_FALSE(started());
-}
-
-// Test that the fallback timer starts sync in the event all
-// conditions are met and no data type requests sync.
-TEST_F(StartupControllerTest, FallbackTimer) {
- sync_prefs()->SetFirstSetupComplete();
- SetCanStart(true);
- controller()->TryStart();
- ExpectStartDeferred();
-
- base::RunLoop().RunUntilIdle();
- ExpectStarted();
-}
-
-// Test that we start immediately if sessions is disabled.
-TEST_F(StartupControllerTest, NoDeferralWithoutSessionsSync) {
- syncer::ModelTypeSet types(syncer::UserTypes());
- // Disabling sessions means disabling 4 types due to groupings.
- types.Remove(syncer::SESSIONS);
- types.Remove(syncer::PROXY_TABS);
- types.Remove(syncer::TYPED_URLS);
- types.Remove(syncer::SUPERVISED_USER_SETTINGS);
- sync_prefs()->SetKeepEverythingSynced(false);
- sync_prefs()->SetPreferredDataTypes(syncer::UserTypes(), types);
- controller()->Reset(syncer::UserTypes());
-
- sync_prefs()->SetFirstSetupComplete();
- SetCanStart(true);
- controller()->TryStart();
- ExpectStarted();
-}
-
-// Sanity check that the fallback timer doesn't fire before startup
-// conditions are met.
-TEST_F(StartupControllerTest, FallbackTimerWaits) {
- controller()->TryStart();
- ExpectNotStarted();
- base::RunLoop().RunUntilIdle();
- ExpectNotStarted();
-}
-
-// Test that sync starts immediately when setup in progress is true.
-TEST_F(StartupControllerTest, NoDeferralSetupInProgressTrigger) {
- sync_prefs()->SetFirstSetupComplete();
- SetCanStart(true);
- controller()->SetSetupInProgress(true);
- ExpectStarted();
-}
-
-// Test that setup in progress being set to true interrupts the deferral timer
-// and starts sync immediately.
-TEST_F(StartupControllerTest, SetupInProgressTriggerInterruptsDeferral) {
- sync_prefs()->SetFirstSetupComplete();
- SetCanStart(true);
- controller()->TryStart();
- ExpectStartDeferred();
-
- controller()->SetSetupInProgress(true);
- ExpectStarted();
-}
-
-// Test that immediate startup can be forced.
-TEST_F(StartupControllerTest, ForceImmediateStartup) {
- SetCanStart(true);
- controller()->TryStartImmediately();
- ExpectStarted();
-}
-
-// Test that setup-in-progress tracking is persistent across a Reset.
-TEST_F(StartupControllerTest, ResetDuringSetup) {
- SetCanStart(true);
-
- // Simulate UI telling us setup is in progress.
- controller()->SetSetupInProgress(true);
-
- // This could happen if the UI triggers a stop-syncing permanently call.
- controller()->Reset(syncer::UserTypes());
-
- // From the UI's point of view, setup is still in progress.
- EXPECT_TRUE(controller()->IsSetupInProgress());
-}
-
-} // namespace browser_sync
« no previous file with comments | « components/sync_driver/startup_controller.cc ('k') | components/sync_driver/sync_api_component_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698