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
3// found in the LICENSE file.
4
5#include "chrome/browser/sync/profile_sync_components_factory_mock.h"
6
7#include "chrome/browser/sync/glue/local_device_info_provider_mock.h"
8#include "components/sync_driver/change_processor.h"
9#include "components/sync_driver/model_associator.h"
10#include "content/public/browser/browser_thread.h"
11#include "sync/api/attachments/fake_attachment_store.h"
12#include "sync/internal_api/public/attachments/attachment_service_impl.h"
13
14using sync_driver::AssociatorInterface;
15using sync_driver::ChangeProcessor;
16using testing::_;
17using testing::InvokeWithoutArgs;
18using testing::Return;
19
20ProfileSyncComponentsFactoryMock::ProfileSyncComponentsFactoryMock()
21    : local_device_(new browser_sync::LocalDeviceInfoProviderMock()) {
22}
23
24ProfileSyncComponentsFactoryMock::ProfileSyncComponentsFactoryMock(
25    AssociatorInterface* model_associator, ChangeProcessor* change_processor)
26    : model_associator_(model_associator),
27      change_processor_(change_processor),
28      local_device_(new browser_sync::LocalDeviceInfoProviderMock()) {
29  ON_CALL(*this, CreateBookmarkSyncComponents(_, _)).
30      WillByDefault(
31          InvokeWithoutArgs(
32              this,
33              &ProfileSyncComponentsFactoryMock::MakeSyncComponents));
34}
35
36ProfileSyncComponentsFactoryMock::~ProfileSyncComponentsFactoryMock() {}
37
38scoped_ptr<syncer::AttachmentService>
39ProfileSyncComponentsFactoryMock::CreateAttachmentService(
40    const scoped_refptr<syncer::AttachmentStore>& attachment_store,
41    const syncer::UserShare& user_share,
42    syncer::AttachmentService::Delegate* delegate) {
43  return syncer::AttachmentServiceImpl::CreateForTest();
44}
45
46ProfileSyncComponentsFactory::SyncComponents
47ProfileSyncComponentsFactoryMock::MakeSyncComponents() {
48  return SyncComponents(model_associator_.release(),
49                        change_processor_.release());
50}
51
52scoped_ptr<sync_driver::LocalDeviceInfoProvider>
53ProfileSyncComponentsFactoryMock::CreateLocalDeviceInfoProvider() {
54  return local_device_.Pass();
55}
56
57void ProfileSyncComponentsFactoryMock::SetLocalDeviceInfoProvider(
58    scoped_ptr<sync_driver::LocalDeviceInfoProvider> local_device) {
59  local_device_ = local_device.Pass();
60}
61