summaryrefslogtreecommitdiffstats
path: root/base/system_monitor/system_monitor_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/system_monitor/system_monitor_unittest.cc')
-rw-r--r--base/system_monitor/system_monitor_unittest.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/base/system_monitor/system_monitor_unittest.cc b/base/system_monitor/system_monitor_unittest.cc
index 4f94ce5..4475dcb 100644
--- a/base/system_monitor/system_monitor_unittest.cc
+++ b/base/system_monitor/system_monitor_unittest.cc
@@ -137,4 +137,32 @@ TEST(SystemMonitor, DeviceChangeNotifications) {
loop.RunAllPending();
}
+TEST(SystemMonitor, PowerRequirements) {
+#if defined(OS_WIN)
+ MessageLoop loop;
+ SystemMonitor system_monitor;
+ ASSERT_EQ(0, system_monitor.GetPowerRequirementsCountForTest());
+
+ system_monitor.BeginPowerRequirement(SystemMonitor::TEST_REQUIRED, "foo");
+ ASSERT_EQ(1, system_monitor.GetPowerRequirementsCountForTest());
+
+ system_monitor.BeginPowerRequirement(SystemMonitor::TEST_REQUIRED, "bar");
+ ASSERT_EQ(2, system_monitor.GetPowerRequirementsCountForTest());
+
+ // A second identical request should not increase the request count.
+ system_monitor.BeginPowerRequirement(SystemMonitor::TEST_REQUIRED, "bar");
+ ASSERT_EQ(2, system_monitor.GetPowerRequirementsCountForTest());
+
+ system_monitor.EndPowerRequirement(SystemMonitor::TEST_REQUIRED, "foo");
+ ASSERT_EQ(1, system_monitor.GetPowerRequirementsCountForTest());
+
+ // The request count should not decrease until all identical requests end.
+ system_monitor.EndPowerRequirement(SystemMonitor::TEST_REQUIRED, "bar");
+ ASSERT_EQ(1, system_monitor.GetPowerRequirementsCountForTest());
+
+ system_monitor.EndPowerRequirement(SystemMonitor::TEST_REQUIRED, "bar");
+ ASSERT_EQ(0, system_monitor.GetPowerRequirementsCountForTest());
+#endif // defined(OS_WIN)
+}
+
} // namespace base