- add sources.
[platform/framework/web/crosswalk.git] / src / sync / api / fake_syncable_service.cc
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 "sync/api/fake_syncable_service.h"
6
7 #include "base/location.h"
8 #include "sync/api/sync_error_factory.h"
9
10 namespace syncer {
11
12 FakeSyncableService::FakeSyncableService()
13     : syncing_(false),
14       type_(UNSPECIFIED) {}
15
16 FakeSyncableService::~FakeSyncableService() {}
17
18 void FakeSyncableService::set_merge_data_and_start_syncing_error(
19     const SyncError& error) {
20   merge_data_and_start_syncing_error_ = error;
21 }
22
23 void FakeSyncableService::set_process_sync_changes_error(
24     const SyncError& error) {
25   process_sync_changes_error_ = error;
26 }
27
28 bool FakeSyncableService::syncing() const {
29   return syncing_;
30 }
31
32 // SyncableService implementation.
33 SyncMergeResult FakeSyncableService::MergeDataAndStartSyncing(
34     ModelType type,
35     const SyncDataList& initial_sync_data,
36     scoped_ptr<SyncChangeProcessor> sync_processor,
37     scoped_ptr<SyncErrorFactory> sync_error_factory) {
38   SyncMergeResult merge_result(type);
39   sync_processor_ = sync_processor.Pass();
40   type_ = type;
41   if (!merge_data_and_start_syncing_error_.IsSet()) {
42     syncing_ = true;
43   } else {
44     merge_result.set_error(merge_data_and_start_syncing_error_);
45   }
46   return merge_result;
47 }
48
49 void FakeSyncableService::StopSyncing(ModelType type) {
50   syncing_ = false;
51   sync_processor_.reset();
52 }
53
54 SyncDataList FakeSyncableService::GetAllSyncData(ModelType type) const {
55   return SyncDataList();
56 }
57
58 SyncError FakeSyncableService::ProcessSyncChanges(
59     const tracked_objects::Location& from_here,
60     const SyncChangeList& change_list) {
61   return process_sync_changes_error_;
62 }
63
64 }  // namespace syncer