| Index: content/browser/dom_storage/dom_storage_area_unittest.cc
|
| diff --git a/content/browser/dom_storage/dom_storage_area_unittest.cc b/content/browser/dom_storage/dom_storage_area_unittest.cc
|
| index c074cc0709bc0840638e131181d7cdb5160449d4..1115590996b515bab42baf391acafcefc4c60dea 100644
|
| --- a/content/browser/dom_storage/dom_storage_area_unittest.cc
|
| +++ b/content/browser/dom_storage/dom_storage_area_unittest.cc
|
| @@ -472,4 +472,51 @@ TEST_F(DOMStorageAreaTest, DatabaseFileNames) {
|
| base::FilePath().AppendASCII(".extensiononly")));
|
| }
|
|
|
| +TEST_F(DOMStorageAreaTest, RateLimiter) {
|
| + // Limit to 1000 samples per second
|
| + DOMStorageArea::RateLimiter rate_limiter(
|
| + 1000, base::TimeDelta::FromSeconds(1));
|
| +
|
| + // No samples have been added so no time/delay should be needed.
|
| + EXPECT_EQ(base::TimeDelta(),
|
| + rate_limiter.ComputeTimeNeeded());
|
| + EXPECT_EQ(base::TimeDelta(),
|
| + rate_limiter.ComputeDelayNeeded(base::TimeDelta()));
|
| + EXPECT_EQ(base::TimeDelta(),
|
| + rate_limiter.ComputeDelayNeeded(base::TimeDelta::FromDays(1)));
|
| +
|
| + // Add a seconds worth of samples.
|
| + rate_limiter.add_samples(1000);
|
| + EXPECT_EQ(base::TimeDelta::FromSeconds(1),
|
| + rate_limiter.ComputeTimeNeeded());
|
| + EXPECT_EQ(base::TimeDelta::FromSeconds(1),
|
| + rate_limiter.ComputeDelayNeeded(base::TimeDelta()));
|
| + EXPECT_EQ(base::TimeDelta(),
|
| + rate_limiter.ComputeDelayNeeded(base::TimeDelta::FromSeconds(1)));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(250),
|
| + rate_limiter.ComputeDelayNeeded(
|
| + base::TimeDelta::FromMilliseconds(750)));
|
| + EXPECT_EQ(base::TimeDelta(),
|
| + rate_limiter.ComputeDelayNeeded(
|
| + base::TimeDelta::FromDays(1)));
|
| +
|
| + // And another half seconds worth.
|
| + rate_limiter.add_samples(500);
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
|
| + rate_limiter.ComputeTimeNeeded());
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(1500),
|
| + rate_limiter.ComputeDelayNeeded(base::TimeDelta()));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(500),
|
| + rate_limiter.ComputeDelayNeeded(base::TimeDelta::FromSeconds(1)));
|
| + EXPECT_EQ(base::TimeDelta::FromMilliseconds(750),
|
| + rate_limiter.ComputeDelayNeeded(
|
| + base::TimeDelta::FromMilliseconds(750)));
|
| + EXPECT_EQ(base::TimeDelta(),
|
| + rate_limiter.ComputeDelayNeeded(
|
| + base::TimeDelta::FromMilliseconds(1500)));
|
| + EXPECT_EQ(base::TimeDelta(),
|
| + rate_limiter.ComputeDelayNeeded(
|
| + base::TimeDelta::FromDays(1)));
|
| +}
|
| +
|
| } // namespace content
|
|
|