OLD | NEW |
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 #include "components/search_engines/search_engine_data_type_controller.h" | 5 #include "components/search_engines/search_engine_data_type_controller.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 | 25 |
26 using testing::_; | 26 using testing::_; |
27 using testing::DoAll; | 27 using testing::DoAll; |
28 using testing::InvokeWithoutArgs; | 28 using testing::InvokeWithoutArgs; |
29 using testing::Return; | 29 using testing::Return; |
30 using testing::SetArgumentPointee; | 30 using testing::SetArgumentPointee; |
31 | 31 |
32 namespace browser_sync { | 32 namespace browser_sync { |
33 namespace { | 33 namespace { |
34 | 34 |
35 class SyncSearchEngineDataTypeControllerTest : public testing::Test, | 35 class SyncSearchEngineDataTypeControllerTest |
36 public syncer::FakeSyncClient { | 36 : public testing::Test, |
| 37 public sync_driver::FakeSyncClient { |
37 public: | 38 public: |
38 SyncSearchEngineDataTypeControllerTest() | 39 SyncSearchEngineDataTypeControllerTest() |
39 : syncer::FakeSyncClient(&profile_sync_factory_), | 40 : sync_driver::FakeSyncClient(&profile_sync_factory_), |
40 template_url_service_(nullptr, 0), | 41 template_url_service_(nullptr, 0), |
41 search_engine_dtc_(base::Closure(), this, &template_url_service_) { | 42 search_engine_dtc_(base::Closure(), this, &template_url_service_) { |
42 // Disallow the TemplateURLService from loading until | 43 // Disallow the TemplateURLService from loading until |
43 // PreloadTemplateURLService() is called . | 44 // PreloadTemplateURLService() is called . |
44 template_url_service_.set_disable_load(true); | 45 template_url_service_.set_disable_load(true); |
45 } | 46 } |
46 | 47 |
47 // FakeSyncClient overrides. | 48 // FakeSyncClient overrides. |
48 base::WeakPtr<syncer::SyncableService> GetSyncableServiceForType( | 49 base::WeakPtr<syncer::SyncableService> GetSyncableServiceForType( |
49 syncer::ModelType type) override { | 50 syncer::ModelType type) override { |
50 return syncable_service_.AsWeakPtr(); | 51 return syncable_service_.AsWeakPtr(); |
51 } | 52 } |
52 | 53 |
53 void TearDown() override { | 54 void TearDown() override { |
54 // Must be done before we pump the loop. | 55 // Must be done before we pump the loop. |
55 syncable_service_.StopSyncing(syncer::SEARCH_ENGINES); | 56 syncable_service_.StopSyncing(syncer::SEARCH_ENGINES); |
56 } | 57 } |
57 | 58 |
58 protected: | 59 protected: |
59 void PreloadTemplateURLService() { | 60 void PreloadTemplateURLService() { |
60 template_url_service_.set_disable_load(false); | 61 template_url_service_.set_disable_load(false); |
61 template_url_service_.Load(); | 62 template_url_service_.Load(); |
62 } | 63 } |
63 | 64 |
64 void SetStartExpectations() { | 65 void SetStartExpectations() { |
65 search_engine_dtc_.SetGenericChangeProcessorFactoryForTest( | 66 search_engine_dtc_.SetGenericChangeProcessorFactoryForTest( |
66 base::WrapUnique<syncer::GenericChangeProcessorFactory>( | 67 base::WrapUnique<sync_driver::GenericChangeProcessorFactory>( |
67 new syncer::FakeGenericChangeProcessorFactory( | 68 new sync_driver::FakeGenericChangeProcessorFactory( |
68 base::MakeUnique<syncer::FakeGenericChangeProcessor>( | 69 base::MakeUnique<sync_driver::FakeGenericChangeProcessor>( |
69 syncer::SEARCH_ENGINES, this)))); | 70 syncer::SEARCH_ENGINES, this)))); |
70 EXPECT_CALL(model_load_callback_, Run(_, _)); | 71 EXPECT_CALL(model_load_callback_, Run(_, _)); |
71 } | 72 } |
72 | 73 |
73 void Start() { | 74 void Start() { |
74 search_engine_dtc_.LoadModels( | 75 search_engine_dtc_.LoadModels( |
75 base::Bind(&syncer::ModelLoadCallbackMock::Run, | 76 base::Bind(&sync_driver::ModelLoadCallbackMock::Run, |
76 base::Unretained(&model_load_callback_))); | 77 base::Unretained(&model_load_callback_))); |
77 search_engine_dtc_.StartAssociating(base::Bind( | 78 search_engine_dtc_.StartAssociating( |
78 &syncer::StartCallbackMock::Run, base::Unretained(&start_callback_))); | 79 base::Bind(&sync_driver::StartCallbackMock::Run, |
| 80 base::Unretained(&start_callback_))); |
79 base::RunLoop().RunUntilIdle(); | 81 base::RunLoop().RunUntilIdle(); |
80 } | 82 } |
81 | 83 |
82 base::MessageLoop message_loop_; | 84 base::MessageLoop message_loop_; |
83 TemplateURLService template_url_service_; | 85 TemplateURLService template_url_service_; |
84 SearchEngineDataTypeController search_engine_dtc_; | 86 SearchEngineDataTypeController search_engine_dtc_; |
85 syncer::SyncApiComponentFactoryMock profile_sync_factory_; | 87 SyncApiComponentFactoryMock profile_sync_factory_; |
86 syncer::FakeSyncableService syncable_service_; | 88 syncer::FakeSyncableService syncable_service_; |
87 syncer::StartCallbackMock start_callback_; | 89 sync_driver::StartCallbackMock start_callback_; |
88 syncer::ModelLoadCallbackMock model_load_callback_; | 90 sync_driver::ModelLoadCallbackMock model_load_callback_; |
89 }; | 91 }; |
90 | 92 |
91 TEST_F(SyncSearchEngineDataTypeControllerTest, StartURLServiceReady) { | 93 TEST_F(SyncSearchEngineDataTypeControllerTest, StartURLServiceReady) { |
92 SetStartExpectations(); | 94 SetStartExpectations(); |
93 // We want to start ready. | 95 // We want to start ready. |
94 PreloadTemplateURLService(); | 96 PreloadTemplateURLService(); |
95 EXPECT_CALL(start_callback_, Run(syncer::DataTypeController::OK, _, _)); | 97 EXPECT_CALL(start_callback_, Run(sync_driver::DataTypeController::OK, _, _)); |
96 | 98 |
97 EXPECT_EQ(syncer::DataTypeController::NOT_RUNNING, | 99 EXPECT_EQ(sync_driver::DataTypeController::NOT_RUNNING, |
98 search_engine_dtc_.state()); | 100 search_engine_dtc_.state()); |
99 EXPECT_FALSE(syncable_service_.syncing()); | 101 EXPECT_FALSE(syncable_service_.syncing()); |
100 Start(); | 102 Start(); |
101 EXPECT_EQ(syncer::DataTypeController::RUNNING, search_engine_dtc_.state()); | 103 EXPECT_EQ(sync_driver::DataTypeController::RUNNING, |
| 104 search_engine_dtc_.state()); |
102 EXPECT_TRUE(syncable_service_.syncing()); | 105 EXPECT_TRUE(syncable_service_.syncing()); |
103 } | 106 } |
104 | 107 |
105 TEST_F(SyncSearchEngineDataTypeControllerTest, StartURLServiceNotReady) { | 108 TEST_F(SyncSearchEngineDataTypeControllerTest, StartURLServiceNotReady) { |
106 EXPECT_CALL(model_load_callback_, Run(_, _)); | 109 EXPECT_CALL(model_load_callback_, Run(_, _)); |
107 EXPECT_FALSE(syncable_service_.syncing()); | 110 EXPECT_FALSE(syncable_service_.syncing()); |
108 search_engine_dtc_.LoadModels( | 111 search_engine_dtc_.LoadModels( |
109 base::Bind(&syncer::ModelLoadCallbackMock::Run, | 112 base::Bind(&sync_driver::ModelLoadCallbackMock::Run, |
110 base::Unretained(&model_load_callback_))); | 113 base::Unretained(&model_load_callback_))); |
111 EXPECT_TRUE(search_engine_dtc_.GetSubscriptionForTesting()); | 114 EXPECT_TRUE(search_engine_dtc_.GetSubscriptionForTesting()); |
112 EXPECT_EQ(syncer::DataTypeController::MODEL_STARTING, | 115 EXPECT_EQ(sync_driver::DataTypeController::MODEL_STARTING, |
113 search_engine_dtc_.state()); | 116 search_engine_dtc_.state()); |
114 EXPECT_FALSE(syncable_service_.syncing()); | 117 EXPECT_FALSE(syncable_service_.syncing()); |
115 | 118 |
116 // Send the notification that the TemplateURLService has started. | 119 // Send the notification that the TemplateURLService has started. |
117 PreloadTemplateURLService(); | 120 PreloadTemplateURLService(); |
118 EXPECT_EQ(NULL, search_engine_dtc_.GetSubscriptionForTesting()); | 121 EXPECT_EQ(NULL, search_engine_dtc_.GetSubscriptionForTesting()); |
119 EXPECT_EQ(syncer::DataTypeController::MODEL_LOADED, | 122 EXPECT_EQ(sync_driver::DataTypeController::MODEL_LOADED, |
120 search_engine_dtc_.state()); | 123 search_engine_dtc_.state()); |
121 | 124 |
122 // Wait until WebDB is loaded before we shut it down. | 125 // Wait until WebDB is loaded before we shut it down. |
123 base::RunLoop().RunUntilIdle(); | 126 base::RunLoop().RunUntilIdle(); |
124 } | 127 } |
125 | 128 |
126 TEST_F(SyncSearchEngineDataTypeControllerTest, StartAssociationFailed) { | 129 TEST_F(SyncSearchEngineDataTypeControllerTest, StartAssociationFailed) { |
127 SetStartExpectations(); | 130 SetStartExpectations(); |
128 PreloadTemplateURLService(); | 131 PreloadTemplateURLService(); |
129 EXPECT_CALL(start_callback_, | 132 EXPECT_CALL(start_callback_, |
130 Run(syncer::DataTypeController::ASSOCIATION_FAILED, _, _)); | 133 Run(sync_driver::DataTypeController::ASSOCIATION_FAILED, _, _)); |
131 syncable_service_.set_merge_data_and_start_syncing_error( | 134 syncable_service_.set_merge_data_and_start_syncing_error( |
132 syncer::SyncError(FROM_HERE, | 135 syncer::SyncError(FROM_HERE, |
133 syncer::SyncError::DATATYPE_ERROR, | 136 syncer::SyncError::DATATYPE_ERROR, |
134 "Error", | 137 "Error", |
135 syncer::SEARCH_ENGINES)); | 138 syncer::SEARCH_ENGINES)); |
136 | 139 |
137 Start(); | 140 Start(); |
138 EXPECT_EQ(syncer::DataTypeController::DISABLED, search_engine_dtc_.state()); | 141 EXPECT_EQ(sync_driver::DataTypeController::DISABLED, |
| 142 search_engine_dtc_.state()); |
139 EXPECT_FALSE(syncable_service_.syncing()); | 143 EXPECT_FALSE(syncable_service_.syncing()); |
140 search_engine_dtc_.Stop(); | 144 search_engine_dtc_.Stop(); |
141 EXPECT_EQ(syncer::DataTypeController::NOT_RUNNING, | 145 EXPECT_EQ(sync_driver::DataTypeController::NOT_RUNNING, |
142 search_engine_dtc_.state()); | 146 search_engine_dtc_.state()); |
143 EXPECT_FALSE(syncable_service_.syncing()); | 147 EXPECT_FALSE(syncable_service_.syncing()); |
144 } | 148 } |
145 | 149 |
146 TEST_F(SyncSearchEngineDataTypeControllerTest, Stop) { | 150 TEST_F(SyncSearchEngineDataTypeControllerTest, Stop) { |
147 SetStartExpectations(); | 151 SetStartExpectations(); |
148 PreloadTemplateURLService(); | 152 PreloadTemplateURLService(); |
149 EXPECT_CALL(start_callback_, Run(syncer::DataTypeController::OK, _, _)); | 153 EXPECT_CALL(start_callback_, Run(sync_driver::DataTypeController::OK, _, _)); |
150 | 154 |
151 EXPECT_EQ(syncer::DataTypeController::NOT_RUNNING, | 155 EXPECT_EQ(sync_driver::DataTypeController::NOT_RUNNING, |
152 search_engine_dtc_.state()); | 156 search_engine_dtc_.state()); |
153 EXPECT_FALSE(syncable_service_.syncing()); | 157 EXPECT_FALSE(syncable_service_.syncing()); |
154 Start(); | 158 Start(); |
155 EXPECT_EQ(syncer::DataTypeController::RUNNING, search_engine_dtc_.state()); | 159 EXPECT_EQ(sync_driver::DataTypeController::RUNNING, |
| 160 search_engine_dtc_.state()); |
156 EXPECT_TRUE(syncable_service_.syncing()); | 161 EXPECT_TRUE(syncable_service_.syncing()); |
157 search_engine_dtc_.Stop(); | 162 search_engine_dtc_.Stop(); |
158 EXPECT_EQ(syncer::DataTypeController::NOT_RUNNING, | 163 EXPECT_EQ(sync_driver::DataTypeController::NOT_RUNNING, |
159 search_engine_dtc_.state()); | 164 search_engine_dtc_.state()); |
160 EXPECT_FALSE(syncable_service_.syncing()); | 165 EXPECT_FALSE(syncable_service_.syncing()); |
161 } | 166 } |
162 | 167 |
163 TEST_F(SyncSearchEngineDataTypeControllerTest, StopBeforeLoaded) { | 168 TEST_F(SyncSearchEngineDataTypeControllerTest, StopBeforeLoaded) { |
164 EXPECT_FALSE(syncable_service_.syncing()); | 169 EXPECT_FALSE(syncable_service_.syncing()); |
165 search_engine_dtc_.LoadModels( | 170 search_engine_dtc_.LoadModels( |
166 base::Bind(&syncer::ModelLoadCallbackMock::Run, | 171 base::Bind(&sync_driver::ModelLoadCallbackMock::Run, |
167 base::Unretained(&model_load_callback_))); | 172 base::Unretained(&model_load_callback_))); |
168 EXPECT_TRUE(search_engine_dtc_.GetSubscriptionForTesting()); | 173 EXPECT_TRUE(search_engine_dtc_.GetSubscriptionForTesting()); |
169 EXPECT_EQ(syncer::DataTypeController::MODEL_STARTING, | 174 EXPECT_EQ(sync_driver::DataTypeController::MODEL_STARTING, |
170 search_engine_dtc_.state()); | 175 search_engine_dtc_.state()); |
171 EXPECT_FALSE(syncable_service_.syncing()); | 176 EXPECT_FALSE(syncable_service_.syncing()); |
172 search_engine_dtc_.Stop(); | 177 search_engine_dtc_.Stop(); |
173 EXPECT_EQ(NULL, search_engine_dtc_.GetSubscriptionForTesting()); | 178 EXPECT_EQ(NULL, search_engine_dtc_.GetSubscriptionForTesting()); |
174 EXPECT_EQ(syncer::DataTypeController::NOT_RUNNING, | 179 EXPECT_EQ(sync_driver::DataTypeController::NOT_RUNNING, |
175 search_engine_dtc_.state()); | 180 search_engine_dtc_.state()); |
176 EXPECT_FALSE(syncable_service_.syncing()); | 181 EXPECT_FALSE(syncable_service_.syncing()); |
177 } | 182 } |
178 | 183 |
179 } // namespace | 184 } // namespace |
180 } // namespace browser_sync | 185 } // namespace browser_sync |
OLD | NEW |