1 /* 2 * Copyright 2012 The WebRTC Project Authors. All rights reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "webrtc/base/gunit.h" 12 #include "webrtc/base/ratelimiter.h" 13 14 namespace rtc { 15 16 TEST(RateLimiterTest, TestCanUse) { 17 // Diet: Can eat 2,000 calories per day. 18 RateLimiter limiter = RateLimiter(2000, 1.0); 19 20 double monday = 1.0; 21 double tuesday = 2.0; 22 double thursday = 4.0; 23 24 EXPECT_TRUE(limiter.CanUse(0, monday)); 25 EXPECT_TRUE(limiter.CanUse(1000, monday)); 26 EXPECT_TRUE(limiter.CanUse(1999, monday)); 27 EXPECT_TRUE(limiter.CanUse(2000, monday)); 28 EXPECT_FALSE(limiter.CanUse(2001, monday)); 29 30 limiter.Use(1000, monday); 31 32 EXPECT_TRUE(limiter.CanUse(0, monday)); 33 EXPECT_TRUE(limiter.CanUse(999, monday)); 34 EXPECT_TRUE(limiter.CanUse(1000, monday)); 35 EXPECT_FALSE(limiter.CanUse(1001, monday)); 36 37 limiter.Use(1000, monday); 38 39 EXPECT_TRUE(limiter.CanUse(0, monday)); 40 EXPECT_FALSE(limiter.CanUse(1, monday)); 41 42 EXPECT_TRUE(limiter.CanUse(0, tuesday)); 43 EXPECT_TRUE(limiter.CanUse(1, tuesday)); 44 EXPECT_TRUE(limiter.CanUse(1999, tuesday)); 45 EXPECT_TRUE(limiter.CanUse(2000, tuesday)); 46 EXPECT_FALSE(limiter.CanUse(2001, tuesday)); 47 48 limiter.Use(1000, tuesday); 49 50 EXPECT_TRUE(limiter.CanUse(1000, tuesday)); 51 EXPECT_FALSE(limiter.CanUse(1001, tuesday)); 52 53 limiter.Use(1000, thursday); 54 55 EXPECT_TRUE(limiter.CanUse(1000, tuesday)); 56 EXPECT_FALSE(limiter.CanUse(1001, tuesday)); 57 } 58 59 } // namespace rtc 60