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

Unified 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 700172ad0bb2b2c2fef8ef45ed688c818d85bcf5..079513ea7209963ef405e8d0eb8f6f821dfc2b7f 100644
--- a/components/offline_pages/background/request_queue_unittest.cc
+++ b/components/offline_pages/background/request_queue_unittest.cc
@@ -213,10 +213,65 @@ TEST_F(RequestQueueTest, RemoveSeveralRequests) {
queue()->GetRequests(
base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
PumpLoop();
+
+ // Verify both requests are no longer in the queue.
ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
ASSERT_EQ(0ul, last_requests().size());
}
+TEST_F(RequestQueueTest, PauseAndResume) {
+ base::Time creation_time = base::Time::Now();
+ SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
+ kUserRequested);
+ queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
+ base::Unretained(this)));
+ PumpLoop();
+ ASSERT_EQ(kRequestId, last_added_request()->request_id());
+
+ 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 no longer 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) {
« 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