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

Side by Side Diff: chrome/browser/sync/glue/non_frontend_data_type_controller_unittest.cc

Issue 10662035: [Sync] Put everything in sync/api into csync namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix comments Created 8 years, 6 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 #include "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 WillOnce(Return(ProfileSyncComponentsFactory::SyncComponents( 142 WillOnce(Return(ProfileSyncComponentsFactory::SyncComponents(
143 model_associator_, change_processor_))); 143 model_associator_, change_processor_)));
144 } 144 }
145 145
146 void SetAssociateExpectations() { 146 void SetAssociateExpectations() {
147 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). 147 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()).
148 WillOnce(Return(true)); 148 WillOnce(Return(true));
149 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). 149 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
150 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); 150 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
151 EXPECT_CALL(*model_associator_, AssociateModels()). 151 EXPECT_CALL(*model_associator_, AssociateModels()).
152 WillOnce(Return(SyncError())); 152 WillOnce(Return(csync::SyncError()));
153 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); 153 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_));
154 } 154 }
155 155
156 void SetActivateExpectations(DataTypeController::StartResult result) { 156 void SetActivateExpectations(DataTypeController::StartResult result) {
157 EXPECT_CALL(service_, ActivateDataType(_, _, _)); 157 EXPECT_CALL(service_, ActivateDataType(_, _, _));
158 EXPECT_CALL(start_callback_, Run(result,_)); 158 EXPECT_CALL(start_callback_, Run(result,_));
159 } 159 }
160 160
161 void SetStopExpectations() { 161 void SetStopExpectations() {
162 EXPECT_CALL(*dtc_mock_, StopModels()); 162 EXPECT_CALL(*dtc_mock_, StopModels());
163 EXPECT_CALL(service_, DeactivateDataType(_)); 163 EXPECT_CALL(service_, DeactivateDataType(_));
164 EXPECT_CALL(*model_associator_, DisassociateModels()). 164 EXPECT_CALL(*model_associator_, DisassociateModels()).
165 WillOnce(Return(SyncError())); 165 WillOnce(Return(csync::SyncError()));
166 } 166 }
167 167
168 void SetStartFailExpectations(DataTypeController::StartResult result) { 168 void SetStartFailExpectations(DataTypeController::StartResult result) {
169 EXPECT_CALL(*dtc_mock_, StopModels()); 169 EXPECT_CALL(*dtc_mock_, StopModels());
170 if (DataTypeController::IsUnrecoverableResult(result)) 170 if (DataTypeController::IsUnrecoverableResult(result))
171 EXPECT_CALL(*dtc_mock_, RecordUnrecoverableError(_, _)); 171 EXPECT_CALL(*dtc_mock_, RecordUnrecoverableError(_, _));
172 if (model_associator_) { 172 if (model_associator_) {
173 EXPECT_CALL(*model_associator_, DisassociateModels()). 173 EXPECT_CALL(*model_associator_, DisassociateModels()).
174 WillOnce(Return(SyncError())); 174 WillOnce(Return(csync::SyncError()));
175 } 175 }
176 EXPECT_CALL(*dtc_mock_, RecordStartFailure(result)); 176 EXPECT_CALL(*dtc_mock_, RecordStartFailure(result));
177 EXPECT_CALL(start_callback_, Run(result,_)); 177 EXPECT_CALL(start_callback_, Run(result,_));
178 } 178 }
179 179
180 static void SignalDone(WaitableEvent* done) { 180 static void SignalDone(WaitableEvent* done) {
181 done->Signal(); 181 done->Signal();
182 } 182 }
183 183
184 void WaitForDTC() { 184 void WaitForDTC() {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 EXPECT_EQ(DataTypeController::RUNNING, non_frontend_dtc_->state()); 226 EXPECT_EQ(DataTypeController::RUNNING, non_frontend_dtc_->state());
227 } 227 }
228 228
229 TEST_F(SyncNonFrontendDataTypeControllerTest, StartFirstRun) { 229 TEST_F(SyncNonFrontendDataTypeControllerTest, StartFirstRun) {
230 SetStartExpectations(); 230 SetStartExpectations();
231 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). 231 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()).
232 WillOnce(Return(true)); 232 WillOnce(Return(true));
233 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). 233 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
234 WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true))); 234 WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true)));
235 EXPECT_CALL(*model_associator_, AssociateModels()). 235 EXPECT_CALL(*model_associator_, AssociateModels()).
236 WillOnce(Return(SyncError())); 236 WillOnce(Return(csync::SyncError()));
237 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); 237 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_));
238 SetActivateExpectations(DataTypeController::OK_FIRST_RUN); 238 SetActivateExpectations(DataTypeController::OK_FIRST_RUN);
239 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state()); 239 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state());
240 Start(); 240 Start();
241 WaitForDTC(); 241 WaitForDTC();
242 EXPECT_EQ(DataTypeController::RUNNING, non_frontend_dtc_->state()); 242 EXPECT_EQ(DataTypeController::RUNNING, non_frontend_dtc_->state());
243 } 243 }
244 244
245 TEST_F(SyncNonFrontendDataTypeControllerTest, StartAssociationFailed) { 245 TEST_F(SyncNonFrontendDataTypeControllerTest, StartAssociationFailed) {
246 SetStartExpectations(); 246 SetStartExpectations();
247 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). 247 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()).
248 WillOnce(Return(true)); 248 WillOnce(Return(true));
249 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). 249 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
250 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); 250 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
251 EXPECT_CALL(*model_associator_, AssociateModels()). 251 EXPECT_CALL(*model_associator_, AssociateModels()).
252 WillOnce(Return(SyncError(FROM_HERE, "Error", syncable::AUTOFILL))); 252 WillOnce(
253 Return(csync::SyncError(FROM_HERE, "Error", syncable::AUTOFILL)));
253 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); 254 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_));
254 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED); 255 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED);
255 // Set up association to fail with an association failed error. 256 // Set up association to fail with an association failed error.
256 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state()); 257 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state());
257 Start(); 258 Start();
258 WaitForDTC(); 259 WaitForDTC();
259 EXPECT_EQ(DataTypeController::DISABLED, non_frontend_dtc_->state()); 260 EXPECT_EQ(DataTypeController::DISABLED, non_frontend_dtc_->state());
260 } 261 }
261 262
262 TEST_F(SyncNonFrontendDataTypeControllerTest, 263 TEST_F(SyncNonFrontendDataTypeControllerTest,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 WillOnce(Return(true)); 298 WillOnce(Return(true));
298 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). 299 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
299 WillOnce(DoAll( 300 WillOnce(DoAll(
300 SignalEvent(&wait_for_db_thread_pause), 301 SignalEvent(&wait_for_db_thread_pause),
301 WaitOnEvent(&pause_db_thread), 302 WaitOnEvent(&pause_db_thread),
302 SetArgumentPointee<0>(true), 303 SetArgumentPointee<0>(true),
303 Return(true))); 304 Return(true)));
304 EXPECT_CALL(*model_associator_, AbortAssociation()).WillOnce( 305 EXPECT_CALL(*model_associator_, AbortAssociation()).WillOnce(
305 SignalEvent(&pause_db_thread)); 306 SignalEvent(&pause_db_thread));
306 EXPECT_CALL(*model_associator_, AssociateModels()). 307 EXPECT_CALL(*model_associator_, AssociateModels()).
307 WillOnce(Return(SyncError())); 308 WillOnce(Return(csync::SyncError()));
308 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); 309 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_));
309 EXPECT_CALL(service_, ActivateDataType(_, _, _)); 310 EXPECT_CALL(service_, ActivateDataType(_, _, _));
310 EXPECT_CALL(start_callback_, Run(DataTypeController::ABORTED,_)); 311 EXPECT_CALL(start_callback_, Run(DataTypeController::ABORTED,_));
311 EXPECT_CALL(*dtc_mock_, RecordStartFailure(DataTypeController::ABORTED)); 312 EXPECT_CALL(*dtc_mock_, RecordStartFailure(DataTypeController::ABORTED));
312 SetStopExpectations(); 313 SetStopExpectations();
313 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state()); 314 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state());
314 Start(); 315 Start();
315 wait_for_db_thread_pause.Wait(); 316 wait_for_db_thread_pause.Wait();
316 non_frontend_dtc_->Stop(); 317 non_frontend_dtc_->Stop();
317 WaitForDTC(); 318 WaitForDTC();
318 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state()); 319 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state());
319 } 320 }
320 321
321 // Same as above but abort during the Activate call. 322 // Same as above but abort during the Activate call.
322 TEST_F(SyncNonFrontendDataTypeControllerTest, AbortDuringAssociationActivated) { 323 TEST_F(SyncNonFrontendDataTypeControllerTest, AbortDuringAssociationActivated) {
323 WaitableEvent wait_for_db_thread_pause(false, false); 324 WaitableEvent wait_for_db_thread_pause(false, false);
324 WaitableEvent pause_db_thread(false, false); 325 WaitableEvent pause_db_thread(false, false);
325 326
326 SetStartExpectations(); 327 SetStartExpectations();
327 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). 328 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()).
328 WillOnce(Return(true)); 329 WillOnce(Return(true));
329 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). 330 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)).
330 WillOnce(DoAll( 331 WillOnce(DoAll(
331 SetArgumentPointee<0>(true), 332 SetArgumentPointee<0>(true),
332 Return(true))); 333 Return(true)));
333 EXPECT_CALL(*model_associator_, AbortAssociation()).WillOnce( 334 EXPECT_CALL(*model_associator_, AbortAssociation()).WillOnce(
334 SignalEvent(&pause_db_thread)); 335 SignalEvent(&pause_db_thread));
335 EXPECT_CALL(*model_associator_, AssociateModels()). 336 EXPECT_CALL(*model_associator_, AssociateModels()).
336 WillOnce(Return(SyncError())); 337 WillOnce(Return(csync::SyncError()));
337 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); 338 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_));
338 EXPECT_CALL(service_, ActivateDataType(_, _, _)).WillOnce(DoAll( 339 EXPECT_CALL(service_, ActivateDataType(_, _, _)).WillOnce(DoAll(
339 SignalEvent(&wait_for_db_thread_pause), 340 SignalEvent(&wait_for_db_thread_pause),
340 WaitOnEvent(&pause_db_thread))); 341 WaitOnEvent(&pause_db_thread)));
341 EXPECT_CALL(start_callback_, Run(DataTypeController::ABORTED,_)); 342 EXPECT_CALL(start_callback_, Run(DataTypeController::ABORTED,_));
342 EXPECT_CALL(*dtc_mock_, RecordStartFailure(DataTypeController::ABORTED)); 343 EXPECT_CALL(*dtc_mock_, RecordStartFailure(DataTypeController::ABORTED));
343 SetStopExpectations(); 344 SetStopExpectations();
344 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state()); 345 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state());
345 Start(); 346 Start();
346 wait_for_db_thread_pause.Wait(); 347 wait_for_db_thread_pause.Wait();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 EXPECT_EQ(DataTypeController::RUNNING, non_frontend_dtc_->state()); 379 EXPECT_EQ(DataTypeController::RUNNING, non_frontend_dtc_->state());
379 // This should cause non_frontend_dtc_->Stop() to be called. 380 // This should cause non_frontend_dtc_->Stop() to be called.
380 BrowserThread::PostTask(BrowserThread::DB, FROM_HERE, base::Bind( 381 BrowserThread::PostTask(BrowserThread::DB, FROM_HERE, base::Bind(
381 &NonFrontendDataTypeControllerFake::OnSingleDatatypeUnrecoverableError, 382 &NonFrontendDataTypeControllerFake::OnSingleDatatypeUnrecoverableError,
382 non_frontend_dtc_.get(), 383 non_frontend_dtc_.get(),
383 FROM_HERE, 384 FROM_HERE,
384 std::string("Test"))); 385 std::string("Test")));
385 WaitForDTC(); 386 WaitForDTC();
386 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state()); 387 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_frontend_dtc_->state());
387 } 388 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698