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

Unified Diff: net/url_request/url_request_throttler_unittest.cc

Issue 1076853003: Refactor net::BackoffEntry to not require subclassing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address pneubeck's review comments Created 5 years, 8 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_test_support.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 dcafca1203c0a82e1a923de7285fb956991ee515..3104a6048dadb50f540206e32e5386f82b591304 100644
--- a/net/url_request/url_request_throttler_unittest.cc
+++ b/net/url_request/url_request_throttler_unittest.cc
@@ -36,7 +36,7 @@ class MockURLRequestThrottlerEntry : public URLRequestThrottlerEntry {
explicit MockURLRequestThrottlerEntry(
URLRequestThrottlerManager* manager)
: URLRequestThrottlerEntry(manager, std::string()),
- mock_backoff_entry_(&backoff_policy_) {
+ backoff_entry_(&backoff_policy_, &fake_clock_) {
InitPolicy();
}
MockURLRequestThrottlerEntry(
@@ -45,11 +45,10 @@ class MockURLRequestThrottlerEntry : public URLRequestThrottlerEntry {
const TimeTicks& sliding_window_release_time,
const TimeTicks& fake_now)
: URLRequestThrottlerEntry(manager, std::string()),
- fake_time_now_(fake_now),
- mock_backoff_entry_(&backoff_policy_) {
+ fake_clock_(fake_now),
+ backoff_entry_(&backoff_policy_, &fake_clock_) {
InitPolicy();
- mock_backoff_entry_.set_fake_now(fake_now);
set_exponential_backoff_release_time(exponential_backoff_release_time);
set_sliding_window_release_time(sliding_window_release_time);
}
@@ -64,47 +63,45 @@ class MockURLRequestThrottlerEntry : public URLRequestThrottlerEntry {
}
const BackoffEntry* GetBackoffEntry() const override {
- return &mock_backoff_entry_;
+ return &backoff_entry_;
}
- BackoffEntry* GetBackoffEntry() override { return &mock_backoff_entry_; }
+ BackoffEntry* GetBackoffEntry() override { return &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);
+ fake_clock_.set_now(time_now);
GetBackoffEntry()->Reset();
- GetBackoffEntry()->SetCustomReleaseTime(time_now);
set_sliding_window_release_time(time_now);
}
// Overridden for tests.
- TimeTicks ImplGetTimeNow() const override { return fake_time_now_; }
+ TimeTicks ImplGetTimeNow() const override { return fake_clock_.NowTicks(); }
- void set_exponential_backoff_release_time(
- const base::TimeTicks& release_time) {
+ void set_fake_now(const TimeTicks& now) { fake_clock_.set_now(now); }
+
+ void set_exponential_backoff_release_time(const TimeTicks& release_time) {
GetBackoffEntry()->SetCustomReleaseTime(release_time);
}
- base::TimeTicks sliding_window_release_time() const {
+ TimeTicks sliding_window_release_time() const {
return URLRequestThrottlerEntry::sliding_window_release_time();
}
- void set_sliding_window_release_time(
- const base::TimeTicks& release_time) {
- URLRequestThrottlerEntry::set_sliding_window_release_time(
- release_time);
+ void set_sliding_window_release_time(const TimeTicks& release_time) {
+ URLRequestThrottlerEntry::set_sliding_window_release_time(release_time);
}
- TimeTicks fake_time_now_;
- MockBackoffEntry mock_backoff_entry_;
-
protected:
~MockURLRequestThrottlerEntry() override {}
+
+ private:
+ mutable TestTickClock fake_clock_;
+ BackoffEntry backoff_entry_;
};
class MockURLRequestThrottlerManager : public URLRequestThrottlerManager {
@@ -197,7 +194,7 @@ TEST_F(URLRequestThrottlerEntryTest, CanThrottleRequest) {
TestNetworkDelegate d;
context_.set_network_delegate(&d);
entry_->set_exponential_backoff_release_time(
- entry_->fake_time_now_ + TimeDelta::FromMilliseconds(1));
+ entry_->ImplGetTimeNow() + TimeDelta::FromMilliseconds(1));
d.set_can_throttle_requests(false);
EXPECT_FALSE(entry_->ShouldRejectRequest(*request_,
@@ -210,7 +207,7 @@ TEST_F(URLRequestThrottlerEntryTest, CanThrottleRequest) {
TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) {
base::HistogramTester histogram_tester;
entry_->set_exponential_backoff_release_time(
- entry_->fake_time_now_ + TimeDelta::FromMilliseconds(1));
+ entry_->ImplGetTimeNow() + TimeDelta::FromMilliseconds(1));
EXPECT_TRUE(entry_->ShouldRejectRequest(*request_,
context_.network_delegate()));
@@ -225,11 +222,11 @@ TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) {
TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) {
base::HistogramTester histogram_tester;
- entry_->set_exponential_backoff_release_time(entry_->fake_time_now_);
+ entry_->set_exponential_backoff_release_time(entry_->ImplGetTimeNow());
EXPECT_FALSE(entry_->ShouldRejectRequest(*request_,
context_.network_delegate()));
entry_->set_exponential_backoff_release_time(
- entry_->fake_time_now_ - TimeDelta::FromMilliseconds(1));
+ entry_->ImplGetTimeNow() - TimeDelta::FromMilliseconds(1));
EXPECT_FALSE(entry_->ShouldRejectRequest(*request_,
context_.network_delegate()));
@@ -240,14 +237,16 @@ TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) {
TEST_F(URLRequestThrottlerEntryTest, InterfaceUpdateFailure) {
MockURLRequestThrottlerHeaderAdapter failure_response(503);
entry_->UpdateWithResponse(std::string(), &failure_response);
- EXPECT_GT(entry_->GetExponentialBackoffReleaseTime(), entry_->fake_time_now_)
+ 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);
- EXPECT_EQ(entry_->GetExponentialBackoffReleaseTime(), entry_->fake_time_now_)
+ EXPECT_EQ(entry_->GetExponentialBackoffReleaseTime(),
+ entry_->ImplGetTimeNow())
<< "A success should not add any delay";
}
@@ -256,7 +255,8 @@ TEST_F(URLRequestThrottlerEntryTest, InterfaceUpdateSuccessThenFailure) {
MockURLRequestThrottlerHeaderAdapter success_response(200);
entry_->UpdateWithResponse(std::string(), &success_response);
entry_->UpdateWithResponse(std::string(), &failure_response);
- EXPECT_GT(entry_->GetExponentialBackoffReleaseTime(), entry_->fake_time_now_)
+ EXPECT_GT(entry_->GetExponentialBackoffReleaseTime(),
+ entry_->ImplGetTimeNow())
<< "This scenario should add delay";
entry_->UpdateWithResponse(std::string(), &success_response);
}
@@ -315,13 +315,13 @@ TEST_F(URLRequestThrottlerEntryTest, SlidingWindow) {
int sliding_window =
URLRequestThrottlerEntry::kDefaultSlidingWindowPeriodMs;
- TimeTicks time_1 = entry_->fake_time_now_ +
+ TimeTicks time_1 = entry_->ImplGetTimeNow() +
TimeDelta::FromMilliseconds(sliding_window / 3);
- TimeTicks time_2 = entry_->fake_time_now_ +
+ TimeTicks time_2 = entry_->ImplGetTimeNow() +
TimeDelta::FromMilliseconds(2 * sliding_window / 3);
- TimeTicks time_3 = entry_->fake_time_now_ +
+ TimeTicks time_3 = entry_->ImplGetTimeNow() +
TimeDelta::FromMilliseconds(sliding_window);
- TimeTicks time_4 = entry_->fake_time_now_ +
+ TimeTicks time_4 = entry_->ImplGetTimeNow() +
TimeDelta::FromMilliseconds(sliding_window + 2 * sliding_window / 3);
entry_->set_exponential_backoff_release_time(time_1);
@@ -332,7 +332,7 @@ TEST_F(URLRequestThrottlerEntryTest, SlidingWindow) {
}
EXPECT_EQ(time_2, entry_->sliding_window_release_time());
- entry_->fake_time_now_ = time_3;
+ entry_->set_fake_now(time_3);
for (int i = 0; i < (max_send + 1) / 2; ++i)
EXPECT_EQ(0, entry_->ReserveSendingTimeForNextRequest(TimeTicks()));
« no previous file with comments | « net/url_request/url_request_throttler_test_support.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698