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

Side by Side Diff: components/offline_pages/background/request_queue_unittest.cc

Issue 2219393004: Adds an observer for the request coordinator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@resumeAPI
Patch Set: Fix nits. Created 4 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
« no previous file with comments | « components/offline_pages/background/request_queue_store_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/offline_pages/background/request_queue.h" 5 #include "components/offline_pages/background/request_queue.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/test/test_simple_task_runner.h" 10 #include "base/test/test_simple_task_runner.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 void SetUp() override; 42 void SetUp() override;
43 43
44 void PumpLoop(); 44 void PumpLoop();
45 45
46 // Callback for adding requests. 46 // Callback for adding requests.
47 void AddRequestDone(AddRequestResult result, const SavePageRequest& request); 47 void AddRequestDone(AddRequestResult result, const SavePageRequest& request);
48 // Callback for getting requests. 48 // Callback for getting requests.
49 void GetRequestsDone(GetRequestsResult result, 49 void GetRequestsDone(GetRequestsResult result,
50 const std::vector<SavePageRequest>& requests); 50 const std::vector<SavePageRequest>& requests);
51 // Callback for removing request. 51 // Callback for removing request.
52 void RemoveRequestDone( 52 void RemoveRequestsDone(
53 const RequestQueue::UpdateMultipleRequestResults& results); 53 const RequestQueue::UpdateMultipleRequestResults& results,
54 const std::vector<SavePageRequest>& requests);
55
56 void UpdateMultipleRequestsDone(
57 const RequestQueue::UpdateMultipleRequestResults& results,
58 const std::vector<SavePageRequest>& requests);
54 59
55 void UpdateRequestDone(UpdateRequestResult result); 60 void UpdateRequestDone(UpdateRequestResult result);
56 61
57 RequestQueue* queue() { return queue_.get(); } 62 RequestQueue* queue() { return queue_.get(); }
58 63
59 AddRequestResult last_add_result() const { return last_add_result_; } 64 AddRequestResult last_add_result() const { return last_add_result_; }
60 SavePageRequest* last_added_request() { 65 SavePageRequest* last_added_request() {
61 return last_added_request_.get(); 66 return last_added_request_.get();
62 } 67 }
63 68
64 const RequestQueue::UpdateMultipleRequestResults& last_remove_results() 69 const RequestQueue::UpdateMultipleRequestResults& last_remove_results()
65 const { 70 const {
66 return last_remove_results_; 71 return last_remove_results_;
67 } 72 }
68 73
74 const RequestQueue::UpdateMultipleRequestResults&
75 last_multiple_update_results() const {
76 return last_multiple_update_results_;
77 }
78
69 UpdateRequestResult last_update_result() const { return last_update_result_; } 79 UpdateRequestResult last_update_result() const { return last_update_result_; }
70 80
71 GetRequestsResult last_get_requests_result() const { 81 GetRequestsResult last_get_requests_result() const {
72 return last_get_requests_result_; 82 return last_get_requests_result_;
73 } 83 }
74 const std::vector<SavePageRequest>& last_requests() const { 84 const std::vector<SavePageRequest>& last_requests() const {
75 return last_requests_; 85 return last_requests_;
76 } 86 }
77 87
78 private: 88 private:
79 AddRequestResult last_add_result_; 89 AddRequestResult last_add_result_;
80 std::unique_ptr<SavePageRequest> last_added_request_; 90 std::unique_ptr<SavePageRequest> last_added_request_;
81 RequestQueue::UpdateMultipleRequestResults last_remove_results_; 91 RequestQueue::UpdateMultipleRequestResults last_remove_results_;
92 RequestQueue::UpdateMultipleRequestResults last_multiple_update_results_;
82 UpdateRequestResult last_update_result_; 93 UpdateRequestResult last_update_result_;
83 94
84 GetRequestsResult last_get_requests_result_; 95 GetRequestsResult last_get_requests_result_;
85 std::vector<SavePageRequest> last_requests_; 96 std::vector<SavePageRequest> last_requests_;
86 97
87 std::unique_ptr<RequestQueue> queue_; 98 std::unique_ptr<RequestQueue> queue_;
88 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 99 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
89 base::ThreadTaskRunnerHandle task_runner_handle_; 100 base::ThreadTaskRunnerHandle task_runner_handle_;
90 }; 101 };
91 102
(...skipping 22 matching lines...) Expand all
114 last_added_request_.reset(new SavePageRequest(request)); 125 last_added_request_.reset(new SavePageRequest(request));
115 } 126 }
116 127
117 void RequestQueueTest::GetRequestsDone( 128 void RequestQueueTest::GetRequestsDone(
118 GetRequestsResult result, 129 GetRequestsResult result,
119 const std::vector<SavePageRequest>& requests) { 130 const std::vector<SavePageRequest>& requests) {
120 last_get_requests_result_ = result; 131 last_get_requests_result_ = result;
121 last_requests_ = requests; 132 last_requests_ = requests;
122 } 133 }
123 134
124 void RequestQueueTest::RemoveRequestDone( 135 void RequestQueueTest::RemoveRequestsDone(
125 const RequestQueue::UpdateMultipleRequestResults& results) { 136 const RequestQueue::UpdateMultipleRequestResults& results,
137 const std::vector<SavePageRequest>& requests) {
126 last_remove_results_ = results; 138 last_remove_results_ = results;
139 last_requests_ = requests;
140 }
141
142 void RequestQueueTest::UpdateMultipleRequestsDone(
143 const RequestQueue::UpdateMultipleRequestResults& results,
144 const std::vector<SavePageRequest>& requests) {
145 last_multiple_update_results_ = results;
146 last_requests_ = requests;
127 } 147 }
128 148
129 void RequestQueueTest::UpdateRequestDone(UpdateRequestResult result) { 149 void RequestQueueTest::UpdateRequestDone(UpdateRequestResult result) {
130 last_update_result_ = result; 150 last_update_result_ = result;
131 } 151 }
132 152
133 TEST_F(RequestQueueTest, GetRequestsEmpty) { 153 TEST_F(RequestQueueTest, GetRequestsEmpty) {
134 queue()->GetRequests( 154 queue()->GetRequests(
135 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 155 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
136 PumpLoop(); 156 PumpLoop();
(...skipping 23 matching lines...) Expand all
160 base::Time creation_time = base::Time::Now(); 180 base::Time creation_time = base::Time::Now();
161 SavePageRequest request( 181 SavePageRequest request(
162 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 182 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
163 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone, 183 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
164 base::Unretained(this))); 184 base::Unretained(this)));
165 PumpLoop(); 185 PumpLoop();
166 ASSERT_EQ(kRequestId, last_added_request()->request_id()); 186 ASSERT_EQ(kRequestId, last_added_request()->request_id());
167 187
168 std::vector<int64_t> remove_requests; 188 std::vector<int64_t> remove_requests;
169 remove_requests.push_back(kRequestId); 189 remove_requests.push_back(kRequestId);
170 queue()->RemoveRequests( 190 queue()->RemoveRequests(remove_requests,
171 remove_requests, 191 base::Bind(&RequestQueueTest::RemoveRequestsDone,
172 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this))); 192 base::Unretained(this)));
173 PumpLoop(); 193 PumpLoop();
174 ASSERT_EQ(1ul, last_remove_results().size()); 194 ASSERT_EQ(1ul, last_remove_results().size());
175 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second); 195 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second);
176 196
177 queue()->GetRequests( 197 queue()->GetRequests(
178 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 198 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
179 PumpLoop(); 199 PumpLoop();
180 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 200 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
181 ASSERT_EQ(0ul, last_requests().size()); 201 ASSERT_EQ(0ul, last_requests().size());
182 } 202 }
(...skipping 10 matching lines...) Expand all
193 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time, 213 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
194 kUserRequested); 214 kUserRequested);
195 queue()->AddRequest(request2, base::Bind(&RequestQueueTest::AddRequestDone, 215 queue()->AddRequest(request2, base::Bind(&RequestQueueTest::AddRequestDone,
196 base::Unretained(this))); 216 base::Unretained(this)));
197 PumpLoop(); 217 PumpLoop();
198 ASSERT_EQ(kRequestId2, last_added_request()->request_id()); 218 ASSERT_EQ(kRequestId2, last_added_request()->request_id());
199 219
200 std::vector<int64_t> remove_requests; 220 std::vector<int64_t> remove_requests;
201 remove_requests.push_back(kRequestId); 221 remove_requests.push_back(kRequestId);
202 remove_requests.push_back(kRequestId2); 222 remove_requests.push_back(kRequestId2);
203 queue()->RemoveRequests( 223 queue()->RemoveRequests(remove_requests,
204 remove_requests, 224 base::Bind(&RequestQueueTest::RemoveRequestsDone,
205 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this))); 225 base::Unretained(this)));
206 PumpLoop(); 226 PumpLoop();
207 ASSERT_EQ(2ul, last_remove_results().size()); 227 ASSERT_EQ(2ul, last_remove_results().size());
208 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second); 228 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second);
209 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(1).second); 229 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(1).second);
210 ASSERT_EQ(kRequestId, last_remove_results().at(0).first); 230 ASSERT_EQ(kRequestId, last_remove_results().at(0).first);
211 ASSERT_EQ(kRequestId2, last_remove_results().at(1).first); 231 ASSERT_EQ(kRequestId2, last_remove_results().at(1).first);
212 232
213 queue()->GetRequests( 233 queue()->GetRequests(
214 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 234 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
215 PumpLoop(); 235 PumpLoop();
(...skipping 17 matching lines...) Expand all
233 PumpLoop(); 253 PumpLoop();
234 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 254 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
235 ASSERT_EQ(1ul, last_requests().size()); 255 ASSERT_EQ(1ul, last_requests().size());
236 256
237 std::vector<int64_t> request_ids; 257 std::vector<int64_t> request_ids;
238 request_ids.push_back(kRequestId); 258 request_ids.push_back(kRequestId);
239 259
240 // Pause the request. 260 // Pause the request.
241 queue()->ChangeRequestsState( 261 queue()->ChangeRequestsState(
242 request_ids, SavePageRequest::RequestState::PAUSED, 262 request_ids, SavePageRequest::RequestState::PAUSED,
243 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); 263 base::Bind(&RequestQueueTest::UpdateMultipleRequestsDone,
264 base::Unretained(this)));
244 PumpLoop(); 265 PumpLoop();
245 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result()); 266 ASSERT_EQ(1ul, last_multiple_update_results().size());
267 ASSERT_EQ(UpdateRequestResult::SUCCESS,
268 last_multiple_update_results().at(0).second);
246 269
247 queue()->GetRequests( 270 queue()->GetRequests(
248 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 271 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
249 PumpLoop(); 272 PumpLoop();
250 273
251 // Verify the request is paused. 274 // Verify the request is paused.
252 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 275 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
253 ASSERT_EQ(1ul, last_requests().size()); 276 ASSERT_EQ(1ul, last_requests().size());
254 ASSERT_EQ(SavePageRequest::RequestState::PAUSED, 277 ASSERT_EQ(SavePageRequest::RequestState::PAUSED,
255 last_requests().front().request_state()); 278 last_requests().front().request_state());
256 279
257 // Resume the request. 280 // Resume the request.
258 queue()->ChangeRequestsState( 281 queue()->ChangeRequestsState(
259 request_ids, SavePageRequest::RequestState::AVAILABLE, 282 request_ids, SavePageRequest::RequestState::AVAILABLE,
260 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); 283 base::Bind(&RequestQueueTest::UpdateMultipleRequestsDone,
284 base::Unretained(this)));
261 PumpLoop(); 285 PumpLoop();
262 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result()); 286 ASSERT_EQ(1ul, last_multiple_update_results().size());
287 ASSERT_EQ(UpdateRequestResult::SUCCESS,
288 last_multiple_update_results().at(0).second);
263 289
264 queue()->GetRequests( 290 queue()->GetRequests(
265 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 291 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
266 PumpLoop(); 292 PumpLoop();
267 293
268 // Verify the request is no longer paused. 294 // Verify the request is no longer paused.
269 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 295 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
270 ASSERT_EQ(1ul, last_requests().size()); 296 ASSERT_EQ(1ul, last_requests().size());
271 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE, 297 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
272 last_requests().front().request_state()); 298 last_requests().front().request_state());
(...skipping 17 matching lines...) Expand all
290 ASSERT_EQ(request2.request_id(), last_added_request()->request_id()); 316 ASSERT_EQ(request2.request_id(), last_added_request()->request_id());
291 317
292 queue()->GetRequests( 318 queue()->GetRequests(
293 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 319 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
294 PumpLoop(); 320 PumpLoop();
295 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 321 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
296 ASSERT_EQ(2ul, last_requests().size()); 322 ASSERT_EQ(2ul, last_requests().size());
297 323
298 std::vector<int64_t> remove_requests; 324 std::vector<int64_t> remove_requests;
299 remove_requests.push_back(request1.request_id()); 325 remove_requests.push_back(request1.request_id());
300 queue()->RemoveRequests( 326 queue()->RemoveRequests(remove_requests,
301 remove_requests, 327 base::Bind(&RequestQueueTest::RemoveRequestsDone,
302 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this))); 328 base::Unretained(this)));
303 PumpLoop(); 329 PumpLoop();
304 ASSERT_EQ(1ul, last_remove_results().size()); 330 ASSERT_EQ(1ul, last_remove_results().size());
305 ASSERT_EQ(kRequestId, last_remove_results().at(0).first); 331 ASSERT_EQ(kRequestId, last_remove_results().at(0).first);
306 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second); 332 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second);
307 333
308 queue()->GetRequests( 334 queue()->GetRequests(
309 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 335 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
310 PumpLoop(); 336 PumpLoop();
311 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 337 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
312 ASSERT_EQ(1ul, last_requests().size()); 338 ASSERT_EQ(1ul, last_requests().size());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 378
353 // Try to update request1 when only request2 is in the queue. 379 // Try to update request1 when only request2 is in the queue.
354 queue()->UpdateRequest( 380 queue()->UpdateRequest(
355 request1, 381 request1,
356 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); 382 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
357 PumpLoop(); 383 PumpLoop();
358 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result()); 384 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result());
359 } 385 }
360 386
361 } // namespace offline_pages 387 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_queue_store_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698