Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/browser/sync/test_profile_sync_service.h

Issue 10830100: Fix SyncManager initialization failure crash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_ 5 #ifndef CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
6 #define CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_ 6 #define CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/memory/weak_ptr.h" 12 #include "base/memory/weak_ptr.h"
13 #include "chrome/browser/sync/glue/data_type_manager_impl.h" 13 #include "chrome/browser/sync/glue/data_type_manager_impl.h"
14 #include "chrome/browser/sync/invalidations/invalidator_storage.h" 14 #include "chrome/browser/sync/invalidations/invalidator_storage.h"
15 #include "chrome/browser/sync/profile_sync_service.h" 15 #include "chrome/browser/sync/profile_sync_service.h"
16 #include "chrome/browser/sync/sync_prefs.h" 16 #include "chrome/browser/sync/sync_prefs.h"
17 #include "chrome/test/base/profile_mock.h" 17 #include "chrome/test/base/profile_mock.h"
18 #include "sync/internal_api/public/test/test_internal_components_factory.h"
18 #include "sync/test/engine/test_id_factory.h" 19 #include "sync/test/engine/test_id_factory.h"
19 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
20 21
21 class Profile; 22 class Profile;
22 class Task; 23 class Task;
23 class TestProfileSyncService; 24 class TestProfileSyncService;
24 25
25 ACTION(ReturnNewDataTypeManager) { 26 ACTION(ReturnNewDataTypeManager) {
26 return new browser_sync::DataTypeManagerImpl(arg0, arg1); 27 return new browser_sync::DataTypeManagerImpl(arg0, arg1);
27 } 28 }
28 29
29 namespace browser_sync { 30 namespace browser_sync {
30 31
31 class SyncBackendHostForProfileSyncTest : public SyncBackendHost { 32 class SyncBackendHostForProfileSyncTest : public SyncBackendHost {
32 public: 33 public:
33 // |synchronous_init| causes initialization to block until the syncapi has 34 // |synchronous_init| causes initialization to block until the syncapi has
34 // completed setting itself up and called us back. 35 // completed setting itself up and called us back.
35 SyncBackendHostForProfileSyncTest( 36 SyncBackendHostForProfileSyncTest(
36 Profile* profile, 37 Profile* profile,
37 const base::WeakPtr<SyncPrefs>& sync_prefs, 38 const base::WeakPtr<SyncPrefs>& sync_prefs,
38 const base::WeakPtr<InvalidatorStorage>& invalidator_storage, 39 const base::WeakPtr<InvalidatorStorage>& invalidator_storage,
39 syncer::TestIdFactory& id_factory, 40 syncer::TestIdFactory& id_factory,
40 base::Closure& callback, 41 base::Closure& callback,
41 bool set_initial_sync_ended_on_init, 42 bool set_initial_sync_ended_on_init,
42 bool synchronous_init, 43 bool synchronous_init,
43 bool fail_initial_download, 44 bool fail_initial_download,
44 bool use_real_database); 45 syncer::StorageOption storage_option);
45 virtual ~SyncBackendHostForProfileSyncTest(); 46 virtual ~SyncBackendHostForProfileSyncTest();
46 47
47 MOCK_METHOD1(RequestNudge, void(const tracked_objects::Location&)); 48 MOCK_METHOD1(RequestNudge, void(const tracked_objects::Location&));
48 49
49 virtual void RequestConfigureSyncer( 50 virtual void RequestConfigureSyncer(
50 syncer::ConfigureReason reason, 51 syncer::ConfigureReason reason,
51 syncer::ModelTypeSet types_to_config, 52 syncer::ModelTypeSet types_to_config,
52 const syncer::ModelSafeRoutingInfo& routing_info, 53 const syncer::ModelSafeRoutingInfo& routing_info,
53 const base::Callback<void(syncer::ModelTypeSet)>& ready_task, 54 const base::Callback<void(syncer::ModelTypeSet)>& ready_task,
54 const base::Closure& retry_callback) OVERRIDE; 55 const base::Closure& retry_callback) OVERRIDE;
(...skipping 10 matching lines...) Expand all
65 protected: 66 protected:
66 virtual void InitCore(const DoInitializeOptions& options) OVERRIDE; 67 virtual void InitCore(const DoInitializeOptions& options) OVERRIDE;
67 68
68 private: 69 private:
69 syncer::TestIdFactory& id_factory_; 70 syncer::TestIdFactory& id_factory_;
70 base::Closure& callback_; 71 base::Closure& callback_;
71 72
72 bool set_initial_sync_ended_on_init_; 73 bool set_initial_sync_ended_on_init_;
73 bool synchronous_init_; 74 bool synchronous_init_;
74 bool fail_initial_download_; 75 bool fail_initial_download_;
75 bool use_real_database_; 76 syncer::StorageOption storage_option_;
76 }; 77 };
77 78
78 } // namespace browser_sync 79 } // namespace browser_sync
79 80
80 class TestProfileSyncService : public ProfileSyncService { 81 class TestProfileSyncService : public ProfileSyncService {
81 public: 82 public:
82 // |callback| can be used to populate nodes before the OnBackendInitialized 83 // |callback| can be used to populate nodes before the OnBackendInitialized
83 // callback fires. 84 // callback fires.
84 // TODO(tim): Remove |synchronous_backend_initialization|, and add ability to 85 // TODO(tim): Remove |synchronous_backend_initialization|, and add ability to
85 // inject TokenService alongside SigninManager. 86 // inject TokenService alongside SigninManager.
(...skipping 17 matching lines...) Expand all
103 104
104 // We implement our own version to avoid some DCHECKs. 105 // We implement our own version to avoid some DCHECKs.
105 virtual syncer::UserShare* GetUserShare() const OVERRIDE; 106 virtual syncer::UserShare* GetUserShare() const OVERRIDE;
106 107
107 // If this is called, configuring data types will require a syncer 108 // If this is called, configuring data types will require a syncer
108 // nudge. 109 // nudge.
109 void dont_set_initial_sync_ended_on_init(); 110 void dont_set_initial_sync_ended_on_init();
110 void set_synchronous_sync_configuration(); 111 void set_synchronous_sync_configuration();
111 112
112 void fail_initial_download(); 113 void fail_initial_download();
113 void set_use_real_database(); 114 void set_storage_option(syncer::StorageOption option);
114 115
115 syncer::TestIdFactory* id_factory(); 116 syncer::TestIdFactory* id_factory();
116 117
117 // Override of ProfileSyncService::GetBackendForTest() with a more 118 // Override of ProfileSyncService::GetBackendForTest() with a more
118 // specific return type (since C++ supports covariant return types) 119 // specific return type (since C++ supports covariant return types)
119 // that is made public. 120 // that is made public.
120 virtual browser_sync::SyncBackendHostForProfileSyncTest* 121 virtual browser_sync::SyncBackendHostForProfileSyncTest*
121 GetBackendForTest() OVERRIDE; 122 GetBackendForTest() OVERRIDE;
122 123
123 protected: 124 protected:
124 virtual void CreateBackend() OVERRIDE; 125 virtual void CreateBackend() OVERRIDE;
125 126
126 private: 127 private:
127 syncer::TestIdFactory id_factory_; 128 syncer::TestIdFactory id_factory_;
128 129
129 bool synchronous_backend_initialization_; 130 bool synchronous_backend_initialization_;
130 131
131 // Set to true when a mock data type manager is being used and the configure 132 // Set to true when a mock data type manager is being used and the configure
132 // step is performed synchronously. 133 // step is performed synchronously.
133 bool synchronous_sync_configuration_; 134 bool synchronous_sync_configuration_;
134 135
135 base::Closure callback_; 136 base::Closure callback_;
136 bool set_initial_sync_ended_on_init_; 137 bool set_initial_sync_ended_on_init_;
137 138
138 bool fail_initial_download_; 139 bool fail_initial_download_;
139 bool use_real_database_; 140 syncer::StorageOption storage_option_;
140 }; 141 };
141 142
142 #endif // CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_ 143 #endif // CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698