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

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

Issue 2543093002: Split the RequestPicker task into two separate tasks. (Closed)
Patch Set: Created 4 years 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 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 EXPECT_EQ(1UL, update_requests_result()->item_statuses.size()); 529 EXPECT_EQ(1UL, update_requests_result()->item_statuses.size());
530 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first); 530 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first);
531 EXPECT_EQ(ItemActionStatus::SUCCESS, 531 EXPECT_EQ(ItemActionStatus::SUCCESS,
532 update_requests_result()->item_statuses.at(0).second); 532 update_requests_result()->item_statuses.at(0).second);
533 EXPECT_EQ(1UL, update_requests_result()->updated_items.size()); 533 EXPECT_EQ(1UL, update_requests_result()->updated_items.size());
534 EXPECT_EQ(SavePageRequest::RequestState::AVAILABLE, 534 EXPECT_EQ(SavePageRequest::RequestState::AVAILABLE,
535 update_requests_result()->updated_items.at(0).request_state()); 535 update_requests_result()->updated_items.at(0).request_state());
536 } 536 }
537 537
538 // Request expiration is detected during the call to pick a request, which 538 // Request expiration is detected during the call to pick a request, which
539 // is why this test calls PickNextRequest(). 539 // is why this test calls PickNextRequest().
fgorski 2016/12/02 21:44:05 fix
Pete Williamson 2016/12/05 20:39:46 Done.
540 TEST_F(RequestQueueTest, CleanStaleRequests) { 540 TEST_F(RequestQueueTest, CleanStaleRequests) {
541 // Create a request that is already expired. 541 // Create a request that is already expired.
542 base::Time creation_time = 542 base::Time creation_time =
543 base::Time::Now() - base::TimeDelta::FromSeconds(2 * kOneWeekInSeconds); 543 base::Time::Now() - base::TimeDelta::FromSeconds(2 * kOneWeekInSeconds);
544 544
545 SavePageRequest original_request(kRequestId, kUrl, kClientId, creation_time, 545 SavePageRequest original_request(kRequestId, kUrl, kClientId, creation_time,
546 kUserRequested); 546 kUserRequested);
547 queue()->AddRequest( 547 queue()->AddRequest(
548 original_request, 548 original_request,
549 base::Bind(&RequestQueueTest::AddRequestDone, base::Unretained(this))); 549 base::Bind(&RequestQueueTest::AddRequestDone, base::Unretained(this)));
550 this->PumpLoop(); 550 this->PumpLoop();
551 this->ClearResults(); 551 this->ClearResults();
552 552
553 // Set up a picker factory pointing to our fake notifier. 553 // Set up a picker factory pointing to our fake notifier.
554 OfflinerPolicy policy; 554 OfflinerPolicy policy;
555 RequestNotifierStub notifier; 555 RequestNotifierStub notifier;
556 RequestCoordinatorEventLogger event_logger; 556 RequestCoordinatorEventLogger event_logger;
557 std::unique_ptr<PickRequestTaskFactory> picker_factory( 557 std::unique_ptr<CleanupTaskFactory> cleanup_factory(
558 new PickRequestTaskFactory(&policy, &notifier, &event_logger)); 558 new CleanupTaskFactory(&policy, &notifier, &event_logger));
559 queue()->SetPickerFactory(std::move(picker_factory)); 559 queue()->SetCleanupFactory(std::move(cleanup_factory));
560 560
561 // Do a pick and clean operation, which will remove stale entries. 561 // Do a pick and clean operation, which will remove stale entries.
562 DeviceConditions conditions; 562 DeviceConditions conditions;
563 std::set<int64_t> disabled_list; 563 std::set<int64_t> disabled_list;
564 queue()->PickNextRequest( 564 queue()->CleanupRequestQueue();
565 base::Bind(&RequestQueueTest::RequestPickedCallback,
566 base::Unretained(this)),
567 base::Bind(&RequestQueueTest::RequestNotPickedCallback,
568 base::Unretained(this)),
569 base::Bind(&RequestQueueTest::RequestCountCallback,
570 base::Unretained(this)),
571 conditions, disabled_list);
572 565
573 this->PumpLoop(); 566 this->PumpLoop();
574 567
575 // Notifier should have been notified that the request was removed. 568 // Notifier should have been notified that the request was removed.
576 ASSERT_EQ(notifier.last_expired_request().request_id(), kRequestId); 569 ASSERT_EQ(notifier.last_expired_request().request_id(), kRequestId);
577 ASSERT_EQ(notifier.last_request_expiration_status(), 570 ASSERT_EQ(notifier.last_request_expiration_status(),
578 RequestNotifier::BackgroundSavePageResult::EXPIRED); 571 RequestNotifier::BackgroundSavePageResult::EXPIRED);
579 572
580 // Doing a get should show no entries left in the queue since the expired 573 // Doing a get should show no entries left in the queue since the expired
581 // request has been removed. 574 // request has been removed.
582 queue()->GetRequests( 575 queue()->GetRequests(
583 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 576 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
584 this->PumpLoop(); 577 this->PumpLoop();
585 ASSERT_EQ(GetRequestsResult::SUCCESS, this->last_get_requests_result()); 578 ASSERT_EQ(GetRequestsResult::SUCCESS, this->last_get_requests_result());
586 ASSERT_TRUE(this->last_requests().empty()); 579 ASSERT_TRUE(this->last_requests().empty());
587 } 580 }
588 581
589 } // namespace offline_pages 582 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698