#include "components/offline_pages/core/background/pick_request_task.h"
#include <memory>
#include <set>
#include <vector>
#include "base/containers/circular_deque.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/time/time.h"
#include "components/offline_pages/core/background/device_conditions.h"
#include "components/offline_pages/core/background/offliner_policy.h"
#include "components/offline_pages/core/background/request_coordinator.h"
#include "components/offline_pages/core/background/request_coordinator_event_logger.h"
#include "components/offline_pages/core/background/request_notifier.h"
#include "components/offline_pages/core/background/request_queue_store.h"
#include "components/offline_pages/core/background/request_queue_task_test_base.h"
#include "components/offline_pages/core/background/save_page_request.h"
#include "components/offline_pages/core/background/test_request_queue_store.h"
#include "components/offline_pages/core/offline_clock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace offline_pages {
namespace {
const int64_t kRequestId1 = …;
const ClientId kClientId1("bookmark", "1234");
const int64_t kRequestId2 = …;
const ClientId kClientId2("bookmark", "5678");
const bool kUserRequested = …;
const int kAttemptCount = …;
const int kMaxStartedTries = …;
const int kMaxCompletedTries = …;
const bool kPreferUntried = …;
const bool kPreferEarlier = …;
const bool kPreferRetryCount = …;
const int kBackgroundProcessingTimeBudgetSeconds = …;
SavePageRequest EmptyRequest() { … }
class RequestNotifierStub : public RequestNotifier { … };
class PickRequestTaskTest : public RequestQueueTaskTestBase { … };
void PickRequestTaskTest::SetUp() { … }
void PickRequestTaskTest::RequestPicked(
const SavePageRequest& request,
std::unique_ptr<std::vector<SavePageRequest>> available_requests,
const bool cleanup_needed) { … }
void PickRequestTaskTest::RequestNotPicked(
const bool non_user_requested_tasks_remaining,
const bool cleanup_needed,
base::Time available_time) { … }
void PickRequestTaskTest::QueueRequests(const SavePageRequest& request1,
const SavePageRequest& request2) { … }
void PickRequestTaskTest::MakePickRequestTask() { … }
TEST_F(PickRequestTaskTest, PickFromEmptyQueue) { … }
TEST_F(PickRequestTaskTest, ChooseRequestWithHigherRetryCount) { … }
TEST_F(PickRequestTaskTest, ChooseRequestWithSameRetryCountButEarlier) { … }
TEST_F(PickRequestTaskTest, ChooseEarlierRequest) { … }
TEST_F(PickRequestTaskTest, ChooseSameTimeRequestWithHigherRetryCount) { … }
TEST_F(PickRequestTaskTest, ChooseRequestWithLowerRetryCount) { … }
TEST_F(PickRequestTaskTest, ChooseLaterRequest) { … }
TEST_F(PickRequestTaskTest, ChooseNonExpiredRequest) { … }
TEST_F(PickRequestTaskTest, ChooseRequestThatHasNotExceededStartLimit) { … }
TEST_F(PickRequestTaskTest, ChooseRequestThatHasNotExceededCompletionLimit) { … }
TEST_F(PickRequestTaskTest, ChooseRequestThatIsNotDisabled) { … }
TEST_F(PickRequestTaskTest, ChoosePrioritizedRequests) { … }
TEST_F(PickRequestTaskTest, ChooseFromTwoPrioritizedRequests) { … }
}
}