1 // Copyright 2014 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.
5 #ifndef COMPONENTS_SYNC_DRIVER_FAKE_GENERIC_CHANGE_PROCESSOR_H_
6 #define COMPONENTS_SYNC_DRIVER_FAKE_GENERIC_CHANGE_PROCESSOR_H_
8 #include "components/sync_driver/generic_change_processor.h"
10 #include "components/sync_driver/generic_change_processor_factory.h"
11 #include "components/sync_driver/sync_api_component_factory.h"
12 #include "sync/api/sync_error.h"
13 #include "sync/internal_api/public/base/model_type.h"
15 namespace sync_driver
{
17 // A fake GenericChangeProcessor that can return arbitrary values.
18 class FakeGenericChangeProcessor
: public GenericChangeProcessor
{
20 FakeGenericChangeProcessor(syncer::ModelType type
,
21 SyncApiComponentFactory
* sync_factory
);
22 ~FakeGenericChangeProcessor() override
;
24 // Setters for GenericChangeProcessor implementation results.
25 void set_sync_model_has_user_created_nodes(bool has_nodes
);
26 void set_sync_model_has_user_created_nodes_success(bool success
);
28 // GenericChangeProcessor implementations.
29 syncer::SyncError
ProcessSyncChanges(
30 const tracked_objects::Location
& from_here
,
31 const syncer::SyncChangeList
& change_list
) override
;
32 syncer::SyncError
GetAllSyncDataReturnError(
33 syncer::SyncDataList
* data
) const override
;
34 bool GetDataTypeContext(std::string
* context
) const override
;
35 int GetSyncCount() override
;
36 bool SyncModelHasUserCreatedNodes(bool* has_nodes
) override
;
37 bool CryptoReadyIfNecessary() override
;
40 bool sync_model_has_user_created_nodes_
;
41 bool sync_model_has_user_created_nodes_success_
;
44 // Define a factory for FakeGenericChangeProcessor for convenience.
45 class FakeGenericChangeProcessorFactory
: public GenericChangeProcessorFactory
{
47 explicit FakeGenericChangeProcessorFactory(
48 scoped_ptr
<FakeGenericChangeProcessor
> processor
);
49 ~FakeGenericChangeProcessorFactory() override
;
50 scoped_ptr
<GenericChangeProcessor
> CreateGenericChangeProcessor(
51 syncer::ModelType type
,
52 syncer::UserShare
* user_share
,
53 DataTypeErrorHandler
* error_handler
,
54 const base::WeakPtr
<syncer::SyncableService
>& local_service
,
55 const base::WeakPtr
<syncer::SyncMergeResult
>& merge_result
,
56 SyncApiComponentFactory
* sync_factory
) override
;
59 scoped_ptr
<FakeGenericChangeProcessor
> processor_
;
60 DISALLOW_COPY_AND_ASSIGN(FakeGenericChangeProcessorFactory
);
63 } // namespace sync_driver
65 #endif // COMPONENTS_SYNC_DRIVER_FAKE_GENERIC_CHANGE_PROCESSOR_H_