Index: chrome/browser/safe_browsing/protocol_manager_unittest.cc |
diff --git a/chrome/browser/safe_browsing/protocol_manager_unittest.cc b/chrome/browser/safe_browsing/protocol_manager_unittest.cc |
index 03368549b97398278069a09cea9ed86768a584b4..c99a9850b74420feba88dc4a3866d2f0a6e4eeb5 100644 |
--- a/chrome/browser/safe_browsing/protocol_manager_unittest.cc |
+++ b/chrome/browser/safe_browsing/protocol_manager_unittest.cc |
@@ -254,6 +254,71 @@ TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashBackOffTimes) { |
EXPECT_TRUE(pm->next_gethash_time_== now + TimeDelta::FromMinutes(480)); |
} |
+TEST_F(SafeBrowsingProtocolManagerTest, TestGetV4HashBackOffTimes) { |
+ scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); |
+ |
+ // No errors or back off time yet. |
+ EXPECT_EQ(0U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(1U, pm->gethash_v4_back_off_mult_); |
+ Time now = Time::Now(); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ < now); |
+ |
+ // 1 error. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(1U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(1U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(15) && |
Nathan Parker
2016/01/07 06:06:58
These should probably use EXPECT_GE and EXPECT_LE,
kcarattini
2016/01/07 06:48:53
Done.
|
+ pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(30)); |
+ |
+ // 2 errors. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(2U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(2U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(30) && |
+ pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(60)); |
+ |
+ // 3 errors. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(3U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(4U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(60) && |
+ pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(120)); |
+ |
+ // 4 errors. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(4U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(8U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(120) && |
+ pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(240)); |
+ |
+ // 5 errors. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(5U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(16U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(240) && |
+ pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(480)); |
+ |
+ // 6 errors. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(6U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(32U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(480) && |
+ pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(960)); |
+ |
+ // 7 errors. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(7U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(64U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(960) && |
+ pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(1920)); |
+ |
+ // 8 errors, reached max backoff. |
+ pm->HandleGetHashV4Error(now); |
+ EXPECT_EQ(8U, pm->gethash_v4_error_count_); |
+ EXPECT_EQ(128U, pm->gethash_v4_back_off_mult_); |
+ EXPECT_TRUE(pm->next_gethash_v4_time_ == now + TimeDelta::FromHours(24)); |
Nathan Parker
2016/01/07 06:06:58
EXPECT_EQ
kcarattini
2016/01/07 06:48:53
Done.
|
+} |
+ |
TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) { |
scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); |