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

Side by Side Diff: components/sync/driver/frontend_data_type_controller_unittest.cc

Issue 1302233003: Replace gmock's deprecated SetArgumentPointee with SetArgPointee. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 2017 Created 3 years, 7 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
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 "components/sync/driver/frontend_data_type_controller.h" 5 #include "components/sync/driver/frontend_data_type_controller.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/location.h" 10 #include "base/location.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/run_loop.h" 13 #include "base/run_loop.h"
14 #include "base/single_thread_task_runner.h" 14 #include "base/single_thread_task_runner.h"
15 #include "base/threading/thread_task_runner_handle.h" 15 #include "base/threading/thread_task_runner_handle.h"
16 #include "base/tracked_objects.h" 16 #include "base/tracked_objects.h"
17 #include "components/sync/driver/data_type_controller_mock.h" 17 #include "components/sync/driver/data_type_controller_mock.h"
18 #include "components/sync/driver/fake_sync_client.h" 18 #include "components/sync/driver/fake_sync_client.h"
19 #include "components/sync/driver/fake_sync_service.h" 19 #include "components/sync/driver/fake_sync_service.h"
20 #include "components/sync/driver/frontend_data_type_controller_mock.h" 20 #include "components/sync/driver/frontend_data_type_controller_mock.h"
21 #include "components/sync/driver/model_associator_mock.h" 21 #include "components/sync/driver/model_associator_mock.h"
22 #include "components/sync/driver/sync_api_component_factory_mock.h" 22 #include "components/sync/driver/sync_api_component_factory_mock.h"
23 #include "components/sync/model/change_processor_mock.h" 23 #include "components/sync/model/change_processor_mock.h"
24 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
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::SetArgPointee;
31 using testing::StrictMock; 31 using testing::StrictMock;
32 32
33 namespace syncer { 33 namespace syncer {
34 34
35 class FrontendDataTypeControllerFake : public FrontendDataTypeController { 35 class FrontendDataTypeControllerFake : public FrontendDataTypeController {
36 public: 36 public:
37 FrontendDataTypeControllerFake(SyncClient* sync_client, 37 FrontendDataTypeControllerFake(SyncClient* sync_client,
38 FrontendDataTypeControllerMock* mock) 38 FrontendDataTypeControllerMock* mock)
39 : FrontendDataTypeController(BOOKMARKS, base::Closure(), sync_client), 39 : FrontendDataTypeController(BOOKMARKS, base::Closure(), sync_client),
40 mock_(mock), 40 mock_(mock),
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 protected: 82 protected:
83 void SetStartExpectations() { 83 void SetStartExpectations() {
84 EXPECT_CALL(*dtc_mock_.get(), StartModels()).WillOnce(Return(true)); 84 EXPECT_CALL(*dtc_mock_.get(), StartModels()).WillOnce(Return(true));
85 EXPECT_CALL(model_load_callback_, Run(_, _)); 85 EXPECT_CALL(model_load_callback_, Run(_, _));
86 } 86 }
87 87
88 void SetAssociateExpectations() { 88 void SetAssociateExpectations() {
89 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()) 89 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
90 .WillOnce(Return(true)); 90 .WillOnce(Return(true));
91 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) 91 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
92 .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); 92 .WillOnce(DoAll(SetArgPointee<0>(true), Return(true)));
93 EXPECT_CALL(*model_associator_, AssociateModels(_, _)) 93 EXPECT_CALL(*model_associator_, AssociateModels(_, _))
94 .WillOnce(Return(SyncError())); 94 .WillOnce(Return(SyncError()));
95 EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_)); 95 EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_));
96 } 96 }
97 97
98 void SetActivateExpectations(DataTypeController::ConfigureResult result) { 98 void SetActivateExpectations(DataTypeController::ConfigureResult result) {
99 EXPECT_CALL(start_callback_, Run(result, _, _)); 99 EXPECT_CALL(start_callback_, Run(result, _, _));
100 } 100 }
101 101
102 void SetStopExpectations() { 102 void SetStopExpectations() {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 139 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
140 Start(); 140 Start();
141 EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state()); 141 EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state());
142 } 142 }
143 143
144 TEST_F(SyncFrontendDataTypeControllerTest, StartFirstRun) { 144 TEST_F(SyncFrontendDataTypeControllerTest, StartFirstRun) {
145 SetStartExpectations(); 145 SetStartExpectations();
146 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()) 146 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
147 .WillOnce(Return(true)); 147 .WillOnce(Return(true));
148 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) 148 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
149 .WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true))); 149 .WillOnce(DoAll(SetArgPointee<0>(false), Return(true)));
150 EXPECT_CALL(*model_associator_, AssociateModels(_, _)) 150 EXPECT_CALL(*model_associator_, AssociateModels(_, _))
151 .WillOnce(Return(SyncError())); 151 .WillOnce(Return(SyncError()));
152 EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_)); 152 EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_));
153 SetActivateExpectations(DataTypeController::OK_FIRST_RUN); 153 SetActivateExpectations(DataTypeController::OK_FIRST_RUN);
154 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 154 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
155 Start(); 155 Start();
156 EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state()); 156 EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state());
157 } 157 }
158 158
159 TEST_F(SyncFrontendDataTypeControllerTest, StartStopBeforeAssociation) { 159 TEST_F(SyncFrontendDataTypeControllerTest, StartStopBeforeAssociation) {
(...skipping 17 matching lines...) Expand all
177 EXPECT_EQ(DataTypeController::MODEL_STARTING, frontend_dtc_->state()); 177 EXPECT_EQ(DataTypeController::MODEL_STARTING, frontend_dtc_->state());
178 frontend_dtc_->Stop(); 178 frontend_dtc_->Stop();
179 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 179 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
180 } 180 }
181 181
182 TEST_F(SyncFrontendDataTypeControllerTest, StartAssociationFailed) { 182 TEST_F(SyncFrontendDataTypeControllerTest, StartAssociationFailed) {
183 SetStartExpectations(); 183 SetStartExpectations();
184 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()) 184 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
185 .WillOnce(Return(true)); 185 .WillOnce(Return(true));
186 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) 186 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
187 .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); 187 .WillOnce(DoAll(SetArgPointee<0>(true), Return(true)));
188 EXPECT_CALL(*model_associator_, AssociateModels(_, _)) 188 EXPECT_CALL(*model_associator_, AssociateModels(_, _))
189 .WillOnce(Return( 189 .WillOnce(Return(
190 SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "error", BOOKMARKS))); 190 SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "error", BOOKMARKS)));
191 191
192 EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_)); 192 EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_));
193 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED); 193 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED);
194 // Set up association to fail with an association failed error. 194 // Set up association to fail with an association failed error.
195 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 195 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
196 Start(); 196 Start();
197 EXPECT_EQ(DataTypeController::DISABLED, frontend_dtc_->state()); 197 EXPECT_EQ(DataTypeController::DISABLED, frontend_dtc_->state());
198 } 198 }
199 199
200 TEST_F(SyncFrontendDataTypeControllerTest, 200 TEST_F(SyncFrontendDataTypeControllerTest,
201 StartAssociationTriggersUnrecoverableError) { 201 StartAssociationTriggersUnrecoverableError) {
202 SetStartExpectations(); 202 SetStartExpectations();
203 SetStartFailExpectations(DataTypeController::UNRECOVERABLE_ERROR); 203 SetStartFailExpectations(DataTypeController::UNRECOVERABLE_ERROR);
204 // Set up association to fail with an unrecoverable error. 204 // Set up association to fail with an unrecoverable error.
205 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()) 205 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
206 .WillRepeatedly(Return(true)); 206 .WillRepeatedly(Return(true));
207 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) 207 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_))
208 .WillRepeatedly(DoAll(SetArgumentPointee<0>(false), Return(false))); 208 .WillRepeatedly(DoAll(SetArgPointee<0>(false), Return(false)));
209 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 209 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
210 Start(); 210 Start();
211 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 211 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
212 } 212 }
213 213
214 TEST_F(SyncFrontendDataTypeControllerTest, StartAssociationCryptoNotReady) { 214 TEST_F(SyncFrontendDataTypeControllerTest, StartAssociationCryptoNotReady) {
215 SetStartExpectations(); 215 SetStartExpectations();
216 SetStartFailExpectations(DataTypeController::NEEDS_CRYPTO); 216 SetStartFailExpectations(DataTypeController::NEEDS_CRYPTO);
217 // Set up association to fail with a NEEDS_CRYPTO error. 217 // Set up association to fail with a NEEDS_CRYPTO error.
218 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()) 218 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary())
219 .WillRepeatedly(Return(false)); 219 .WillRepeatedly(Return(false));
220 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 220 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
221 Start(); 221 Start();
222 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 222 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
223 } 223 }
224 224
225 TEST_F(SyncFrontendDataTypeControllerTest, Stop) { 225 TEST_F(SyncFrontendDataTypeControllerTest, Stop) {
226 SetStartExpectations(); 226 SetStartExpectations();
227 SetAssociateExpectations(); 227 SetAssociateExpectations();
228 SetActivateExpectations(DataTypeController::OK); 228 SetActivateExpectations(DataTypeController::OK);
229 SetStopExpectations(); 229 SetStopExpectations();
230 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 230 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
231 Start(); 231 Start();
232 EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state()); 232 EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state());
233 frontend_dtc_->Stop(); 233 frontend_dtc_->Stop();
234 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); 234 EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
235 } 235 }
236 236
237 } // namespace syncer 237 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698