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

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

Issue 2221323003: Add an API to Pause and Resume background offlining requests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Switch to request ID as key 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
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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_result()); 205 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_result());
206 206
207 queue()->GetRequests( 207 queue()->GetRequests(
208 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 208 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
209 PumpLoop(); 209 PumpLoop();
210 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 210 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
211 ASSERT_EQ(1ul, last_requests().size()); 211 ASSERT_EQ(1ul, last_requests().size());
212 ASSERT_EQ(kClientId2, last_requests().front().client_id()); 212 ASSERT_EQ(kClientId2, last_requests().front().client_id());
213 } 213 }
214 214
215 TEST_F(RequestQueueTest, PauseAndResume) {
216 base::Time creation_time = base::Time::Now();
217 // Put two requests on the queue with different client IDs.
218 SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
219 kUserRequested);
220 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
221 base::Unretained(this)));
222 PumpLoop();
223
224 queue()->GetRequests(
225 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
226 PumpLoop();
227 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
228 ASSERT_EQ(1ul, last_requests().size());
229
230 std::vector<int64_t> request_ids;
231 request_ids.push_back(kRequestId);
232
233 // Pause the request.
234 queue()->PauseRequests(
235 request_ids,
236 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
237 PumpLoop();
238 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result());
239
240 queue()->GetRequests(
241 base::Bind(&RequestQueueTest::GetRequestsDone,
242 base::Unretained(this)));
243 PumpLoop();
244
245 // Verify the request is paused.
246 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
247 ASSERT_EQ(1ul, last_requests().size());
248 ASSERT_EQ(SavePageRequest::RequestState::PAUSED,
249 last_requests().front().request_state());
250
251 // Resume the request.
252 queue()->ResumeRequests(
253 request_ids,
254 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
255 PumpLoop();
256 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result());
257
258 queue()->GetRequests(
259 base::Bind(&RequestQueueTest::GetRequestsDone,
260 base::Unretained(this)));
261 PumpLoop();
262
263 // Verify the request is paused.
264 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
265 ASSERT_EQ(1ul, last_requests().size());
266 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
267 last_requests().front().request_state());
268 }
269
215 // A longer test populating the request queue with more than one item, properly 270 // A longer test populating the request queue with more than one item, properly
216 // listing multiple items and removing the right item. 271 // listing multiple items and removing the right item.
217 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) { 272 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) {
218 base::Time creation_time = base::Time::Now(); 273 base::Time creation_time = base::Time::Now();
219 SavePageRequest request1( 274 SavePageRequest request1(
220 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 275 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
221 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone, 276 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone,
222 base::Unretained(this))); 277 base::Unretained(this)));
223 PumpLoop(); 278 PumpLoop();
224 ASSERT_EQ(request1.request_id(), last_added_request()->request_id()); 279 ASSERT_EQ(request1.request_id(), last_added_request()->request_id());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 343
289 // Try to update request1 when only request2 is in the queue. 344 // Try to update request1 when only request2 is in the queue.
290 queue()->UpdateRequest( 345 queue()->UpdateRequest(
291 request1, 346 request1,
292 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); 347 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
293 PumpLoop(); 348 PumpLoop();
294 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result()); 349 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result());
295 } 350 }
296 351
297 } // namespace offline_pages 352 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698