| Index: components/offline_pages/background/request_queue_unittest.cc
|
| diff --git a/components/offline_pages/background/request_queue_unittest.cc b/components/offline_pages/background/request_queue_unittest.cc
|
| index 967257c6d83c047573e7cac7a124d32bf3fc7125..a3ca44db2bf26ee32609109f108329e62a9a6fc6 100644
|
| --- a/components/offline_pages/background/request_queue_unittest.cc
|
| +++ b/components/offline_pages/background/request_queue_unittest.cc
|
| @@ -212,6 +212,59 @@ TEST_F(RequestQueueTest, RemoveRequestByClientId) {
|
| ASSERT_EQ(kClientId2, last_requests().front().client_id());
|
| }
|
|
|
| +TEST_F(RequestQueueTest, PauseAndResume) {
|
| + base::Time creation_time = base::Time::Now();
|
| + // Put two requests on the queue with different client IDs.
|
| + SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
|
| + kUserRequested);
|
| + queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
|
| + base::Unretained(this)));
|
| + PumpLoop();
|
| +
|
| + queue()->GetRequests(
|
| + base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
|
| + PumpLoop();
|
| + ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
|
| + ASSERT_EQ(1ul, last_requests().size());
|
| +
|
| + std::vector<int64_t> request_ids;
|
| + request_ids.push_back(kRequestId);
|
| +
|
| + // Pause the request.
|
| + queue()->ChangeRequestsState(
|
| + request_ids, SavePageRequest::RequestState::PAUSED,
|
| + base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
|
| + PumpLoop();
|
| + ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result());
|
| +
|
| + queue()->GetRequests(
|
| + base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
|
| + PumpLoop();
|
| +
|
| + // Verify the request is paused.
|
| + ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
|
| + ASSERT_EQ(1ul, last_requests().size());
|
| + ASSERT_EQ(SavePageRequest::RequestState::PAUSED,
|
| + last_requests().front().request_state());
|
| +
|
| + // Resume the request.
|
| + queue()->ChangeRequestsState(
|
| + request_ids, SavePageRequest::RequestState::AVAILABLE,
|
| + base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
|
| + PumpLoop();
|
| + ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result());
|
| +
|
| + queue()->GetRequests(
|
| + base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
|
| + PumpLoop();
|
| +
|
| + // Verify the request is paused.
|
| + ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
|
| + ASSERT_EQ(1ul, last_requests().size());
|
| + ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
|
| + last_requests().front().request_state());
|
| +}
|
| +
|
| // A longer test populating the request queue with more than one item, properly
|
| // listing multiple items and removing the right item.
|
| TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) {
|
|
|