| 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 |