| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/url_request/url_request_throttler_manager.h" | 5 #include "net/url_request/url_request_throttler_manager.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/metrics/histogram_samples.h" | 9 #include "base/metrics/histogram_samples.h" |
| 10 #include "base/metrics/statistics_recorder.h" | 10 #include "base/metrics/statistics_recorder.h" |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 | 196 |
| 197 // List of all histograms we care about in these unit tests. | 197 // List of all histograms we care about in these unit tests. |
| 198 const char* kHistogramNames[] = { | 198 const char* kHistogramNames[] = { |
| 199 "Throttling.FailureCountAtSuccess", | 199 "Throttling.FailureCountAtSuccess", |
| 200 "Throttling.PerceivedDowntime", | 200 "Throttling.PerceivedDowntime", |
| 201 "Throttling.RequestThrottled", | 201 "Throttling.RequestThrottled", |
| 202 "Throttling.SiteOptedOut", | 202 "Throttling.SiteOptedOut", |
| 203 }; | 203 }; |
| 204 | 204 |
| 205 void URLRequestThrottlerEntryTest::SetUp() { | 205 void URLRequestThrottlerEntryTest::SetUp() { |
| 206 request_.set_load_flags(0); | 206 request_.SetLoadFlags(0); |
| 207 | 207 |
| 208 now_ = TimeTicks::Now(); | 208 now_ = TimeTicks::Now(); |
| 209 entry_ = new MockURLRequestThrottlerEntry(&manager_); | 209 entry_ = new MockURLRequestThrottlerEntry(&manager_); |
| 210 entry_->ResetToBlank(now_); | 210 entry_->ResetToBlank(now_); |
| 211 | 211 |
| 212 for (size_t i = 0; i < arraysize(kHistogramNames); ++i) { | 212 for (size_t i = 0; i < arraysize(kHistogramNames); ++i) { |
| 213 // Must retrieve original samples for each histogram for comparison | 213 // Must retrieve original samples for each histogram for comparison |
| 214 // as other tests may affect them. | 214 // as other tests may affect them. |
| 215 const char* name = kHistogramNames[i]; | 215 const char* name = kHistogramNames[i]; |
| 216 HistogramBase* histogram = StatisticsRecorder::FindHistogram(name); | 216 HistogramBase* histogram = StatisticsRecorder::FindHistogram(name); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 d.set_can_throttle_requests(true); | 263 d.set_can_throttle_requests(true); |
| 264 EXPECT_TRUE(entry_->ShouldRejectRequest(request_)); | 264 EXPECT_TRUE(entry_->ShouldRejectRequest(request_)); |
| 265 } | 265 } |
| 266 | 266 |
| 267 TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) { | 267 TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) { |
| 268 entry_->set_exponential_backoff_release_time( | 268 entry_->set_exponential_backoff_release_time( |
| 269 entry_->fake_time_now_ + TimeDelta::FromMilliseconds(1)); | 269 entry_->fake_time_now_ + TimeDelta::FromMilliseconds(1)); |
| 270 EXPECT_TRUE(entry_->ShouldRejectRequest(request_)); | 270 EXPECT_TRUE(entry_->ShouldRejectRequest(request_)); |
| 271 | 271 |
| 272 // Also end-to-end test the load flags exceptions. | 272 // Also end-to-end test the load flags exceptions. |
| 273 request_.set_load_flags(LOAD_MAYBE_USER_GESTURE); | 273 request_.SetLoadFlags(LOAD_MAYBE_USER_GESTURE); |
| 274 EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); | 274 EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); |
| 275 | 275 |
| 276 CalculateHistogramDeltas(); | 276 CalculateHistogramDeltas(); |
| 277 ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(0)); | 277 ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(0)); |
| 278 ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(1)); | 278 ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(1)); |
| 279 } | 279 } |
| 280 | 280 |
| 281 TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) { | 281 TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) { |
| 282 entry_->set_exponential_backoff_release_time(entry_->fake_time_now_); | 282 entry_->set_exponential_backoff_release_time(entry_->fake_time_now_); |
| 283 EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); | 283 EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 ASSERT_FALSE(MockURLRequestThrottlerEntry::ExplicitUserRequest( | 400 ASSERT_FALSE(MockURLRequestThrottlerEntry::ExplicitUserRequest( |
| 401 ~LOAD_MAYBE_USER_GESTURE)); | 401 ~LOAD_MAYBE_USER_GESTURE)); |
| 402 } | 402 } |
| 403 | 403 |
| 404 class URLRequestThrottlerManagerTest : public testing::Test { | 404 class URLRequestThrottlerManagerTest : public testing::Test { |
| 405 protected: | 405 protected: |
| 406 URLRequestThrottlerManagerTest() | 406 URLRequestThrottlerManagerTest() |
| 407 : request_(GURL(), DEFAULT_PRIORITY, NULL, &context_) {} | 407 : request_(GURL(), DEFAULT_PRIORITY, NULL, &context_) {} |
| 408 | 408 |
| 409 virtual void SetUp() { | 409 virtual void SetUp() { |
| 410 request_.set_load_flags(0); | 410 request_.SetLoadFlags(0); |
| 411 } | 411 } |
| 412 | 412 |
| 413 // context_ must be declared before request_. | 413 // context_ must be declared before request_. |
| 414 TestURLRequestContext context_; | 414 TestURLRequestContext context_; |
| 415 TestURLRequest request_; | 415 TestURLRequest request_; |
| 416 }; | 416 }; |
| 417 | 417 |
| 418 TEST_F(URLRequestThrottlerManagerTest, IsUrlStandardised) { | 418 TEST_F(URLRequestThrottlerManagerTest, IsUrlStandardised) { |
| 419 MockURLRequestThrottlerManager manager; | 419 MockURLRequestThrottlerManager manager; |
| 420 GurlAndString test_values[] = { | 420 GurlAndString test_values[] = { |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 FAIL(); | 569 FAIL(); |
| 570 } | 570 } |
| 571 | 571 |
| 572 scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_after = | 572 scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_after = |
| 573 manager.RegisterRequestUrl(GURL("http://www.example.com/")); | 573 manager.RegisterRequestUrl(GURL("http://www.example.com/")); |
| 574 EXPECT_FALSE(entry_after->ShouldRejectRequest(request_)); | 574 EXPECT_FALSE(entry_after->ShouldRejectRequest(request_)); |
| 575 } | 575 } |
| 576 } | 576 } |
| 577 | 577 |
| 578 } // namespace net | 578 } // namespace net |
| OLD | NEW |