Index: net/url_request/url_request_throttler_unittest.cc |
diff --git a/net/url_request/url_request_throttler_unittest.cc b/net/url_request/url_request_throttler_unittest.cc |
index 8e9734f3cd037498d99ff3415f1b993892e32ec6..4c8f49276de7cac52e30d39c17f5e3fbb484c22e 100644 |
--- a/net/url_request/url_request_throttler_unittest.cc |
+++ b/net/url_request/url_request_throttler_unittest.cc |
@@ -10,6 +10,7 @@ |
#include "base/stringprintf.h" |
#include "base/string_number_conversions.h" |
#include "base/time.h" |
+#include "net/base/load_flags.h" |
#include "net/base/test_completion_callback.h" |
#include "net/url_request/url_request_context.h" |
#include "net/url_request/url_request_throttler_header_interface.h" |
@@ -67,6 +68,10 @@ class MockURLRequestThrottlerEntry : public URLRequestThrottlerEntry { |
return &mock_backoff_entry_; |
} |
+ static bool ExplicitUserRequest(int load_flags) { |
+ return URLRequestThrottlerEntry::ExplicitUserRequest(load_flags); |
+ } |
+ |
void ResetToBlank(const TimeTicks& time_now) { |
fake_time_now_ = time_now; |
mock_backoff_entry_.set_fake_now(time_now); |
@@ -229,19 +234,22 @@ std::ostream& operator<<(std::ostream& out, const base::TimeTicks& time) { |
TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) { |
entry_->set_exponential_backoff_release_time( |
entry_->fake_time_now_ + TimeDelta::FromMilliseconds(1)); |
- EXPECT_TRUE(entry_->IsDuringExponentialBackoff()); |
+ EXPECT_TRUE(entry_->ShouldRejectRequest(0)); |
+ |
+ // Also end-to-end test the load flags exceptions. |
+ EXPECT_FALSE(entry_->ShouldRejectRequest(LOAD_MAYBE_USER_GESTURE)); |
CalculateHistogramDeltas(); |
- ASSERT_EQ(0, samples_["Throttling.RequestThrottled"].counts(0)); |
+ ASSERT_EQ(1, samples_["Throttling.RequestThrottled"].counts(0)); |
ASSERT_EQ(1, samples_["Throttling.RequestThrottled"].counts(1)); |
} |
TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) { |
entry_->set_exponential_backoff_release_time(entry_->fake_time_now_); |
- EXPECT_FALSE(entry_->IsDuringExponentialBackoff()); |
+ EXPECT_FALSE(entry_->ShouldRejectRequest(0)); |
entry_->set_exponential_backoff_release_time( |
entry_->fake_time_now_ - TimeDelta::FromMilliseconds(1)); |
- EXPECT_FALSE(entry_->IsDuringExponentialBackoff()); |
+ EXPECT_FALSE(entry_->ShouldRejectRequest(0)); |
CalculateHistogramDeltas(); |
ASSERT_EQ(2, samples_["Throttling.RequestThrottled"].counts(0)); |
@@ -377,6 +385,14 @@ TEST_F(URLRequestThrottlerEntryTest, SlidingWindow) { |
EXPECT_EQ(time_4, entry_->sliding_window_release_time()); |
} |
+TEST_F(URLRequestThrottlerEntryTest, ExplicitUserRequest) { |
+ ASSERT_FALSE(MockURLRequestThrottlerEntry::ExplicitUserRequest(0)); |
+ ASSERT_TRUE(MockURLRequestThrottlerEntry::ExplicitUserRequest( |
+ LOAD_MAYBE_USER_GESTURE)); |
+ ASSERT_FALSE(MockURLRequestThrottlerEntry::ExplicitUserRequest( |
+ ~LOAD_MAYBE_USER_GESTURE)); |
+} |
+ |
TEST(URLRequestThrottlerManager, IsUrlStandardised) { |
MockURLRequestThrottlerManager manager; |
GurlAndString test_values[] = { |
@@ -444,13 +460,13 @@ TEST(URLRequestThrottlerManager, IsHostBeingRegistered) { |
void ExpectEntryAllowsAllOnErrorIfOptedOut( |
net::URLRequestThrottlerEntryInterface* entry, |
bool opted_out) { |
- EXPECT_FALSE(entry->IsDuringExponentialBackoff()); |
+ EXPECT_FALSE(entry->ShouldRejectRequest(0)); |
MockURLRequestThrottlerHeaderAdapter failure_adapter(503); |
for (int i = 0; i < 10; ++i) { |
// Host doesn't really matter in this scenario so we skip it. |
entry->UpdateWithResponse("", &failure_adapter); |
} |
- EXPECT_NE(opted_out, entry->IsDuringExponentialBackoff()); |
+ EXPECT_NE(opted_out, entry->ShouldRejectRequest(0)); |
if (opted_out) { |
// We're not mocking out GetTimeNow() in this scenario |
@@ -510,7 +526,7 @@ TEST(URLRequestThrottlerManager, ClearOnNetworkChange) { |
// Host doesn't really matter in this scenario so we skip it. |
entry_before->UpdateWithResponse("", &failure_adapter); |
} |
- EXPECT_TRUE(entry_before->IsDuringExponentialBackoff()); |
+ EXPECT_TRUE(entry_before->ShouldRejectRequest(0)); |
switch (i) { |
case 0: |
@@ -528,7 +544,7 @@ TEST(URLRequestThrottlerManager, ClearOnNetworkChange) { |
scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_after = |
manager.RegisterRequestUrl(GURL("http://www.example.com/")); |
- EXPECT_FALSE(entry_after->IsDuringExponentialBackoff()); |
+ EXPECT_FALSE(entry_after->ShouldRejectRequest(0)); |
} |
} |