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