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

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: ADD TODO 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
« no previous file with comments | « components/offline_pages/background/request_queue.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 ASSERT_TRUE(update_requests_result()); 528 ASSERT_TRUE(update_requests_result());
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
539 // is why this test calls PickNextRequest().
540 TEST_F(RequestQueueTest, CleanStaleRequests) { 538 TEST_F(RequestQueueTest, CleanStaleRequests) {
541 // Create a request that is already expired. 539 // Create a request that is already expired.
542 base::Time creation_time = 540 base::Time creation_time =
543 base::Time::Now() - base::TimeDelta::FromSeconds(2 * kOneWeekInSeconds); 541 base::Time::Now() - base::TimeDelta::FromSeconds(2 * kOneWeekInSeconds);
544 542
545 SavePageRequest original_request(kRequestId, kUrl, kClientId, creation_time, 543 SavePageRequest original_request(kRequestId, kUrl, kClientId, creation_time,
546 kUserRequested); 544 kUserRequested);
547 queue()->AddRequest( 545 queue()->AddRequest(
548 original_request, 546 original_request,
549 base::Bind(&RequestQueueTest::AddRequestDone, base::Unretained(this))); 547 base::Bind(&RequestQueueTest::AddRequestDone, base::Unretained(this)));
550 this->PumpLoop(); 548 this->PumpLoop();
551 this->ClearResults(); 549 this->ClearResults();
552 550
553 // Set up a picker factory pointing to our fake notifier. 551 // Set up a picker factory pointing to our fake notifier.
554 OfflinerPolicy policy; 552 OfflinerPolicy policy;
555 RequestNotifierStub notifier; 553 RequestNotifierStub notifier;
556 RequestCoordinatorEventLogger event_logger; 554 RequestCoordinatorEventLogger event_logger;
557 std::unique_ptr<PickRequestTaskFactory> picker_factory( 555 std::unique_ptr<CleanupTaskFactory> cleanup_factory(
558 new PickRequestTaskFactory(&policy, &notifier, &event_logger)); 556 new CleanupTaskFactory(&policy, &notifier, &event_logger));
559 queue()->SetPickerFactory(std::move(picker_factory)); 557 queue()->SetCleanupFactory(std::move(cleanup_factory));
560 558
561 // Do a pick and clean operation, which will remove stale entries. 559 // Do a pick and clean operation, which will remove stale entries.
562 DeviceConditions conditions; 560 DeviceConditions conditions;
563 std::set<int64_t> disabled_list; 561 std::set<int64_t> disabled_list;
564 queue()->PickNextRequest( 562 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 563
573 this->PumpLoop(); 564 this->PumpLoop();
574 565
575 // Notifier should have been notified that the request was removed. 566 // Notifier should have been notified that the request was removed.
576 ASSERT_EQ(notifier.last_expired_request().request_id(), kRequestId); 567 ASSERT_EQ(notifier.last_expired_request().request_id(), kRequestId);
577 ASSERT_EQ(notifier.last_request_expiration_status(), 568 ASSERT_EQ(notifier.last_request_expiration_status(),
578 RequestNotifier::BackgroundSavePageResult::EXPIRED); 569 RequestNotifier::BackgroundSavePageResult::EXPIRED);
579 570
580 // Doing a get should show no entries left in the queue since the expired 571 // Doing a get should show no entries left in the queue since the expired
581 // request has been removed. 572 // request has been removed.
582 queue()->GetRequests( 573 queue()->GetRequests(
583 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 574 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
584 this->PumpLoop(); 575 this->PumpLoop();
585 ASSERT_EQ(GetRequestsResult::SUCCESS, this->last_get_requests_result()); 576 ASSERT_EQ(GetRequestsResult::SUCCESS, this->last_get_requests_result());
586 ASSERT_TRUE(this->last_requests().empty()); 577 ASSERT_TRUE(this->last_requests().empty());
587 } 578 }
588 579
589 } // namespace offline_pages 580 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_queue.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698