xref: /aosp_15_r20/external/cronet/base/power_monitor/timer_sampling_event_source_unittest.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/power_monitor/timer_sampling_event_source.h"
6 
7 #include "base/test/bind.h"
8 #include "base/test/task_environment.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 
11 namespace base {
12 
TEST(TimerSamplingEventSourceTest,Basic)13 TEST(TimerSamplingEventSourceTest, Basic) {
14   constexpr TimeDelta kDelay = Seconds(1);
15   int num_callbacks = 0;
16   test::SingleThreadTaskEnvironment task_environment(
17       test::TaskEnvironment::TimeSource::MOCK_TIME);
18 
19   TimerSamplingEventSource source(kDelay);
20   EXPECT_TRUE(source.Start(BindLambdaForTesting([&]() { ++num_callbacks; })));
21   EXPECT_EQ(0, num_callbacks);
22   task_environment.FastForwardBy(kDelay / 2);
23   EXPECT_EQ(0, num_callbacks);
24   task_environment.FastForwardBy(kDelay / 2);
25   EXPECT_EQ(1, num_callbacks);
26   task_environment.FastForwardBy(kDelay * 10);
27   EXPECT_EQ(11, num_callbacks);
28 }
29 
30 }  // namespace base
31