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

Unified Diff: components/offline_pages/background/request_picker_unittest.cc

Issue 2218403002: Change database scheme - add state and start tracking (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Stop clearing last request time 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 side-by-side diff with in-line comments
Download patch
Index: components/offline_pages/background/request_picker_unittest.cc
diff --git a/components/offline_pages/background/request_picker_unittest.cc b/components/offline_pages/background/request_picker_unittest.cc
index 633c1eb907d9f9b46de53302e24ac759ca2278ab..cd74c70db4cc43d4e52c7f8a5e2219bf6e7c12d2 100644
--- a/components/offline_pages/background/request_picker_unittest.cc
+++ b/components/offline_pages/background/request_picker_unittest.cc
@@ -29,6 +29,8 @@ const ClientId kClientId2("bookmark", "5678");
const bool kUserRequested = true;
const int kAttemptCount = 1;
const int kTwoWeeksInSeconds = 60 * 60 * 24 * 7 * 2;
+const int kMaxStartedTries = 5;
+const int kMaxCompletedTries = 1;
// Constants for policy values - These settings represent the default values.
const bool kPreferUntried = false;
@@ -142,12 +144,17 @@ TEST_F(RequestPickerTest, PickFromEmptyQueue) {
}
TEST_F(RequestPickerTest, ChooseRequestWithHigherRetryCount) {
+ policy_.reset(new OfflinerPolicy(kPreferUntried, kPreferEarlier,
+ kPreferRetryCount, kMaxStartedTries,
+ kMaxCompletedTries + 1));
+ picker_.reset(new RequestPicker(queue_.get(), policy_.get()));
+
base::Time creation_time = base::Time::Now();
SavePageRequest request1(
kRequestId1, kUrl1, kClientId1, creation_time, kUserRequested);
SavePageRequest request2(
kRequestId2, kUrl2, kClientId2, creation_time, kUserRequested);
- request2.set_attempt_count(kAttemptCount);
+ request2.set_completed_attempt_count(kAttemptCount);
QueueRequestsAndChooseOne(request1, request2);
@@ -172,8 +179,9 @@ TEST_F(RequestPickerTest, ChooseRequestWithSameRetryCountButEarlier) {
TEST_F(RequestPickerTest, ChooseEarlierRequest) {
// We need a custom policy object prefering recency to retry count.
- policy_.reset(
- new OfflinerPolicy(kPreferUntried, kPreferEarlier, !kPreferRetryCount));
+ policy_.reset(new OfflinerPolicy(kPreferUntried, kPreferEarlier,
+ !kPreferRetryCount, kMaxStartedTries,
+ kMaxCompletedTries));
picker_.reset(new RequestPicker(queue_.get(), policy_.get()));
base::Time creation_time1 =
@@ -183,7 +191,7 @@ TEST_F(RequestPickerTest, ChooseEarlierRequest) {
kUserRequested);
SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time2,
kUserRequested);
- request2.set_attempt_count(kAttemptCount);
+ request2.set_completed_attempt_count(kAttemptCount);
QueueRequestsAndChooseOne(request1, request2);
@@ -193,8 +201,9 @@ TEST_F(RequestPickerTest, ChooseEarlierRequest) {
TEST_F(RequestPickerTest, ChooseSameTimeRequestWithHigherRetryCount) {
// We need a custom policy object preferring recency to retry count.
- policy_.reset(
- new OfflinerPolicy(kPreferUntried, kPreferEarlier, !kPreferRetryCount));
+ policy_.reset(new OfflinerPolicy(kPreferUntried, kPreferEarlier,
+ !kPreferRetryCount, kMaxStartedTries,
+ kMaxCompletedTries + 1));
picker_.reset(new RequestPicker(queue_.get(), policy_.get()));
base::Time creation_time = base::Time::Now();
@@ -202,7 +211,7 @@ TEST_F(RequestPickerTest, ChooseSameTimeRequestWithHigherRetryCount) {
kUserRequested);
SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
kUserRequested);
- request2.set_attempt_count(kAttemptCount);
+ request2.set_completed_attempt_count(kAttemptCount);
QueueRequestsAndChooseOne(request1, request2);
@@ -212,8 +221,9 @@ TEST_F(RequestPickerTest, ChooseSameTimeRequestWithHigherRetryCount) {
TEST_F(RequestPickerTest, ChooseRequestWithLowerRetryCount) {
// We need a custom policy object preferring lower retry count.
- policy_.reset(
- new OfflinerPolicy(!kPreferUntried, kPreferEarlier, kPreferRetryCount));
+ policy_.reset(new OfflinerPolicy(!kPreferUntried, kPreferEarlier,
+ kPreferRetryCount, kMaxStartedTries,
+ kMaxCompletedTries + 1));
picker_.reset(new RequestPicker(queue_.get(), policy_.get()));
base::Time creation_time = base::Time::Now();
@@ -221,7 +231,7 @@ TEST_F(RequestPickerTest, ChooseRequestWithLowerRetryCount) {
kUserRequested);
SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
kUserRequested);
- request2.set_attempt_count(kAttemptCount);
+ request2.set_completed_attempt_count(kAttemptCount);
QueueRequestsAndChooseOne(request1, request2);
@@ -231,8 +241,9 @@ TEST_F(RequestPickerTest, ChooseRequestWithLowerRetryCount) {
TEST_F(RequestPickerTest, ChooseLaterRequest) {
// We need a custom policy preferring recency over retry, and later requests.
- policy_.reset(
- new OfflinerPolicy(kPreferUntried, !kPreferEarlier, !kPreferRetryCount));
+ policy_.reset(new OfflinerPolicy(kPreferUntried, !kPreferEarlier,
+ !kPreferRetryCount, kMaxStartedTries,
+ kMaxCompletedTries));
picker_.reset(new RequestPicker(queue_.get(), policy_.get()));
base::Time creation_time1 =
@@ -264,4 +275,41 @@ TEST_F(RequestPickerTest, ChooseUnexpiredRequest) {
EXPECT_FALSE(request_queue_empty_called_);
}
+TEST_F(RequestPickerTest, ChooseRequestThatHasNotExceededStartLimit) {
+ base::Time creation_time1 =
+ base::Time::Now() - base::TimeDelta::FromSeconds(1);
+ base::Time creation_time2 = base::Time::Now();
+ SavePageRequest request1(kRequestId1, kUrl1, kClientId1, creation_time1,
+ kUserRequested);
+ SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time2,
+ kUserRequested);
+
+ // With default policy settings, we should choose the earlier request.
+ // However, we will make the earlier reqeust exceed the limit.
+ request1.set_started_attempt_count(policy_->GetMaxStartedTries());
+
+ QueueRequestsAndChooseOne(request1, request2);
+
+ EXPECT_EQ(kRequestId2, last_picked_->request_id());
+ EXPECT_FALSE(request_queue_empty_called_);
+}
+
+TEST_F(RequestPickerTest, ChooseRequestThatHasNotExceededCompletionLimit) {
+ base::Time creation_time1 =
+ base::Time::Now() - base::TimeDelta::FromSeconds(1);
+ base::Time creation_time2 = base::Time::Now();
+ SavePageRequest request1(kRequestId1, kUrl1, kClientId1, creation_time1,
+ kUserRequested);
+ SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time2,
+ kUserRequested);
+
+ // With default policy settings, we should choose the earlier request.
+ // However, we will make the earlier reqeust exceed the limit.
+ request1.set_completed_attempt_count(policy_->GetMaxCompletedTries());
+
+ QueueRequestsAndChooseOne(request1, request2);
+
+ EXPECT_EQ(kRequestId2, last_picked_->request_id());
+ EXPECT_FALSE(request_queue_empty_called_);
+}
} // namespace offline_pages

Powered by Google App Engine
This is Rietveld 408576698