OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
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 "chromeos/power/power_data_collector.h" | |
6 #include "chromeos/dbus/dbus_thread_manager.h" | |
7 #include "chromeos/dbus/fake_dbus_thread_manager.h" | |
8 #include "chromeos/dbus/power_manager/power_supply_properties.pb.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 namespace chromeos { | |
12 | |
13 class PowerDataCollectorTest : public testing::Test { | |
14 public: | |
15 PowerDataCollectorTest() : power_data_collector_(NULL) {} | |
16 virtual ~PowerDataCollectorTest() {} | |
17 | |
18 virtual void SetUp() OVERRIDE { | |
19 FakeDBusThreadManager* fake_dbus_thread_manager = new FakeDBusThreadManager; | |
20 fake_dbus_thread_manager->SetFakeClients(); | |
21 DBusThreadManager::InitializeForTesting(fake_dbus_thread_manager); | |
22 PowerDataCollector::Initialize(); | |
23 power_data_collector_ = PowerDataCollector::Get(); | |
24 } | |
25 | |
26 virtual void TearDown() OVERRIDE { | |
27 PowerDataCollector::Shutdown(); | |
28 DBusThreadManager::Shutdown(); | |
29 power_data_collector_ = NULL; | |
30 } | |
31 | |
32 protected: | |
33 PowerDataCollector* power_data_collector_; | |
34 }; | |
35 | |
36 TEST_F(PowerDataCollectorTest, PowerChanged) { | |
37 power_manager::PowerSupplyProperties prop1, prop2; | |
38 | |
39 prop1.set_external_power(power_manager::PowerSupplyProperties::DISCONNECTED); | |
40 prop1.set_battery_percent(20.00); | |
41 power_data_collector_->PowerChanged(prop1); | |
42 const std::deque<PowerDataCollector::PowerSupplySample>& data1 = | |
43 power_data_collector_->power_supply_data(); | |
44 ASSERT_EQ(static_cast<size_t>(1), data1.size()); | |
45 EXPECT_DOUBLE_EQ(prop1.battery_percent(), data1[0].battery_percent); | |
46 EXPECT_FALSE(data1[0].external_power); | |
47 | |
48 prop2.set_external_power(power_manager::PowerSupplyProperties::AC); | |
49 prop2.set_battery_percent(100.00); | |
50 power_data_collector_->PowerChanged(prop2); | |
51 const std::deque<PowerDataCollector::PowerSupplySample>& data2 = | |
52 power_data_collector_->power_supply_data(); | |
53 ASSERT_EQ(static_cast<size_t>(2), data2.size()); | |
54 EXPECT_DOUBLE_EQ(prop2.battery_percent(), data2[1].battery_percent); | |
55 EXPECT_TRUE(data2[1].external_power); | |
56 } | |
57 | |
58 TEST_F(PowerDataCollectorTest, SystemResumed) { | |
59 power_data_collector_->SystemResumed(base::TimeDelta::FromSeconds(10)); | |
60 const std::deque<PowerDataCollector::SystemResumedSample>& data1 = | |
61 power_data_collector_->system_resumed_data(); | |
62 ASSERT_EQ(static_cast<size_t>(1), data1.size()); | |
63 ASSERT_EQ(static_cast<int64>(10), data1[0].sleep_duration.InSeconds()); | |
64 | |
65 power_data_collector_->SystemResumed(base::TimeDelta::FromSeconds(20)); | |
66 const std::deque<PowerDataCollector::SystemResumedSample>& data2 = | |
67 power_data_collector_->system_resumed_data(); | |
68 ASSERT_EQ(static_cast<size_t>(2), data2.size()); | |
69 ASSERT_EQ(static_cast<int64>(20), data2[1].sleep_duration.InSeconds()); | |
70 } | |
71 | |
72 TEST_F(PowerDataCollectorTest, AddSample) { | |
73 std::deque<PowerDataCollector::PowerSupplySample> sample_deque; | |
74 PowerDataCollector::PowerSupplySample sample1, sample2; | |
75 sample1.time = base::Time::FromInternalValue(1000); | |
76 sample2.time = sample1.time + | |
77 base::TimeDelta::FromSeconds(PowerDataCollector::kSampleTimeLimitSec + 1); | |
78 | |
79 AddSample(&sample_deque, sample1); | |
80 ASSERT_EQ(static_cast<size_t>(1), sample_deque.size()); | |
81 | |
82 AddSample(&sample_deque, sample2); | |
83 ASSERT_EQ(static_cast<size_t>(1), sample_deque.size()); | |
84 EXPECT_EQ(sample2.time.ToInternalValue(), | |
85 sample_deque[0].time.ToInternalValue()); | |
86 } | |
87 | |
88 } // namespace chromeos | |
OLD | NEW |