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_coordinator_unittest.cc

Issue 2249303002: Simplify Observer callbacks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR nits - fix TODOs 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_coordinator.h" 5 #include "components/offline_pages/background/request_coordinator.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 } 123 }
124 124
125 private: 125 private:
126 std::unique_ptr<OfflinerStub> offliner_; 126 std::unique_ptr<OfflinerStub> offliner_;
127 }; 127 };
128 128
129 class ObserverStub : public RequestCoordinator::Observer { 129 class ObserverStub : public RequestCoordinator::Observer {
130 public: 130 public:
131 ObserverStub() 131 ObserverStub()
132 : added_called_(false), 132 : added_called_(false),
133 succeeded_called_(false), 133 completed_called_(false),
134 failed_called_(false),
135 changed_called_(false), 134 changed_called_(false),
136 removed_called_(false), 135 last_status_(RequestCoordinator::SavePageStatus::SUCCESS),
136 previous_status_(RequestCoordinator::SavePageStatus::SUCCESS),
137 state_(SavePageRequest::RequestState::PRERENDERING) {} 137 state_(SavePageRequest::RequestState::PRERENDERING) {}
138 138
139 void Clear() { 139 void Clear() {
140 added_called_ = false; 140 added_called_ = false;
141 succeeded_called_ = false; 141 completed_called_ = false;
142 failed_called_ = false;
143 changed_called_ = false; 142 changed_called_ = false;
144 removed_called_ = false;
145 state_ = SavePageRequest::RequestState::PRERENDERING; 143 state_ = SavePageRequest::RequestState::PRERENDERING;
144 last_status_ = RequestCoordinator::SavePageStatus::SUCCESS;
145 previous_status_ = RequestCoordinator::SavePageStatus::SUCCESS;
146 } 146 }
147 147
148 void OnAdded(const SavePageRequest& request) override { 148 void OnAdded(const SavePageRequest& request) override {
149 added_called_ = true; 149 added_called_ = true;
150 } 150 }
151 151
152 void OnSucceeded(const SavePageRequest& request) override { 152 void OnCompleted(const SavePageRequest& request,
153 succeeded_called_ = true; 153 RequestCoordinator::SavePageStatus status) override {
154 } 154 completed_called_ = true;
155 155 previous_status_ = last_status_;
156 void OnFailed(const SavePageRequest& request, 156 last_status_ = status;
157 RequestCoordinator::SavePageStatus status) override {
158 failed_called_ = true;
159 } 157 }
160 158
161 void OnChanged(const SavePageRequest& request) override { 159 void OnChanged(const SavePageRequest& request) override {
162 changed_called_ = true; 160 changed_called_ = true;
163 state_ = request.request_state(); 161 state_ = request.request_state();
164 } 162 }
165 163
166 void OnRemoved(const SavePageRequest& request, 164 bool added_called() { return added_called_; }
167 RequestCoordinator::SavePageStatus status) override { 165 bool completed_called() { return completed_called_; }
168 removed_called_ = true; 166 bool changed_called() { return changed_called_; }
167 RequestCoordinator::SavePageStatus last_status() { return last_status_; }
168 RequestCoordinator::SavePageStatus previous_status() {
169 return previous_status_;
169 } 170 }
170
171 bool added_called() { return added_called_; }
172 bool succeeded_called() { return succeeded_called_; }
173 bool failed_called() { return failed_called_; }
174 bool changed_called() { return changed_called_; }
175 bool removed_called() { return removed_called_; }
176 SavePageRequest::RequestState state() { return state_; } 171 SavePageRequest::RequestState state() { return state_; }
177 172
178 private: 173 private:
179 bool added_called_; 174 bool added_called_;
180 bool succeeded_called_; 175 bool completed_called_;
181 bool failed_called_;
182 bool changed_called_; 176 bool changed_called_;
183 bool removed_called_; 177 RequestCoordinator::SavePageStatus last_status_;
178 RequestCoordinator::SavePageStatus previous_status_;
184 SavePageRequest::RequestState state_; 179 SavePageRequest::RequestState state_;
185 }; 180 };
186 181
187 class RequestCoordinatorTest 182 class RequestCoordinatorTest
188 : public testing::Test { 183 : public testing::Test {
189 public: 184 public:
190 RequestCoordinatorTest(); 185 RequestCoordinatorTest();
191 ~RequestCoordinatorTest() override; 186 ~RequestCoordinatorTest() override;
192 187
193 void SetUp() override; 188 void SetUp() override;
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 // Verify the request gets removed from the queue, and wait for callbacks. 415 // Verify the request gets removed from the queue, and wait for callbacks.
421 coordinator()->queue()->GetRequests( 416 coordinator()->queue()->GetRequests(
422 base::Bind(&RequestCoordinatorTest::GetRequestsDone, 417 base::Bind(&RequestCoordinatorTest::GetRequestsDone,
423 base::Unretained(this))); 418 base::Unretained(this)));
424 PumpLoop(); 419 PumpLoop();
425 420
426 // We should not find any requests in the queue anymore. 421 // We should not find any requests in the queue anymore.
427 // RequestPicker should *not* have tried to start an additional job, 422 // RequestPicker should *not* have tried to start an additional job,
428 // because the request queue is empty now. 423 // because the request queue is empty now.
429 EXPECT_EQ(0UL, last_requests().size()); 424 EXPECT_EQ(0UL, last_requests().size());
430 // Check that the observer got the notification that we succeeded. 425 // Check that the observer got the notification that we succeeded, and that
431 EXPECT_TRUE(observer().succeeded_called()); 426 // the request got removed from the queue.
427 EXPECT_TRUE(observer().completed_called());
428 EXPECT_EQ(RequestCoordinator::SavePageStatus::SUCCESS,
429 observer().previous_status());
430 EXPECT_EQ(RequestCoordinator::SavePageStatus::REMOVED,
431 observer().last_status());
432 } 432 }
433 433
434 TEST_F(RequestCoordinatorTest, OfflinerDoneRequestFailed) { 434 TEST_F(RequestCoordinatorTest, OfflinerDoneRequestFailed) {
435 // Add a request to the queue, wait for callbacks to finish. 435 // Add a request to the queue, wait for callbacks to finish.
436 offline_pages::SavePageRequest request( 436 offline_pages::SavePageRequest request(
437 kRequestId1, kUrl1, kClientId1, base::Time::Now(), kUserRequested); 437 kRequestId1, kUrl1, kClientId1, base::Time::Now(), kUserRequested);
438 request.MarkAttemptStarted(base::Time::Now()); 438 request.MarkAttemptStarted(base::Time::Now());
439 coordinator()->queue()->AddRequest( 439 coordinator()->queue()->AddRequest(
440 request, 440 request,
441 base::Bind(&RequestCoordinatorTest::AddRequestDone, 441 base::Bind(&RequestCoordinatorTest::AddRequestDone,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 476
477 // Verify neither request is removed from the queue; wait for callbacks. 477 // Verify neither request is removed from the queue; wait for callbacks.
478 coordinator()->queue()->GetRequests( 478 coordinator()->queue()->GetRequests(
479 base::Bind(&RequestCoordinatorTest::GetRequestsDone, 479 base::Bind(&RequestCoordinatorTest::GetRequestsDone,
480 base::Unretained(this))); 480 base::Unretained(this)));
481 PumpLoop(); 481 PumpLoop();
482 482
483 // Now just one request in the queue since failed request removed 483 // Now just one request in the queue since failed request removed
484 // (for single attempt policy). 484 // (for single attempt policy).
485 EXPECT_EQ(1UL, last_requests().size()); 485 EXPECT_EQ(1UL, last_requests().size());
486 // Check that the observer got the notification that we failed 486 // Check that the observer got the notification that we failed (and the
487 EXPECT_TRUE(observer().failed_called()); 487 // subsequent notification that the request was removed).
488 EXPECT_TRUE(observer().completed_called());
489 EXPECT_EQ(RequestCoordinator::SavePageStatus::RETRY_COUNT_EXCEEDED,
490 observer().previous_status());
491 EXPECT_EQ(RequestCoordinator::SavePageStatus::REMOVED,
492 observer().last_status());
488 } 493 }
489 494
490 TEST_F(RequestCoordinatorTest, OfflinerDoneForegroundCancel) { 495 TEST_F(RequestCoordinatorTest, OfflinerDoneForegroundCancel) {
491 // Add a request to the queue, wait for callbacks to finish. 496 // Add a request to the queue, wait for callbacks to finish.
492 offline_pages::SavePageRequest request( 497 offline_pages::SavePageRequest request(
493 kRequestId1, kUrl1, kClientId1, base::Time::Now(), kUserRequested); 498 kRequestId1, kUrl1, kClientId1, base::Time::Now(), kUserRequested);
494 request.MarkAttemptStarted(base::Time::Now()); 499 request.MarkAttemptStarted(base::Time::Now());
495 coordinator()->queue()->AddRequest( 500 coordinator()->queue()->AddRequest(
496 request, base::Bind(&RequestCoordinatorTest::AddRequestDone, 501 request, base::Bind(&RequestCoordinatorTest::AddRequestDone,
497 base::Unretained(this))); 502 base::Unretained(this)));
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone, 763 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone,
759 base::Unretained(this))); 764 base::Unretained(this)));
760 PumpLoop(); 765 PumpLoop();
761 766
762 // Remove the request. 767 // Remove the request.
763 std::vector<int64_t> request_ids; 768 std::vector<int64_t> request_ids;
764 request_ids.push_back(kRequestId1); 769 request_ids.push_back(kRequestId1);
765 coordinator()->RemoveRequests(request_ids); 770 coordinator()->RemoveRequests(request_ids);
766 PumpLoop(); 771 PumpLoop();
767 772
768 EXPECT_TRUE(observer().removed_called()); 773 EXPECT_TRUE(observer().completed_called());
774 EXPECT_EQ(RequestCoordinator::SavePageStatus::REMOVED,
775 observer().last_status());
769 } 776 }
770 777
771 } // namespace offline_pages 778 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698