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

Unified Diff: net/url_request/url_request_throttler_unittest.cc

Issue 6696023: Remove minidump analysis aides from URLRequestThrottlerManager. New (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 9 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
« no previous file with comments | « net/url_request/url_request_throttler_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 7d4e739edc6134e8f98d5f35702e38e0d5b7754c..86c3f2a40244385b4598562c6ea08a4ec56bf8e2 100644
--- a/net/url_request/url_request_throttler_unittest.cc
+++ b/net/url_request/url_request_throttler_unittest.cc
@@ -19,23 +19,53 @@ using base::TimeTicks;
namespace {
class MockURLRequestThrottlerManager;
+class MockBackoffEntry : public net::BackoffEntry {
+public:
+ MockBackoffEntry(const net::BackoffEntry::Policy* policy)
+ : net::BackoffEntry(policy), fake_now_(TimeTicks()) {
+ }
+
+ TimeTicks GetTimeNow() const {
+ return fake_now_;
+ }
+
+ void SetFakeNow(TimeTicks now) {
+ fake_now_ = now;
+ }
+
+private:
+ TimeTicks fake_now_;
+};
+
class MockURLRequestThrottlerEntry : public net::URLRequestThrottlerEntry {
public :
- MockURLRequestThrottlerEntry() {}
+ MockURLRequestThrottlerEntry() : mock_backoff_entry_(&backoff_policy_) {}
MockURLRequestThrottlerEntry(
const TimeTicks& exponential_backoff_release_time,
const TimeTicks& sliding_window_release_time,
const TimeTicks& fake_now)
- : fake_time_now_(fake_now) {
+ : fake_time_now_(fake_now),
+ mock_backoff_entry_(&backoff_policy_) {
+ mock_backoff_entry_.SetFakeNow(fake_now);
set_exponential_backoff_release_time(exponential_backoff_release_time);
set_sliding_window_release_time(sliding_window_release_time);
}
virtual ~MockURLRequestThrottlerEntry() {}
+ const net::BackoffEntry* GetBackoffEntry() const {
+ return &mock_backoff_entry_;
+ }
+
+ net::BackoffEntry* GetBackoffEntry() {
+ return &mock_backoff_entry_;
+ }
+
void ResetToBlank(const TimeTicks& time_now) {
fake_time_now_ = time_now;
- set_exponential_backoff_release_time(time_now);
- set_failure_count(0);
+ mock_backoff_entry_.SetFakeNow(time_now);
+
+ GetBackoffEntry()->SetCustomReleaseTime(time_now);
+ GetBackoffEntry()->InformOfRequest(true); // Sets failure count to 0.
set_sliding_window_release_time(time_now);
}
@@ -44,8 +74,7 @@ class MockURLRequestThrottlerEntry : public net::URLRequestThrottlerEntry {
void set_exponential_backoff_release_time(
const base::TimeTicks& release_time) {
- net::URLRequestThrottlerEntry::set_exponential_backoff_release_time(
- release_time);
+ GetBackoffEntry()->SetCustomReleaseTime(release_time);
}
base::TimeTicks sliding_window_release_time() const {
@@ -59,6 +88,7 @@ class MockURLRequestThrottlerEntry : public net::URLRequestThrottlerEntry {
}
TimeTicks fake_time_now_;
+ MockBackoffEntry mock_backoff_entry_;
};
class MockURLRequestThrottlerHeaderAdapter
@@ -226,7 +256,8 @@ TEST_F(URLRequestThrottlerEntryTest, IsEntryReallyOutdated) {
TimeAndBool(now_, false, __LINE__),
TimeAndBool(now_ - kFiveMs, false, __LINE__),
TimeAndBool(now_ + kFiveMs, false, __LINE__),
- TimeAndBool(now_ - lifetime, false, __LINE__),
+ TimeAndBool(now_ - (lifetime - kFiveMs), false, __LINE__),
+ TimeAndBool(now_ - lifetime, true, __LINE__),
TimeAndBool(now_ - (lifetime + kFiveMs), true, __LINE__)};
for (unsigned int i = 0; i < arraysize(test_values); ++i) {
@@ -294,26 +325,25 @@ TEST(URLRequestThrottlerManager, IsUrlStandardised) {
MockURLRequestThrottlerManager manager;
GurlAndString test_values[] = {
GurlAndString(GURL("http://www.example.com"),
- std::string("GOOGYhttp://www.example.com/MONSTA"),
+ std::string("http://www.example.com/"),
__LINE__),
GurlAndString(GURL("http://www.Example.com"),
- std::string("GOOGYhttp://www.example.com/MONSTA"),
+ std::string("http://www.example.com/"),
__LINE__),
GurlAndString(GURL("http://www.ex4mple.com/Pr4c71c41"),
- std::string("GOOGYhttp://www.ex4mple.com/pr4c71c41MONSTA"),
+ std::string("http://www.ex4mple.com/pr4c71c41"),
+ __LINE__),
+ GurlAndString(GURL("http://www.example.com/0/token/false"),
+ std::string("http://www.example.com/0/token/false"),
__LINE__),
- GurlAndString(
- GURL("http://www.example.com/0/token/false"),
- std::string("GOOGYhttp://www.example.com/0/token/falseMONSTA"),
- __LINE__),
GurlAndString(GURL("http://www.example.com/index.php?code=javascript"),
- std::string("GOOGYhttp://www.example.com/index.phpMONSTA"),
+ std::string("http://www.example.com/index.php"),
__LINE__),
GurlAndString(GURL("http://www.example.com/index.php?code=1#superEntry"),
- std::string("GOOGYhttp://www.example.com/index.phpMONSTA"),
+ std::string("http://www.example.com/index.php"),
__LINE__),
GurlAndString(GURL("http://www.example.com:1234/"),
- std::string("GOOGYhttp://www.example.com:1234/MONSTA"),
+ std::string("http://www.example.com:1234/"),
__LINE__)};
for (unsigned int i = 0; i < arraysize(test_values); ++i) {
@@ -351,65 +381,3 @@ TEST(URLRequestThrottlerManager, IsHostBeingRegistered) {
EXPECT_EQ(3, manager.GetNumberOfEntries());
}
-
-class DummyResponseHeaders : public net::URLRequestThrottlerHeaderInterface {
- public:
- DummyResponseHeaders(int response_code) : response_code_(response_code) {}
-
- std::string GetNormalizedValue(const std::string& key) const {
- return "";
- }
-
- // Returns the HTTP response code associated with the request.
- int GetResponseCode() const {
- return response_code_;
- }
-
- private:
- int response_code_;
-};
-
-TEST(URLRequestThrottlerManager, StressTest) {
- MockURLRequestThrottlerManager manager;
-
- for (int i = 0; i < 10000; ++i) {
- // Make some entries duplicates or triplicates.
- int entry_number = i + 2;
- if (i % 17 == 0) {
- entry_number = i - 1;
- } else if ((i - 1) % 17 == 0) {
- entry_number = i - 2;
- } else if (i % 13 == 0) {
- entry_number = i - 1;
- }
-
- scoped_refptr<net::URLRequestThrottlerEntryInterface> entry =
- manager.RegisterRequestUrl(GURL(StringPrintf(
- "http://bingourl.com/%d", entry_number)));
- entry->IsDuringExponentialBackoff();
- entry->GetExponentialBackoffReleaseTime();
-
- DummyResponseHeaders headers(i % 7 == 0 ? 500 : 200);
- entry->UpdateWithResponse(&headers);
- entry->SetEntryLifetimeMsForTest(1);
-
- entry->IsDuringExponentialBackoff();
- entry->GetExponentialBackoffReleaseTime();
- entry->ReserveSendingTimeForNextRequest(base::TimeTicks::Now());
-
- if (i % 11 == 0) {
- manager.DoGarbageCollectEntries();
- }
- }
-}
-
-// TODO(joi): Remove the debug-only condition after M11 branch point.
-#if defined(GTEST_HAS_DEATH_TEST) && !defined(NDEBUG)
-TEST(URLRequestThrottlerManager, NullHandlingTest) {
- MockURLRequestThrottlerManager manager;
- manager.OverrideEntryForTests(GURL("http://www.foo.com/"), NULL);
- ASSERT_DEATH({
- manager.DoGarbageCollectEntries();
- }, "");
-}
-#endif // defined(GTEST_HAS_DEATH_TEST) && !defined(NDEBUG)
« no previous file with comments | « net/url_request/url_request_throttler_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698