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 | 5 |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/base64.h" | 8 #include "base/base64.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
247 pm->HandleGetHashError(now); | 247 pm->HandleGetHashError(now); |
248 EXPECT_EQ(6U, pm->gethash_error_count_); | 248 EXPECT_EQ(6U, pm->gethash_error_count_); |
249 EXPECT_TRUE(pm->next_gethash_time_ == now + TimeDelta::FromMinutes(480)); | 249 EXPECT_TRUE(pm->next_gethash_time_ == now + TimeDelta::FromMinutes(480)); |
250 | 250 |
251 // 7 errors. | 251 // 7 errors. |
252 pm->HandleGetHashError(now); | 252 pm->HandleGetHashError(now); |
253 EXPECT_EQ(7U, pm->gethash_error_count_); | 253 EXPECT_EQ(7U, pm->gethash_error_count_); |
254 EXPECT_TRUE(pm->next_gethash_time_== now + TimeDelta::FromMinutes(480)); | 254 EXPECT_TRUE(pm->next_gethash_time_== now + TimeDelta::FromMinutes(480)); |
255 } | 255 } |
256 | 256 |
257 TEST_F(SafeBrowsingProtocolManagerTest, TestGetV4HashBackOffTimes) { | |
258 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); | |
259 | |
260 // No errors or back off time yet. | |
261 EXPECT_EQ(0U, pm->gethash_v4_error_count_); | |
262 EXPECT_EQ(1U, pm->gethash_v4_back_off_mult_); | |
263 Time now = Time::Now(); | |
264 EXPECT_TRUE(pm->next_gethash_v4_time_ < now); | |
265 | |
266 // 1 error. | |
267 pm->HandleGetHashV4Error(now); | |
268 EXPECT_EQ(1U, pm->gethash_v4_error_count_); | |
269 EXPECT_EQ(1U, pm->gethash_v4_back_off_mult_); | |
270 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.
| |
271 pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(30)); | |
272 | |
273 // 2 errors. | |
274 pm->HandleGetHashV4Error(now); | |
275 EXPECT_EQ(2U, pm->gethash_v4_error_count_); | |
276 EXPECT_EQ(2U, pm->gethash_v4_back_off_mult_); | |
277 EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(30) && | |
278 pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(60)); | |
279 | |
280 // 3 errors. | |
281 pm->HandleGetHashV4Error(now); | |
282 EXPECT_EQ(3U, pm->gethash_v4_error_count_); | |
283 EXPECT_EQ(4U, pm->gethash_v4_back_off_mult_); | |
284 EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(60) && | |
285 pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(120)); | |
286 | |
287 // 4 errors. | |
288 pm->HandleGetHashV4Error(now); | |
289 EXPECT_EQ(4U, pm->gethash_v4_error_count_); | |
290 EXPECT_EQ(8U, pm->gethash_v4_back_off_mult_); | |
291 EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(120) && | |
292 pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(240)); | |
293 | |
294 // 5 errors. | |
295 pm->HandleGetHashV4Error(now); | |
296 EXPECT_EQ(5U, pm->gethash_v4_error_count_); | |
297 EXPECT_EQ(16U, pm->gethash_v4_back_off_mult_); | |
298 EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(240) && | |
299 pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(480)); | |
300 | |
301 // 6 errors. | |
302 pm->HandleGetHashV4Error(now); | |
303 EXPECT_EQ(6U, pm->gethash_v4_error_count_); | |
304 EXPECT_EQ(32U, pm->gethash_v4_back_off_mult_); | |
305 EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(480) && | |
306 pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(960)); | |
307 | |
308 // 7 errors. | |
309 pm->HandleGetHashV4Error(now); | |
310 EXPECT_EQ(7U, pm->gethash_v4_error_count_); | |
311 EXPECT_EQ(64U, pm->gethash_v4_back_off_mult_); | |
312 EXPECT_TRUE(pm->next_gethash_v4_time_ >= now + TimeDelta::FromMinutes(960) && | |
313 pm->next_gethash_v4_time_ <= now + TimeDelta::FromMinutes(1920)); | |
314 | |
315 // 8 errors, reached max backoff. | |
316 pm->HandleGetHashV4Error(now); | |
317 EXPECT_EQ(8U, pm->gethash_v4_error_count_); | |
318 EXPECT_EQ(128U, pm->gethash_v4_back_off_mult_); | |
319 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.
| |
320 } | |
321 | |
257 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) { | 322 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) { |
258 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); | 323 scoped_ptr<SafeBrowsingProtocolManager> pm(CreateProtocolManager(NULL)); |
259 | 324 |
260 EXPECT_EQ( | 325 EXPECT_EQ( |
261 "https://prefix.com/foo/gethash?client=unittest&appver=1.0&" | 326 "https://prefix.com/foo/gethash?client=unittest&appver=1.0&" |
262 "pver=3.0" + | 327 "pver=3.0" + |
263 key_param_ + "&ext=0", | 328 key_param_ + "&ext=0", |
264 pm->GetHashUrl(false).spec()); | 329 pm->GetHashUrl(false).spec()); |
265 | 330 |
266 pm->set_additional_query(kAdditionalQuery); | 331 pm->set_additional_query(kAdditionalQuery); |
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1309 | 1374 |
1310 EXPECT_FALSE(pm->IsUpdateScheduled()); | 1375 EXPECT_FALSE(pm->IsUpdateScheduled()); |
1311 | 1376 |
1312 // Invoke the AddChunksCallback to finish the update. | 1377 // Invoke the AddChunksCallback to finish the update. |
1313 runner->RunPendingTasks(); | 1378 runner->RunPendingTasks(); |
1314 | 1379 |
1315 EXPECT_TRUE(pm->IsUpdateScheduled()); | 1380 EXPECT_TRUE(pm->IsUpdateScheduled()); |
1316 } | 1381 } |
1317 | 1382 |
1318 } // namespace safe_browsing | 1383 } // namespace safe_browsing |
OLD | NEW |