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

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

Issue 2438503003: [Offline pages] Add MarkAttemptAbortedTask to Request Queue (Closed)
Patch Set: Addressing feedback -- adding comments and documentation Created 4 years, 2 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 46
47 // Callback for adding requests. 47 // Callback for adding requests.
48 void AddRequestDone(AddRequestResult result, const SavePageRequest& request); 48 void AddRequestDone(AddRequestResult result, const SavePageRequest& request);
49 // Callback for getting requests. 49 // Callback for getting requests.
50 void GetRequestsDone(GetRequestsResult result, 50 void GetRequestsDone(GetRequestsResult result,
51 std::vector<std::unique_ptr<SavePageRequest>> requests); 51 std::vector<std::unique_ptr<SavePageRequest>> requests);
52 52
53 void UpdateRequestDone(UpdateRequestResult result); 53 void UpdateRequestDone(UpdateRequestResult result);
54 void UpdateRequestsDone(std::unique_ptr<UpdateRequestsResult> result); 54 void UpdateRequestsDone(std::unique_ptr<UpdateRequestsResult> result);
55 55
56 void ClearResults();
57
56 RequestQueue* queue() { return queue_.get(); } 58 RequestQueue* queue() { return queue_.get(); }
57 59
58 AddRequestResult last_add_result() const { return last_add_result_; } 60 AddRequestResult last_add_result() const { return last_add_result_; }
59 SavePageRequest* last_added_request() { 61 SavePageRequest* last_added_request() {
60 return last_added_request_.get(); 62 return last_added_request_.get();
61 } 63 }
62 64
63 UpdateRequestResult last_update_result() const { return last_update_result_; } 65 UpdateRequestResult last_update_result() const { return last_update_result_; }
64 66
65 GetRequestsResult last_get_requests_result() const { 67 GetRequestsResult last_get_requests_result() const {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 124
123 void RequestQueueTest::UpdateRequestDone(UpdateRequestResult result) { 125 void RequestQueueTest::UpdateRequestDone(UpdateRequestResult result) {
124 last_update_result_ = result; 126 last_update_result_ = result;
125 } 127 }
126 128
127 void RequestQueueTest::UpdateRequestsDone( 129 void RequestQueueTest::UpdateRequestsDone(
128 std::unique_ptr<UpdateRequestsResult> result) { 130 std::unique_ptr<UpdateRequestsResult> result) {
129 update_requests_result_ = std::move(result); 131 update_requests_result_ = std::move(result);
130 } 132 }
131 133
134 void RequestQueueTest::ClearResults() {
135 last_add_result_ = AddRequestResult::STORE_FAILURE;
136 last_update_result_ = UpdateRequestResult::STORE_FAILURE;
137 last_get_requests_result_ = GetRequestsResult::STORE_FAILURE;
138 last_added_request_.reset(nullptr);
139 update_requests_result_.reset(nullptr);
140 last_requests_.clear();
141 }
142
132 TEST_F(RequestQueueTest, GetRequestsEmpty) { 143 TEST_F(RequestQueueTest, GetRequestsEmpty) {
133 queue()->GetRequests( 144 queue()->GetRequests(
134 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 145 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
135 PumpLoop(); 146 PumpLoop();
136 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 147 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
137 ASSERT_EQ(0ul, last_requests().size()); 148 ASSERT_EQ(0ul, last_requests().size());
138 } 149 }
139 150
140 TEST_F(RequestQueueTest, AddRequest) { 151 TEST_F(RequestQueueTest, AddRequest) {
141 base::Time creation_time = base::Time::Now(); 152 base::Time creation_time = base::Time::Now();
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 base::Bind(&RequestQueueTest::UpdateRequestsDone, 444 base::Bind(&RequestQueueTest::UpdateRequestsDone,
434 base::Unretained(this))); 445 base::Unretained(this)));
435 PumpLoop(); 446 PumpLoop();
436 ASSERT_EQ(1ul, update_requests_result()->item_statuses.size()); 447 ASSERT_EQ(1ul, update_requests_result()->item_statuses.size());
437 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first); 448 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first);
438 EXPECT_EQ(ItemActionStatus::NOT_FOUND, 449 EXPECT_EQ(ItemActionStatus::NOT_FOUND,
439 update_requests_result()->item_statuses.at(0).second); 450 update_requests_result()->item_statuses.at(0).second);
440 EXPECT_EQ(0ul, update_requests_result()->updated_items.size()); 451 EXPECT_EQ(0ul, update_requests_result()->updated_items.size());
441 } 452 }
442 453
454 TEST_F(RequestQueueTest, MarkAttemptAborted) {
455 base::Time creation_time = base::Time::Now();
456 SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
457 kUserRequested);
458 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
459 base::Unretained(this)));
460 PumpLoop();
461
462 // Start request.
463 queue()->MarkAttemptStarted(kRequestId,
464 base::Bind(&RequestQueueTest::UpdateRequestsDone,
465 base::Unretained(this)));
466 PumpLoop();
467 ClearResults();
468
469 queue()->MarkAttemptAborted(kRequestId,
470 base::Bind(&RequestQueueTest::UpdateRequestsDone,
471 base::Unretained(this)));
472 PumpLoop();
473
474 ASSERT_TRUE(update_requests_result());
475 EXPECT_EQ(1UL, update_requests_result()->item_statuses.size());
476 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first);
477 EXPECT_EQ(ItemActionStatus::SUCCESS,
478 update_requests_result()->item_statuses.at(0).second);
479 EXPECT_EQ(1UL, update_requests_result()->updated_items.size());
480 EXPECT_EQ(SavePageRequest::RequestState::AVAILABLE,
481 update_requests_result()->updated_items.at(0).request_state());
482 }
483
484 TEST_F(RequestQueueTest, MarkAttemptAbortedRequestNotPresent) {
485 // First add a request. Retry count will be set to 0.
486 base::Time creation_time = base::Time::Now();
487 // This request is never put into the queue.
488 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
489 kUserRequested);
490
491 queue()->MarkAttemptAborted(kRequestId,
492 base::Bind(&RequestQueueTest::UpdateRequestsDone,
493 base::Unretained(this)));
494 PumpLoop();
495 ASSERT_EQ(1ul, update_requests_result()->item_statuses.size());
496 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first);
497 EXPECT_EQ(ItemActionStatus::NOT_FOUND,
498 update_requests_result()->item_statuses.at(0).second);
499 EXPECT_EQ(0ul, update_requests_result()->updated_items.size());
500 }
501
443 } // namespace offline_pages 502 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_queue.cc ('k') | components/offline_pages/background/update_request_task.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698