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

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

Issue 2228813003: Changes to fit better with the needs of the download manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use a pair as the return from the remove type 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 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 155
156 // Callback for Add requests. 156 // Callback for Add requests.
157 void AddRequestDone(RequestQueue::AddRequestResult result, 157 void AddRequestDone(RequestQueue::AddRequestResult result,
158 const SavePageRequest& request); 158 const SavePageRequest& request);
159 159
160 // Callback for getting requests. 160 // Callback for getting requests.
161 void GetRequestsDone(RequestQueue::GetRequestsResult result, 161 void GetRequestsDone(RequestQueue::GetRequestsResult result,
162 const std::vector<SavePageRequest>& requests); 162 const std::vector<SavePageRequest>& requests);
163 163
164 // Callback for getting request statuses. 164 // Callback for getting request statuses.
165 void GetQueuedRequestsDone(const std::vector<ClientId>& client_ids); 165 void GetQueuedRequestsDone(const std::vector<SavePageRequest>& requests);
166 166
167 void SendOfflinerDoneCallback(const SavePageRequest& request, 167 void SendOfflinerDoneCallback(const SavePageRequest& request,
168 Offliner::RequestStatus status); 168 Offliner::RequestStatus status);
169 169
170 RequestQueue::GetRequestsResult last_get_requests_result() const { 170 RequestQueue::GetRequestsResult last_get_requests_result() const {
171 return last_get_requests_result_; 171 return last_get_requests_result_;
172 } 172 }
173 173
174 const std::vector<SavePageRequest>& last_requests() const { 174 const std::vector<SavePageRequest>& last_requests() const {
175 return last_requests_; 175 return last_requests_;
176 } 176 }
177 177
178 const std::vector<ClientId>& last_client_ids() const {
179 return last_client_ids_;
180 }
181
182 void EnableOfflinerCallback(bool enable) { 178 void EnableOfflinerCallback(bool enable) {
183 offliner_->enable_callback(enable); 179 offliner_->enable_callback(enable);
184 } 180 }
185 181
186 void SetOfflinerTimeoutForTest(const base::TimeDelta& timeout) { 182 void SetOfflinerTimeoutForTest(const base::TimeDelta& timeout) {
187 coordinator_->SetOfflinerTimeoutForTest(timeout); 183 coordinator_->SetOfflinerTimeoutForTest(timeout);
188 } 184 }
189 185
190 void SetDeviceConditionsForTest(DeviceConditions device_conditions) { 186 void SetDeviceConditionsForTest(DeviceConditions device_conditions) {
191 coordinator_->SetDeviceConditionsForTest(device_conditions); 187 coordinator_->SetDeviceConditionsForTest(device_conditions);
192 } 188 }
193 189
194 void WaitForCallback() { 190 void WaitForCallback() {
195 waiter_.Wait(); 191 waiter_.Wait();
196 } 192 }
197 193
198 void AdvanceClockBy(base::TimeDelta delta) { 194 void AdvanceClockBy(base::TimeDelta delta) {
199 task_runner_->FastForwardBy(delta); 195 task_runner_->FastForwardBy(delta);
200 } 196 }
201 197
202 Offliner::RequestStatus last_offlining_status() const { 198 Offliner::RequestStatus last_offlining_status() const {
203 return coordinator_->last_offlining_status_; 199 return coordinator_->last_offlining_status_;
204 } 200 }
205 201
206 bool OfflinerWasCanceled() const { return offliner_->cancel_called(); } 202 bool OfflinerWasCanceled() const { return offliner_->cancel_called(); }
207 203
208 private: 204 private:
209 RequestQueue::GetRequestsResult last_get_requests_result_; 205 RequestQueue::GetRequestsResult last_get_requests_result_;
210 std::vector<SavePageRequest> last_requests_; 206 std::vector<SavePageRequest> last_requests_;
211 std::vector<ClientId> last_client_ids_;
212 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_; 207 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
213 base::ThreadTaskRunnerHandle task_runner_handle_; 208 base::ThreadTaskRunnerHandle task_runner_handle_;
214 std::unique_ptr<RequestCoordinator> coordinator_; 209 std::unique_ptr<RequestCoordinator> coordinator_;
215 OfflinerStub* offliner_; 210 OfflinerStub* offliner_;
216 base::WaitableEvent waiter_; 211 base::WaitableEvent waiter_;
217 }; 212 };
218 213
219 RequestCoordinatorTest::RequestCoordinatorTest() 214 RequestCoordinatorTest::RequestCoordinatorTest()
220 : last_get_requests_result_(RequestQueue::GetRequestsResult::STORE_FAILURE), 215 : last_get_requests_result_(RequestQueue::GetRequestsResult::STORE_FAILURE),
221 task_runner_(new base::TestMockTimeTaskRunner), 216 task_runner_(new base::TestMockTimeTaskRunner),
(...skipping 24 matching lines...) Expand all
246 } 241 }
247 242
248 void RequestCoordinatorTest::GetRequestsDone( 243 void RequestCoordinatorTest::GetRequestsDone(
249 RequestQueue::GetRequestsResult result, 244 RequestQueue::GetRequestsResult result,
250 const std::vector<SavePageRequest>& requests) { 245 const std::vector<SavePageRequest>& requests) {
251 last_get_requests_result_ = result; 246 last_get_requests_result_ = result;
252 last_requests_ = requests; 247 last_requests_ = requests;
253 } 248 }
254 249
255 void RequestCoordinatorTest::GetQueuedRequestsDone( 250 void RequestCoordinatorTest::GetQueuedRequestsDone(
256 const std::vector<ClientId>& client_ids) { 251 const std::vector<SavePageRequest>& requests) {
257 last_client_ids_ = client_ids; 252 last_requests_ = requests;
258 waiter_.Signal(); 253 waiter_.Signal();
259 } 254 }
260 255
261 void RequestCoordinatorTest::AddRequestDone( 256 void RequestCoordinatorTest::AddRequestDone(
262 RequestQueue::AddRequestResult result, 257 RequestQueue::AddRequestResult result,
263 const SavePageRequest& request) {} 258 const SavePageRequest& request) {}
264 259
265 void RequestCoordinatorTest::SendOfflinerDoneCallback( 260 void RequestCoordinatorTest::SendOfflinerDoneCallback(
266 const SavePageRequest& request, Offliner::RequestStatus status) { 261 const SavePageRequest& request, Offliner::RequestStatus status) {
267 // Using the fact that the test class is a friend, call to the callback 262 // Using the fact that the test class is a friend, call to the callback
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 // Verify the request gets removed from the queue, and wait for callbacks. 616 // Verify the request gets removed from the queue, and wait for callbacks.
622 coordinator()->queue()->GetRequests( 617 coordinator()->queue()->GetRequests(
623 base::Bind(&RequestCoordinatorTest::GetRequestsDone, 618 base::Bind(&RequestCoordinatorTest::GetRequestsDone,
624 base::Unretained(this))); 619 base::Unretained(this)));
625 PumpLoop(); 620 PumpLoop();
626 621
627 // We should find one request in the queue. 622 // We should find one request in the queue.
628 EXPECT_EQ(1UL, last_requests().size()); 623 EXPECT_EQ(1UL, last_requests().size());
629 } 624 }
630 625
631 TEST_F(RequestCoordinatorTest, GetQueuedRequests) { 626 TEST_F(RequestCoordinatorTest, GetAllRequests) {
632 // Add two requests to the queue. 627 // Add two requests to the queue.
633 offline_pages::SavePageRequest request1(kRequestId1, kUrl1, kClientId1, 628 offline_pages::SavePageRequest request1(kRequestId1, kUrl1, kClientId1,
634 base::Time::Now(), kUserRequested); 629 base::Time::Now(), kUserRequested);
635 offline_pages::SavePageRequest request2(kRequestId1 + 1, kUrl2, kClientId2, 630 offline_pages::SavePageRequest request2(kRequestId1 + 1, kUrl2, kClientId2,
636 base::Time::Now(), kUserRequested); 631 base::Time::Now(), kUserRequested);
637 coordinator()->queue()->AddRequest( 632 coordinator()->queue()->AddRequest(
638 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone, 633 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone,
639 base::Unretained(this))); 634 base::Unretained(this)));
640 coordinator()->queue()->AddRequest( 635 coordinator()->queue()->AddRequest(
641 request2, base::Bind(&RequestCoordinatorTest::AddRequestDone, 636 request2, base::Bind(&RequestCoordinatorTest::AddRequestDone,
642 base::Unretained(this))); 637 base::Unretained(this)));
643 PumpLoop(); 638 PumpLoop();
644 639
645 // Start the async status fetching. 640 // Start the async status fetching.
646 coordinator()->GetQueuedRequests( 641 coordinator()->GetAllRequests(base::Bind(
647 kClientNamespace, 642 &RequestCoordinatorTest::GetQueuedRequestsDone, base::Unretained(this)));
648 base::Bind(&RequestCoordinatorTest::GetQueuedRequestsDone,
649 base::Unretained(this)));
650 PumpLoop(); 643 PumpLoop();
651 644
652 // Wait for async get to finish. 645 // Wait for async get to finish.
653 WaitForCallback(); 646 WaitForCallback();
654 PumpLoop(); 647 PumpLoop();
655 648
656 // Check that the statuses found in the callback match what we expect. 649 // Check that the statuses found in the callback match what we expect.
657 EXPECT_EQ(2UL, last_client_ids().size()); 650 EXPECT_EQ(2UL, last_requests().size());
658 EXPECT_EQ(kId1, last_client_ids().at(0).id); 651 EXPECT_EQ(kRequestId1, last_requests().at(0).request_id());
659 EXPECT_EQ(kId2, last_client_ids().at(1).id); 652 EXPECT_EQ(kRequestId2, last_requests().at(1).request_id());
660 } 653 }
661 654
662 } // namespace offline_pages 655 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698