adaptive_charging_controller_unittest.cc 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Copyright 2022 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. #include "ash/system/power/adaptive_charging_controller.h"
  5. #include "ash/test/ash_test_base.h"
  6. #include "chromeos/dbus/power/fake_power_manager_client.h"
  7. namespace ash {
  8. class AdaptiveChargingControllerTest : public NoSessionAshTestBase {
  9. public:
  10. void SetUp() override {
  11. // The InitializeFake only wants to be called once.
  12. if (!chromeos::PowerManagerClient::Get())
  13. chromeos::PowerManagerClient::InitializeFake();
  14. power_manager_client_ = chromeos::FakePowerManagerClient::Get();
  15. adaptive_charging_controller_ =
  16. std::make_unique<AdaptiveChargingController>();
  17. NoSessionAshTestBase::SetUp();
  18. }
  19. void TearDown() override {
  20. adaptive_charging_controller_.reset();
  21. NoSessionAshTestBase::TearDown();
  22. }
  23. protected:
  24. chromeos::FakePowerManagerClient* power_manager_client_ = nullptr;
  25. std::unique_ptr<AdaptiveChargingController> adaptive_charging_controller_;
  26. };
  27. TEST_F(AdaptiveChargingControllerTest, IsAdaptiveChargingSupported) {
  28. // Case (1) default.
  29. EXPECT_FALSE(adaptive_charging_controller_->IsAdaptiveChargingSupported());
  30. // Case (2) update adaptive_charging_supported to true.
  31. power_manager::PowerSupplyProperties power_props;
  32. power_props.set_adaptive_charging_supported(true);
  33. power_manager_client_->UpdatePowerProperties(power_props);
  34. EXPECT_TRUE(adaptive_charging_controller_->IsAdaptiveChargingSupported());
  35. // Case (3) update adaptive_charging_supported to false.
  36. power_props.set_adaptive_charging_supported(false);
  37. power_manager_client_->UpdatePowerProperties(power_props);
  38. EXPECT_FALSE(adaptive_charging_controller_->IsAdaptiveChargingSupported());
  39. }
  40. TEST_F(AdaptiveChargingControllerTest, IsAdaptiveDelayingCharge) {
  41. // Case (1) default.
  42. EXPECT_FALSE(adaptive_charging_controller_->is_adaptive_delaying_charge());
  43. // Case (2) set_adaptive_delaying_charge to true without
  44. // adaptive_charging_heuristic_enabled.
  45. power_manager::PowerSupplyProperties power_props;
  46. power_props.set_adaptive_delaying_charge(true);
  47. power_manager_client_->UpdatePowerProperties(power_props);
  48. EXPECT_TRUE(adaptive_charging_controller_->is_adaptive_delaying_charge());
  49. // Case (3) set_adaptive_delaying_charge to true with
  50. // |adaptive_charging_heuristic_enabled| == true.
  51. power_props.set_adaptive_delaying_charge(true);
  52. power_props.set_adaptive_charging_heuristic_enabled(true);
  53. power_manager_client_->UpdatePowerProperties(power_props);
  54. EXPECT_TRUE(adaptive_charging_controller_->is_adaptive_delaying_charge());
  55. // Case (4) set_adaptive_delaying_charge to false.
  56. power_props.set_adaptive_delaying_charge(false);
  57. power_manager_client_->UpdatePowerProperties(power_props);
  58. EXPECT_FALSE(adaptive_charging_controller_->is_adaptive_delaying_charge());
  59. }
  60. } // namespace ash