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

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: More FGorski CR feedback 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()->ChangeRequestsState(
235 request_ids, SavePageRequest::RequestState::PAUSED,
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, base::Unretained(this)));
242 PumpLoop();
243
244 // Verify the request is paused.
245 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
246 ASSERT_EQ(1ul, last_requests().size());
247 ASSERT_EQ(SavePageRequest::RequestState::PAUSED,
248 last_requests().front().request_state());
249
250 // Resume the request.
251 queue()->ChangeRequestsState(
252 request_ids, SavePageRequest::RequestState::AVAILABLE,
253 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
254 PumpLoop();
255 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result());
256
257 queue()->GetRequests(
258 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
259 PumpLoop();
260
261 // Verify the request is paused.
262 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
263 ASSERT_EQ(1ul, last_requests().size());
264 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
265 last_requests().front().request_state());
266 }
267
215 // A longer test populating the request queue with more than one item, properly 268 // A longer test populating the request queue with more than one item, properly
216 // listing multiple items and removing the right item. 269 // listing multiple items and removing the right item.
217 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) { 270 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) {
218 base::Time creation_time = base::Time::Now(); 271 base::Time creation_time = base::Time::Now();
219 SavePageRequest request1( 272 SavePageRequest request1(
220 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 273 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
221 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone, 274 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone,
222 base::Unretained(this))); 275 base::Unretained(this)));
223 PumpLoop(); 276 PumpLoop();
224 ASSERT_EQ(request1.request_id(), last_added_request()->request_id()); 277 ASSERT_EQ(request1.request_id(), last_added_request()->request_id());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 341
289 // Try to update request1 when only request2 is in the queue. 342 // Try to update request1 when only request2 is in the queue.
290 queue()->UpdateRequest( 343 queue()->UpdateRequest(
291 request1, 344 request1,
292 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); 345 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
293 PumpLoop(); 346 PumpLoop();
294 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result()); 347 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result());
295 } 348 }
296 349
297 } // namespace offline_pages 350 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698