| 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 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 manager.RegisterRequestUrl(GURL("http://www.google.com/yodude")); | 499 manager.RegisterRequestUrl(GURL("http://www.google.com/yodude")); |
| 500 | 500 |
| 501 // Fake a response with the opt-out header. | 501 // Fake a response with the opt-out header. |
| 502 MockURLRequestThrottlerHeaderAdapter response_adapter( | 502 MockURLRequestThrottlerHeaderAdapter response_adapter( |
| 503 std::string(), | 503 std::string(), |
| 504 MockURLRequestThrottlerEntry::kExponentialThrottlingDisableValue, | 504 MockURLRequestThrottlerEntry::kExponentialThrottlingDisableValue, |
| 505 200); | 505 200); |
| 506 entry->UpdateWithResponse("www.google.com", &response_adapter); | 506 entry->UpdateWithResponse("www.google.com", &response_adapter); |
| 507 | 507 |
| 508 // Ensure that the same entry on error always allows everything. | 508 // Ensure that the same entry on error always allows everything. |
| 509 ExpectEntryAllowsAllOnErrorIfOptedOut(entry, true, request_); | 509 ExpectEntryAllowsAllOnErrorIfOptedOut(entry.get(), true, request_); |
| 510 | 510 |
| 511 // Ensure that a freshly created entry (for a different URL on an | 511 // Ensure that a freshly created entry (for a different URL on an |
| 512 // already opted-out host) also gets "always allow" behavior. | 512 // already opted-out host) also gets "always allow" behavior. |
| 513 scoped_refptr<net::URLRequestThrottlerEntryInterface> other_entry = | 513 scoped_refptr<net::URLRequestThrottlerEntryInterface> other_entry = |
| 514 manager.RegisterRequestUrl(GURL("http://www.google.com/bingobob")); | 514 manager.RegisterRequestUrl(GURL("http://www.google.com/bingobob")); |
| 515 ExpectEntryAllowsAllOnErrorIfOptedOut(other_entry, true, request_); | 515 ExpectEntryAllowsAllOnErrorIfOptedOut(other_entry.get(), true, request_); |
| 516 | 516 |
| 517 // Fake a response with the opt-out header incorrectly specified. | 517 // Fake a response with the opt-out header incorrectly specified. |
| 518 scoped_refptr<net::URLRequestThrottlerEntryInterface> no_opt_out_entry = | 518 scoped_refptr<net::URLRequestThrottlerEntryInterface> no_opt_out_entry = |
| 519 manager.RegisterRequestUrl(GURL("http://www.nike.com/justdoit")); | 519 manager.RegisterRequestUrl(GURL("http://www.nike.com/justdoit")); |
| 520 MockURLRequestThrottlerHeaderAdapter wrong_adapter( | 520 MockURLRequestThrottlerHeaderAdapter wrong_adapter( |
| 521 std::string(), "yesplease", 200); | 521 std::string(), "yesplease", 200); |
| 522 no_opt_out_entry->UpdateWithResponse("www.nike.com", &wrong_adapter); | 522 no_opt_out_entry->UpdateWithResponse("www.nike.com", &wrong_adapter); |
| 523 ExpectEntryAllowsAllOnErrorIfOptedOut(no_opt_out_entry, false, request_); | 523 ExpectEntryAllowsAllOnErrorIfOptedOut( |
| 524 no_opt_out_entry.get(), false, request_); |
| 524 | 525 |
| 525 // A localhost entry should always be opted out. | 526 // A localhost entry should always be opted out. |
| 526 scoped_refptr<net::URLRequestThrottlerEntryInterface> localhost_entry = | 527 scoped_refptr<net::URLRequestThrottlerEntryInterface> localhost_entry = |
| 527 manager.RegisterRequestUrl(GURL("http://localhost/hello")); | 528 manager.RegisterRequestUrl(GURL("http://localhost/hello")); |
| 528 ExpectEntryAllowsAllOnErrorIfOptedOut(localhost_entry, true, request_); | 529 ExpectEntryAllowsAllOnErrorIfOptedOut(localhost_entry.get(), true, request_); |
| 529 } | 530 } |
| 530 | 531 |
| 531 TEST_F(URLRequestThrottlerManagerTest, ClearOnNetworkChange) { | 532 TEST_F(URLRequestThrottlerManagerTest, ClearOnNetworkChange) { |
| 532 for (int i = 0; i < 3; ++i) { | 533 for (int i = 0; i < 3; ++i) { |
| 533 MockURLRequestThrottlerManager manager; | 534 MockURLRequestThrottlerManager manager; |
| 534 scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_before = | 535 scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_before = |
| 535 manager.RegisterRequestUrl(GURL("http://www.example.com/")); | 536 manager.RegisterRequestUrl(GURL("http://www.example.com/")); |
| 536 MockURLRequestThrottlerHeaderAdapter failure_adapter(503); | 537 MockURLRequestThrottlerHeaderAdapter failure_adapter(503); |
| 537 for (int j = 0; j < 10; ++j) { | 538 for (int j = 0; j < 10; ++j) { |
| 538 // Host doesn't really matter in this scenario so we skip it. | 539 // Host doesn't really matter in this scenario so we skip it. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 556 FAIL(); | 557 FAIL(); |
| 557 } | 558 } |
| 558 | 559 |
| 559 scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_after = | 560 scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_after = |
| 560 manager.RegisterRequestUrl(GURL("http://www.example.com/")); | 561 manager.RegisterRequestUrl(GURL("http://www.example.com/")); |
| 561 EXPECT_FALSE(entry_after->ShouldRejectRequest(request_)); | 562 EXPECT_FALSE(entry_after->ShouldRejectRequest(request_)); |
| 562 } | 563 } |
| 563 } | 564 } |
| 564 | 565 |
| 565 } // namespace net | 566 } // namespace net |
| OLD | NEW |