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

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

Issue 2256373002: Adds request queue removal capability to OfflinePageBridge. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@query-queue
Patch Set: Rebase. Created 4 years, 3 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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 } 207 }
208 208
209 // Callback for Add requests. 209 // Callback for Add requests.
210 void AddRequestDone(RequestQueue::AddRequestResult result, 210 void AddRequestDone(RequestQueue::AddRequestResult result,
211 const SavePageRequest& request); 211 const SavePageRequest& request);
212 212
213 // Callback for getting requests. 213 // Callback for getting requests.
214 void GetRequestsDone(RequestQueue::GetRequestsResult result, 214 void GetRequestsDone(RequestQueue::GetRequestsResult result,
215 const std::vector<SavePageRequest>& requests); 215 const std::vector<SavePageRequest>& requests);
216 216
217 // Callback for removing requests.
218 void RemoveRequestsDone(
219 const RequestQueue::UpdateMultipleRequestResults& results);
220
217 // Callback for getting request statuses. 221 // Callback for getting request statuses.
218 void GetQueuedRequestsDone(const std::vector<SavePageRequest>& requests); 222 void GetQueuedRequestsDone(const std::vector<SavePageRequest>& requests);
219 223
220 void SendOfflinerDoneCallback(const SavePageRequest& request, 224 void SendOfflinerDoneCallback(const SavePageRequest& request,
221 Offliner::RequestStatus status); 225 Offliner::RequestStatus status);
222 226
223 RequestQueue::GetRequestsResult last_get_requests_result() const { 227 RequestQueue::GetRequestsResult last_get_requests_result() const {
224 return last_get_requests_result_; 228 return last_get_requests_result_;
225 } 229 }
226 230
227 const std::vector<SavePageRequest>& last_requests() const { 231 const std::vector<SavePageRequest>& last_requests() const {
228 return last_requests_; 232 return last_requests_;
229 } 233 }
230 234
235 const RequestQueue::UpdateMultipleRequestResults& last_remove_results()
236 const {
237 return last_remove_results_;
238 }
239
231 void EnableOfflinerCallback(bool enable) { 240 void EnableOfflinerCallback(bool enable) {
232 offliner_->enable_callback(enable); 241 offliner_->enable_callback(enable);
233 } 242 }
234 243
235 void SetOfflinerTimeoutForTest(const base::TimeDelta& timeout) { 244 void SetOfflinerTimeoutForTest(const base::TimeDelta& timeout) {
236 coordinator_->SetOfflinerTimeoutForTest(timeout); 245 coordinator_->SetOfflinerTimeoutForTest(timeout);
237 } 246 }
238 247
239 void SetDeviceConditionsForTest(DeviceConditions device_conditions) { 248 void SetDeviceConditionsForTest(DeviceConditions device_conditions) {
240 coordinator_->SetDeviceConditionsForTest(device_conditions); 249 coordinator_->SetDeviceConditionsForTest(device_conditions);
(...skipping 11 matching lines...) Expand all
252 return coordinator_->last_offlining_status_; 261 return coordinator_->last_offlining_status_;
253 } 262 }
254 263
255 bool OfflinerWasCanceled() const { return offliner_->cancel_called(); } 264 bool OfflinerWasCanceled() const { return offliner_->cancel_called(); }
256 265
257 ObserverStub observer() { return observer_; } 266 ObserverStub observer() { return observer_; }
258 267
259 private: 268 private:
260 RequestQueue::GetRequestsResult last_get_requests_result_; 269 RequestQueue::GetRequestsResult last_get_requests_result_;
261 std::vector<SavePageRequest> last_requests_; 270 std::vector<SavePageRequest> last_requests_;
271 RequestQueue::UpdateMultipleRequestResults last_remove_results_;
262 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_; 272 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
263 base::ThreadTaskRunnerHandle task_runner_handle_; 273 base::ThreadTaskRunnerHandle task_runner_handle_;
264 std::unique_ptr<RequestCoordinator> coordinator_; 274 std::unique_ptr<RequestCoordinator> coordinator_;
265 OfflinerStub* offliner_; 275 OfflinerStub* offliner_;
266 base::WaitableEvent waiter_; 276 base::WaitableEvent waiter_;
267 ObserverStub observer_; 277 ObserverStub observer_;
268 }; 278 };
269 279
270 RequestCoordinatorTest::RequestCoordinatorTest() 280 RequestCoordinatorTest::RequestCoordinatorTest()
271 : last_get_requests_result_(RequestQueue::GetRequestsResult::STORE_FAILURE), 281 : last_get_requests_result_(RequestQueue::GetRequestsResult::STORE_FAILURE),
(...skipping 25 matching lines...) Expand all
297 task_runner_->RunUntilIdle(); 307 task_runner_->RunUntilIdle();
298 } 308 }
299 309
300 void RequestCoordinatorTest::GetRequestsDone( 310 void RequestCoordinatorTest::GetRequestsDone(
301 RequestQueue::GetRequestsResult result, 311 RequestQueue::GetRequestsResult result,
302 const std::vector<SavePageRequest>& requests) { 312 const std::vector<SavePageRequest>& requests) {
303 last_get_requests_result_ = result; 313 last_get_requests_result_ = result;
304 last_requests_ = requests; 314 last_requests_ = requests;
305 } 315 }
306 316
317 void RequestCoordinatorTest::RemoveRequestsDone(
318 const RequestQueue::UpdateMultipleRequestResults& results) {
319 last_remove_results_ = results;
320 waiter_.Signal();
321 }
322
307 void RequestCoordinatorTest::GetQueuedRequestsDone( 323 void RequestCoordinatorTest::GetQueuedRequestsDone(
308 const std::vector<SavePageRequest>& requests) { 324 const std::vector<SavePageRequest>& requests) {
309 last_requests_ = requests; 325 last_requests_ = requests;
310 waiter_.Signal(); 326 waiter_.Signal();
311 } 327 }
312 328
313 void RequestCoordinatorTest::AddRequestDone( 329 void RequestCoordinatorTest::AddRequestDone(
314 RequestQueue::AddRequestResult result, 330 RequestQueue::AddRequestResult result,
315 const SavePageRequest& request) {} 331 const SavePageRequest& request) {}
316 332
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 net::NetworkChangeNotifier::CONNECTION_3G); 640 net::NetworkChangeNotifier::CONNECTION_3G);
625 base::Callback<void(bool)> callback = base::Bind( 641 base::Callback<void(bool)> callback = base::Bind(
626 &RequestCoordinatorTest::EmptyCallbackFunction, base::Unretained(this)); 642 &RequestCoordinatorTest::EmptyCallbackFunction, base::Unretained(this));
627 EXPECT_TRUE(coordinator()->StartProcessing(device_conditions, callback)); 643 EXPECT_TRUE(coordinator()->StartProcessing(device_conditions, callback));
628 644
629 // Let all the async parts of the start processing pipeline run to completion. 645 // Let all the async parts of the start processing pipeline run to completion.
630 PumpLoop(); 646 PumpLoop();
631 647
632 // Remove the request while it is processing. 648 // Remove the request while it is processing.
633 std::vector<int64_t> request_ids{kRequestId1}; 649 std::vector<int64_t> request_ids{kRequestId1};
634 coordinator()->RemoveRequests(request_ids); 650 coordinator()->RemoveRequests(
651 request_ids, base::Bind(&RequestCoordinatorTest::RemoveRequestsDone,
652 base::Unretained(this)));
635 653
636 // Let the async callbacks in the cancel run. 654 // Let the async callbacks in the cancel run.
637 PumpLoop(); 655 PumpLoop();
638 656
639 // Since offliner was started, it will have seen cancel call. 657 // Since offliner was started, it will have seen cancel call.
640 EXPECT_TRUE(OfflinerWasCanceled()); 658 EXPECT_TRUE(OfflinerWasCanceled());
641 } 659 }
642 660
643 TEST_F(RequestCoordinatorTest, WatchdogTimeout) { 661 TEST_F(RequestCoordinatorTest, WatchdogTimeout) {
644 // Build a request to use with the pre-renderer, and put it on the queue. 662 // Build a request to use with the pre-renderer, and put it on the queue.
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 observer().Clear(); 800 observer().Clear();
783 801
784 // Resume the request. 802 // Resume the request.
785 coordinator()->ResumeRequests(request_ids); 803 coordinator()->ResumeRequests(request_ids);
786 PumpLoop(); 804 PumpLoop();
787 805
788 EXPECT_TRUE(observer().changed_called()); 806 EXPECT_TRUE(observer().changed_called());
789 EXPECT_EQ(SavePageRequest::RequestState::AVAILABLE, observer().state()); 807 EXPECT_EQ(SavePageRequest::RequestState::AVAILABLE, observer().state());
790 } 808 }
791 809
792 TEST_F(RequestCoordinatorTest, ObserverdRemoveRequest) { 810 TEST_F(RequestCoordinatorTest, RemoveRequest) {
793 // Add a request to the queue. 811 // Add a request to the queue.
794 offline_pages::SavePageRequest request1(kRequestId1, kUrl1, kClientId1, 812 offline_pages::SavePageRequest request1(kRequestId1, kUrl1, kClientId1,
795 base::Time::Now(), kUserRequested); 813 base::Time::Now(), kUserRequested);
796 coordinator()->queue()->AddRequest( 814 coordinator()->queue()->AddRequest(
797 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone, 815 request1, base::Bind(&RequestCoordinatorTest::AddRequestDone,
798 base::Unretained(this))); 816 base::Unretained(this)));
799 PumpLoop(); 817 PumpLoop();
800 818
801 // Remove the request. 819 // Remove the request.
802 std::vector<int64_t> request_ids; 820 std::vector<int64_t> request_ids;
803 request_ids.push_back(kRequestId1); 821 request_ids.push_back(kRequestId1);
804 coordinator()->RemoveRequests(request_ids); 822 coordinator()->RemoveRequests(
823 request_ids, base::Bind(&RequestCoordinatorTest::RemoveRequestsDone,
824 base::Unretained(this)));
825
826 PumpLoop();
827 WaitForCallback();
805 PumpLoop(); 828 PumpLoop();
806 829
807 EXPECT_TRUE(observer().completed_called()); 830 EXPECT_TRUE(observer().completed_called());
808 EXPECT_EQ(RequestCoordinator::SavePageStatus::REMOVED, 831 EXPECT_EQ(RequestCoordinator::SavePageStatus::REMOVED,
809 observer().last_status()); 832 observer().last_status());
833 EXPECT_EQ(1UL, last_remove_results().size());
834 EXPECT_EQ(kRequestId1, std::get<0>(last_remove_results().at(0)));
810 } 835 }
811 836
812 } // namespace offline_pages 837 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_coordinator.cc ('k') | components/offline_pages/background/request_queue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698