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

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: Fix unit test break introduced by merge 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 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 PumpLoop(); 206 PumpLoop();
207 ASSERT_EQ(2ul, last_remove_results().size()); 207 ASSERT_EQ(2ul, last_remove_results().size());
208 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second); 208 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(0).second);
209 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(1).second); 209 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_results().at(1).second);
210 ASSERT_EQ(kRequestId, last_remove_results().at(0).first); 210 ASSERT_EQ(kRequestId, last_remove_results().at(0).first);
211 ASSERT_EQ(kRequestId2, last_remove_results().at(1).first); 211 ASSERT_EQ(kRequestId2, last_remove_results().at(1).first);
212 212
213 queue()->GetRequests( 213 queue()->GetRequests(
214 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 214 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
215 PumpLoop(); 215 PumpLoop();
216
217 // Verify both requests are no longer in the queue.
218 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
219 ASSERT_EQ(0ul, last_requests().size());
220 }
221
222 TEST_F(RequestQueueTest, PauseAndResume) {
223 base::Time creation_time = base::Time::Now();
224 SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
225 kUserRequested);
226 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
227 base::Unretained(this)));
228 PumpLoop();
229 ASSERT_EQ(kRequestId, last_added_request()->request_id());
230
231 queue()->GetRequests(
232 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
233 PumpLoop();
216 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 234 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
217 ASSERT_EQ(0ul, last_requests().size()); 235 ASSERT_EQ(1ul, last_requests().size());
236
237 std::vector<int64_t> request_ids;
238 request_ids.push_back(kRequestId);
239
240 // Pause the request.
241 queue()->ChangeRequestsState(
242 request_ids, SavePageRequest::RequestState::PAUSED,
243 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
244 PumpLoop();
245 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result());
246
247 queue()->GetRequests(
248 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
249 PumpLoop();
250
251 // Verify the request is paused.
252 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
253 ASSERT_EQ(1ul, last_requests().size());
254 ASSERT_EQ(SavePageRequest::RequestState::PAUSED,
255 last_requests().front().request_state());
256
257 // Resume the request.
258 queue()->ChangeRequestsState(
259 request_ids, SavePageRequest::RequestState::AVAILABLE,
260 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
261 PumpLoop();
262 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result());
263
264 queue()->GetRequests(
265 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
266 PumpLoop();
267
268 // Verify the request is no longer paused.
269 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
270 ASSERT_EQ(1ul, last_requests().size());
271 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
272 last_requests().front().request_state());
218 } 273 }
219 274
220 // A longer test populating the request queue with more than one item, properly 275 // A longer test populating the request queue with more than one item, properly
221 // listing multiple items and removing the right item. 276 // listing multiple items and removing the right item.
222 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) { 277 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) {
223 base::Time creation_time = base::Time::Now(); 278 base::Time creation_time = base::Time::Now();
224 SavePageRequest request1( 279 SavePageRequest request1(
225 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 280 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
226 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone, 281 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone,
227 base::Unretained(this))); 282 base::Unretained(this)));
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 352
298 // Try to update request1 when only request2 is in the queue. 353 // Try to update request1 when only request2 is in the queue.
299 queue()->UpdateRequest( 354 queue()->UpdateRequest(
300 request1, 355 request1,
301 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); 356 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
302 PumpLoop(); 357 PumpLoop();
303 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result()); 358 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result());
304 } 359 }
305 360
306 } // namespace offline_pages 361 } // 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