Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / sync / internal_api / public / test / fake_sync_manager.h
blob86ad21f34c3ad8c607168f8e686a6c67d05a9b53
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.
5 #ifndef SYNC_INTERNAL_API_PUBLIC_TEST_FAKE_SYNC_MANAGER_H_
6 #define SYNC_INTERNAL_API_PUBLIC_TEST_FAKE_SYNC_MANAGER_H_
8 #include <string>
10 #include "base/memory/ref_counted.h"
11 #include "base/observer_list.h"
12 #include "sync/internal_api/public/sync_manager.h"
13 #include "sync/internal_api/public/test/null_sync_context_proxy.h"
14 #include "sync/internal_api/public/test/test_user_share.h"
16 class GURL;
18 namespace base {
19 class SequencedTaskRunner;
22 namespace syncer {
24 class FakeSyncEncryptionHandler;
26 class FakeSyncManager : public SyncManager {
27 public:
28 // |initial_sync_ended_types|: The set of types that have initial_sync_ended
29 // set to true. This value will be used by InitialSyncEndedTypes() until the
30 // next configuration is performed.
32 // |progress_marker_types|: The set of types that have valid progress
33 // markers. This will be used by GetTypesWithEmptyProgressMarkerToken() until
34 // the next configuration is performed.
36 // |configure_fail_types|: The set of types that will fail
37 // configuration. Once ConfigureSyncer is called, the
38 // |initial_sync_ended_types_| and |progress_marker_types_| will be updated
39 // to include those types that didn't fail.
40 FakeSyncManager(ModelTypeSet initial_sync_ended_types,
41 ModelTypeSet progress_marker_types,
42 ModelTypeSet configure_fail_types);
43 ~FakeSyncManager() override;
45 // Returns those types that have been cleaned (purged from the directory)
46 // since the last call to GetAndResetCleanedTypes(), or since startup if never
47 // called.
48 ModelTypeSet GetAndResetCleanedTypes();
50 // Returns those types that have been downloaded since the last call to
51 // GetAndResetDownloadedTypes(), or since startup if never called.
52 ModelTypeSet GetAndResetDownloadedTypes();
54 // Returns those types that have been marked as enabled since the
55 // last call to GetAndResetEnabledTypes(), or since startup if never
56 // called.
57 ModelTypeSet GetAndResetEnabledTypes();
59 // Returns the types that have most recently received a refresh request.
60 ModelTypeSet GetLastRefreshRequestTypes();
62 // Returns the most recent configuration reason since the last call to
63 // GetAndResetConfigureReason, or since startup if never called.
64 ConfigureReason GetAndResetConfigureReason();
66 // Returns the number of invalidations received since startup.
67 int GetInvalidationCount() const;
69 // Block until the sync thread has finished processing any pending messages.
70 void WaitForSyncThread();
72 // SyncManager implementation.
73 // Note: we treat whatever message loop this is called from as the sync
74 // loop for purposes of callbacks.
75 void Init(InitArgs* args) override;
76 ModelTypeSet InitialSyncEndedTypes() override;
77 ModelTypeSet GetTypesWithEmptyProgressMarkerToken(
78 ModelTypeSet types) override;
79 bool PurgePartiallySyncedTypes() override;
80 void UpdateCredentials(const SyncCredentials& credentials) override;
81 void StartSyncingNormally(const ModelSafeRoutingInfo& routing_info,
82 base::Time last_poll_time) override;
83 void ConfigureSyncer(ConfigureReason reason,
84 ModelTypeSet to_download,
85 ModelTypeSet to_purge,
86 ModelTypeSet to_journal,
87 ModelTypeSet to_unapply,
88 const ModelSafeRoutingInfo& new_routing_info,
89 const base::Closure& ready_task,
90 const base::Closure& retry_task) override;
91 void OnIncomingInvalidation(
92 syncer::ModelType type,
93 scoped_ptr<InvalidationInterface> interface) override;
94 void SetInvalidatorEnabled(bool invalidator_enabled) override;
95 void AddObserver(Observer* observer) override;
96 void RemoveObserver(Observer* observer) override;
97 SyncStatus GetDetailedStatus() const override;
98 void SaveChanges() override;
99 void ShutdownOnSyncThread(ShutdownReason reason) override;
100 UserShare* GetUserShare() override;
101 syncer_v2::SyncContextProxy* GetSyncContextProxy() override;
102 const std::string cache_guid() override;
103 bool ReceivedExperiment(Experiments* experiments) override;
104 bool HasUnsyncedItems() override;
105 SyncEncryptionHandler* GetEncryptionHandler() override;
106 ScopedVector<syncer::ProtocolEvent> GetBufferedProtocolEvents() override;
107 scoped_ptr<base::ListValue> GetAllNodesForType(
108 syncer::ModelType type) override;
109 void RefreshTypes(ModelTypeSet types) override;
110 void RegisterDirectoryTypeDebugInfoObserver(
111 syncer::TypeDebugInfoObserver* observer) override;
112 void UnregisterDirectoryTypeDebugInfoObserver(
113 syncer::TypeDebugInfoObserver* observer) override;
114 bool HasDirectoryTypeDebugInfoObserver(
115 syncer::TypeDebugInfoObserver* observer) override;
116 void RequestEmitDebugInfo() override;
117 void ClearServerData(const ClearServerDataCallback& callback) override;
119 private:
120 scoped_refptr<base::SequencedTaskRunner> sync_task_runner_;
122 base::ObserverList<SyncManager::Observer> observers_;
124 // Faked directory state.
125 ModelTypeSet initial_sync_ended_types_;
126 ModelTypeSet progress_marker_types_;
128 // Test specific state.
129 // The types that should fail configuration attempts. These types will not
130 // have their progress markers or initial_sync_ended bits set.
131 ModelTypeSet configure_fail_types_;
132 // The set of types that have been cleaned up.
133 ModelTypeSet cleaned_types_;
134 // The set of types that have been downloaded.
135 ModelTypeSet downloaded_types_;
136 // The set of types that have been enabled.
137 ModelTypeSet enabled_types_;
139 // The types for which a refresh was most recently requested.
140 ModelTypeSet last_refresh_request_types_;
142 // The most recent configure reason.
143 ConfigureReason last_configure_reason_;
145 scoped_ptr<FakeSyncEncryptionHandler> fake_encryption_handler_;
147 TestUserShare test_user_share_;
149 syncer_v2::NullSyncContextProxy null_sync_context_proxy_;
151 // Number of invalidations received since startup.
152 int num_invalidations_received_;
154 DISALLOW_COPY_AND_ASSIGN(FakeSyncManager);
157 } // namespace syncer
159 #endif // SYNC_INTERNAL_API_PUBLIC_TEST_FAKE_SYNC_MANAGER_H_