| Index: chrome/browser/sync/test_profile_sync_service.cc
|
| ===================================================================
|
| --- chrome/browser/sync/test_profile_sync_service.cc (revision 0)
|
| +++ chrome/browser/sync/test_profile_sync_service.cc (revision 0)
|
| @@ -0,0 +1,77 @@
|
| +// Copyright (c) 2011 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 "chrome/browser/sync/test_profile_sync_service.h"
|
| +
|
| +#include "chrome/browser/sync/abstract_profile_sync_service_test.h"
|
| +
|
| +namespace browser_sync {
|
| +
|
| +SyncBackendHostForProfileSyncTest::SyncBackendHostForProfileSyncTest(
|
| + TestProfileSyncService* service,
|
| + Profile* profile,
|
| + const FilePath& profile_path,
|
| + const DataTypeController::TypeMap& data_type_controllers,
|
| + Task* initial_condition_setup_task,
|
| + int num_expected_resumes,
|
| + int num_expected_pauses,
|
| + bool set_initial_sync_ended_on_init,
|
| + bool synchronous_init)
|
| + : browser_sync::SyncBackendHost(service, profile, profile_path,
|
| + data_type_controllers),
|
| + initial_condition_setup_task_(initial_condition_setup_task),
|
| + set_initial_sync_ended_on_init_(set_initial_sync_ended_on_init),
|
| + synchronous_init_(synchronous_init),
|
| + test_service_(service) {
|
| + // By default, the RequestPause and RequestResume methods will
|
| + // send the confirmation notification and return true.
|
| + ON_CALL(*this, RequestPause()).
|
| + WillByDefault(testing::DoAll(CallOnPaused(core_),
|
| + testing::Return(true)));
|
| + ON_CALL(*this, RequestResume()).
|
| + WillByDefault(testing::DoAll(CallOnResumed(core_),
|
| + testing::Return(true)));
|
| + ON_CALL(*this, RequestNudge()).WillByDefault(
|
| + testing::Invoke(this,
|
| + &SyncBackendHostForProfileSyncTest::
|
| + SimulateSyncCycleCompletedInitialSyncEnded));
|
| +
|
| + EXPECT_CALL(*this, RequestPause()).Times(num_expected_pauses);
|
| + EXPECT_CALL(*this, RequestResume()).Times(num_expected_resumes);
|
| + EXPECT_CALL(*this, RequestNudge()).Times(set_initial_sync_ended_on_init ? 0 : 1);
|
| +}
|
| +
|
| +void
|
| +SyncBackendHostForProfileSyncTest::HandleInitializationCompletedOnFrontendLoop() {
|
| + set_syncapi_initialized(); // Need to do this asap so task below works.
|
| +
|
| + // Set up any nodes the test wants around before model association.
|
| + if (initial_condition_setup_task_) {
|
| + initial_condition_setup_task_->Run();
|
| + }
|
| +
|
| + // Pretend we downloaded initial updates and set initial sync ended bits
|
| + // if we were asked to.
|
| + if (set_initial_sync_ended_on_init_) {
|
| + UserShare* user_share = core_->syncapi()->GetUserShare();
|
| + DirectoryManager* dir_manager = user_share->dir_manager.get();
|
| +
|
| + ScopedDirLookup dir(dir_manager, user_share->name);
|
| + if (!dir.good())
|
| + FAIL();
|
| +
|
| + if (!dir->initial_sync_ended_for_type(syncable::NIGORI)) {
|
| + ProfileSyncServiceTestHelper::CreateRoot(
|
| + syncable::NIGORI, test_service_, test_service_->id_factory());
|
| + }
|
| +
|
| + SetInitialSyncEndedForEnabledTypes();
|
| + }
|
| +
|
| + SyncBackendHost::HandleInitializationCompletedOnFrontendLoop();
|
| + }
|
| +
|
| +
|
| +
|
| +} // namespace
|
|
|