Index: net/http/broken_alternative_services_unittest.cc |
diff --git a/net/http/broken_alternative_services_unittest.cc b/net/http/broken_alternative_services_unittest.cc |
index 4818dfa7ddfd5936471999b79b5739bd855d91ba..a1e6771f366f1793948a2b524800204fd440b16f 100644 |
--- a/net/http/broken_alternative_services_unittest.cc |
+++ b/net/http/broken_alternative_services_unittest.cc |
@@ -23,7 +23,9 @@ class BrokenAlternativeServicesTest |
: test_task_runner_(new base::TestMockTimeTaskRunner()), |
test_task_runner_context_(test_task_runner_), |
broken_services_clock_(test_task_runner_->GetMockTickClock()), |
- broken_services_(this, broken_services_clock_.get()) {} |
+ broken_services_(this) { |
+ broken_services_.SetTickClockForTesting(broken_services_clock_.get()); |
+ } |
// BrokenAlternativeServices::Delegate implementation |
void OnExpireBrokenAlternativeService( |
@@ -408,15 +410,14 @@ TEST_F(BrokenAlternativeServicesTest, AddBrokenAlternativeServicesToExisting) { |
AlternativeService alternative_service2(kProtoQUIC, "foo2", 443); |
AlternativeService alternative_service3(kProtoQUIC, "foo3", 443); |
- base::TimeDelta delay1 = base::TimeDelta::FromMinutes(1); |
- base::TimeDelta delay3 = base::TimeDelta::FromMinutes(3); |
- |
std::unique_ptr<BrokenAlternativeServiceList> broken_list = |
base::MakeUnique<BrokenAlternativeServiceList>(); |
broken_list->push_back( |
- {alternative_service3, broken_services_clock_->NowTicks() + delay3}); |
+ {alternative_service3, |
+ broken_services_clock_->NowTicks() + base::TimeDelta::FromMinutes(1)}); |
broken_list->push_back( |
- {alternative_service1, broken_services_clock_->NowTicks() + delay1}); |
+ {alternative_service1, |
+ broken_services_clock_->NowTicks() + base::TimeDelta::FromMinutes(3)}); |
std::unique_ptr<RecentlyBrokenAlternativeServices> recently_broken_map = |
base::MakeUnique<RecentlyBrokenAlternativeServices>( |
@@ -429,10 +430,9 @@ TEST_F(BrokenAlternativeServicesTest, AddBrokenAlternativeServicesToExisting) { |
// At this point, |alternative_service1| and |alternative_service2| are marked |
// broken and should expire in 5 minutes. |
- // Adding |broken_list| should additionally mark |alternative_service3| |
- // broken and should expire in 3 minute. Even though |broken_list| contains |
- // |alternative_service1|, its expiration time should not change since it was |
- // already marked broken. |
+ // Adding |broken_list| should overwrite |alternative_service1|'s expiration |
+ // time to 3 minutes, and additionally mark |alternative_service3| |
+ // broken with an expiration time of 1 minute. |
broken_services_.AddBrokenAndRecentlyBrokenAlternativeServices( |
std::move(broken_list), std::move(recently_broken_map)); |
@@ -443,8 +443,8 @@ TEST_F(BrokenAlternativeServicesTest, AddBrokenAlternativeServicesToExisting) { |
EXPECT_TRUE( |
broken_services_.IsAlternativeServiceBroken(alternative_service3)); |
- // Make sure |alternative_service3|'s brokenness expires in 3 minutes. |
- test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(3) - |
+ // Make sure |alternative_service3|'s brokenness expires in 1 minute. |
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(1) - |
base::TimeDelta::FromInternalValue(1)); |
EXPECT_TRUE( |
broken_services_.IsAlternativeServiceBroken(alternative_service1)); |
@@ -461,8 +461,7 @@ TEST_F(BrokenAlternativeServicesTest, AddBrokenAlternativeServicesToExisting) { |
EXPECT_FALSE( |
broken_services_.IsAlternativeServiceBroken(alternative_service3)); |
- // Make sure |alternative_service1| and |alternative_service2|'s brokenness |
- // expire in 2 more minutes. |
+ // Make sure |alternative_service1|'s brokenness expires in 2 more minutes. |
test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(2) - |
base::TimeDelta::FromInternalValue(1)); |
EXPECT_TRUE( |
@@ -472,6 +471,24 @@ TEST_F(BrokenAlternativeServicesTest, AddBrokenAlternativeServicesToExisting) { |
EXPECT_FALSE( |
broken_services_.IsAlternativeServiceBroken(alternative_service3)); |
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromInternalValue(1)); |
+ EXPECT_FALSE( |
+ broken_services_.IsAlternativeServiceBroken(alternative_service1)); |
+ EXPECT_TRUE( |
+ broken_services_.IsAlternativeServiceBroken(alternative_service2)); |
+ EXPECT_FALSE( |
+ broken_services_.IsAlternativeServiceBroken(alternative_service3)); |
+ |
+ // Make sure |alternative_service2|'s brokenness expires in 2 more minutes. |
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(2) - |
+ base::TimeDelta::FromInternalValue(1)); |
+ EXPECT_FALSE( |
+ broken_services_.IsAlternativeServiceBroken(alternative_service1)); |
+ EXPECT_TRUE( |
+ broken_services_.IsAlternativeServiceBroken(alternative_service2)); |
+ EXPECT_FALSE( |
+ broken_services_.IsAlternativeServiceBroken(alternative_service3)); |
+ |
test_task_runner_->FastForwardBy(base::TimeDelta::FromInternalValue(1)); |
EXPECT_FALSE( |
broken_services_.IsAlternativeServiceBroken(alternative_service1)); |