Chromium Code Reviews| 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 3104a6048dadb50f540206e32e5386f82b591304..1d26468ee06d948ff21b667af54bd3835c0f6ab8 100644 |
| --- a/net/url_request/url_request_throttler_unittest.cc |
| +++ b/net/url_request/url_request_throttler_unittest.cc |
| @@ -18,7 +18,6 @@ |
| #include "net/url_request/url_request.h" |
| #include "net/url_request/url_request_context.h" |
| #include "net/url_request/url_request_test_util.h" |
| -#include "net/url_request/url_request_throttler_header_interface.h" |
| #include "net/url_request/url_request_throttler_test_support.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -235,30 +234,26 @@ TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) { |
| } |
| TEST_F(URLRequestThrottlerEntryTest, InterfaceUpdateFailure) { |
| - MockURLRequestThrottlerHeaderAdapter failure_response(503); |
| - entry_->UpdateWithResponse(std::string(), &failure_response); |
| + entry_->UpdateWithResponse(503); |
| EXPECT_GT(entry_->GetExponentialBackoffReleaseTime(), |
| entry_->ImplGetTimeNow()) |
| << "A failure should increase the release_time"; |
| } |
| TEST_F(URLRequestThrottlerEntryTest, InterfaceUpdateSuccess) { |
| - MockURLRequestThrottlerHeaderAdapter success_response(200); |
| - entry_->UpdateWithResponse(std::string(), &success_response); |
| + entry_->UpdateWithResponse(200); |
| EXPECT_EQ(entry_->GetExponentialBackoffReleaseTime(), |
| entry_->ImplGetTimeNow()) |
| << "A success should not add any delay"; |
| } |
| TEST_F(URLRequestThrottlerEntryTest, InterfaceUpdateSuccessThenFailure) { |
| - MockURLRequestThrottlerHeaderAdapter failure_response(503); |
| - MockURLRequestThrottlerHeaderAdapter success_response(200); |
| - entry_->UpdateWithResponse(std::string(), &success_response); |
| - entry_->UpdateWithResponse(std::string(), &failure_response); |
| + entry_->UpdateWithResponse(200); |
| + entry_->UpdateWithResponse(503); |
| EXPECT_GT(entry_->GetExponentialBackoffReleaseTime(), |
| entry_->ImplGetTimeNow()) |
| << "This scenario should add delay"; |
| - entry_->UpdateWithResponse(std::string(), &success_response); |
| + entry_->UpdateWithResponse(200); |
| } |
| TEST_F(URLRequestThrottlerEntryTest, IsEntryReallyOutdated) { |
| @@ -283,8 +278,7 @@ TEST_F(URLRequestThrottlerEntryTest, IsEntryReallyOutdated) { |
| TEST_F(URLRequestThrottlerEntryTest, MaxAllowedBackoff) { |
| for (int i = 0; i < 30; ++i) { |
| - MockURLRequestThrottlerHeaderAdapter response_adapter(503); |
| - entry_->UpdateWithResponse(std::string(), &response_adapter); |
| + entry_->UpdateWithResponse(503); |
| } |
| TimeDelta delay = entry_->GetExponentialBackoffReleaseTime() - now_; |
| @@ -293,9 +287,8 @@ TEST_F(URLRequestThrottlerEntryTest, MaxAllowedBackoff) { |
| } |
| TEST_F(URLRequestThrottlerEntryTest, MalformedContent) { |
| - MockURLRequestThrottlerHeaderAdapter response_adapter(503); |
| for (int i = 0; i < 5; ++i) |
| - entry_->UpdateWithResponse(std::string(), &response_adapter); |
| + entry_->UpdateWithResponse(503); |
| TimeTicks release_after_failures = entry_->GetExponentialBackoffReleaseTime(); |
| @@ -305,8 +298,7 @@ TEST_F(URLRequestThrottlerEntryTest, MalformedContent) { |
| // is what happens in practice (if a body is received, then a non-500 |
| // response must also have been received). |
| entry_->ReceivedContentWasMalformed(200); |
| - MockURLRequestThrottlerHeaderAdapter success_adapter(200); |
| - entry_->UpdateWithResponse(std::string(), &success_adapter); |
| + entry_->UpdateWithResponse(200); |
| EXPECT_GT(entry_->GetExponentialBackoffReleaseTime(), release_after_failures); |
| } |
| @@ -361,10 +353,9 @@ class URLRequestThrottlerManagerTest : public testing::Test { |
| const URLRequest& request) { |
| EXPECT_FALSE(entry->ShouldRejectRequest(request, |
| context_.network_delegate())); |
| - 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(std::string(), &failure_adapter); |
| + entry->UpdateWithResponse(503); |
| } |
| EXPECT_NE(opted_out, entry->ShouldRejectRequest( |
| request, context_.network_delegate())); |
| @@ -452,40 +443,26 @@ TEST_F(URLRequestThrottlerManagerTest, IsHostBeingRegistered) { |
| EXPECT_EQ(3, manager.GetNumberOfEntries()); |
| } |
| -TEST_F(URLRequestThrottlerManagerTest, OptOutHeader) { |
| +TEST_F(URLRequestThrottlerManagerTest, LocalHostOptedOut) { |
| MockURLRequestThrottlerManager manager; |
| - scoped_refptr<URLRequestThrottlerEntryInterface> entry = |
| - manager.RegisterRequestUrl(GURL("http://www.google.com/yodude")); |
| - |
| - // Fake a response with the opt-out header. |
| - MockURLRequestThrottlerHeaderAdapter response_adapter( |
| - std::string(), |
| - MockURLRequestThrottlerEntry::kExponentialThrottlingDisableValue, |
| - 200); |
| - entry->UpdateWithResponse("www.google.com", &response_adapter); |
| - |
| - // Ensure that the same entry on error always allows everything. |
| - ExpectEntryAllowsAllOnErrorIfOptedOut(entry.get(), true, *request_); |
| - |
| - // Ensure that a freshly created entry (for a different URL on an |
| - // already opted-out host) also gets "always allow" behavior. |
| - scoped_refptr<URLRequestThrottlerEntryInterface> other_entry = |
| - manager.RegisterRequestUrl(GURL("http://www.google.com/bingobob")); |
| - ExpectEntryAllowsAllOnErrorIfOptedOut(other_entry.get(), true, *request_); |
| - |
| - // Fake a response with the opt-out header incorrectly specified. |
| - scoped_refptr<URLRequestThrottlerEntryInterface> no_opt_out_entry = |
| - manager.RegisterRequestUrl(GURL("http://www.nike.com/justdoit")); |
| - MockURLRequestThrottlerHeaderAdapter wrong_adapter( |
| - std::string(), "yesplease", 200); |
| - no_opt_out_entry->UpdateWithResponse("www.nike.com", &wrong_adapter); |
| - ExpectEntryAllowsAllOnErrorIfOptedOut( |
| - no_opt_out_entry.get(), false, *request_); |
| - |
| // A localhost entry should always be opted out. |
| scoped_refptr<URLRequestThrottlerEntryInterface> localhost_entry = |
| manager.RegisterRequestUrl(GURL("http://localhost/hello")); |
| - ExpectEntryAllowsAllOnErrorIfOptedOut(localhost_entry.get(), true, *request_); |
| + EXPECT_FALSE(localhost_entry->ShouldRejectRequest( |
| + (*request_), context_.network_delegate())); |
| + for (int i = 0; i < 10; ++i) { |
| + // Host doesn't really matter in this scenario so we skip it. |
|
mmenke
2015/05/19 20:31:24
Obsolete comment.
xunjieli
2015/05/19 20:54:16
Done.
|
| + localhost_entry->UpdateWithResponse(503); |
| + } |
| + EXPECT_FALSE(localhost_entry->ShouldRejectRequest( |
| + (*request_), context_.network_delegate())); |
| + |
| + // We're not mocking out GetTimeNow() in this scenario |
| + // so add a 100 ms buffer to avoid flakiness (that should always |
| + // give enough time to get from the TimeTicks::Now() call here |
| + // to the TimeTicks::Now() call in the entry class). |
| + EXPECT_GT(TimeTicks::Now() + TimeDelta::FromMilliseconds(100), |
| + localhost_entry->GetExponentialBackoffReleaseTime()); |
| } |
| TEST_F(URLRequestThrottlerManagerTest, ClearOnNetworkChange) { |
| @@ -493,10 +470,9 @@ TEST_F(URLRequestThrottlerManagerTest, ClearOnNetworkChange) { |
| MockURLRequestThrottlerManager manager; |
| scoped_refptr<URLRequestThrottlerEntryInterface> entry_before = |
| manager.RegisterRequestUrl(GURL("http://www.example.com/")); |
| - MockURLRequestThrottlerHeaderAdapter failure_adapter(503); |
| for (int j = 0; j < 10; ++j) { |
| // Host doesn't really matter in this scenario so we skip it. |
|
mmenke
2015/05/19 20:31:24
Obsolete comment.
xunjieli
2015/05/19 20:54:16
Done.
|
| - entry_before->UpdateWithResponse(std::string(), &failure_adapter); |
| + entry_before->UpdateWithResponse(503); |
| } |
| EXPECT_TRUE(entry_before->ShouldRejectRequest(*request_, |
| context_.network_delegate())); |