blob: f767ae1d6565a6dc5d292c23925b3071e10c1dff [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/power_monitor/power_monitor_device_source.h"
#if BUILDFLAG(IS_ANDROID)
#include <android/api-level.h>
#endif
#include "base/logging.h"
#include "base/power_monitor/power_monitor.h"
#include "base/power_monitor/power_monitor_source.h"
#include "build/build_config.h"
#include "testing/gtest/include/gtest/gtest.h"
using DeviceThermalState = base::PowerThermalObserver::DeviceThermalState;
namespace base {
class PowerMonitorDeviceSourceTest : public testing::Test {
public:
PowerMonitorDeviceSourceTest() = default;
~PowerMonitorDeviceSourceTest() override = default;
DeviceThermalState GetCurrentThermalState() {
return power_monitor_device_source_.GetCurrentThermalState();
}
PowerMonitorDeviceSource power_monitor_device_source_;
};
TEST_F(PowerMonitorDeviceSourceTest, GetCurrentThermalState) {
const DeviceThermalState current_state = GetCurrentThermalState();
#if BUILDFLAG(IS_MAC)
// We cannot make assumptions on |current_state|. Print it out to use the var.
DVLOG(1) << PowerMonitorSource::DeviceThermalStateToString(current_state);
#elif BUILDFLAG(IS_ANDROID)
if (android_get_device_api_level() >= __ANDROID_API_Q__) {
EXPECT_NE(current_state, DeviceThermalState::kUnknown);
} else {
EXPECT_EQ(current_state, DeviceThermalState::kUnknown);
}
#else
EXPECT_EQ(current_state, DeviceThermalState::kUnknown);
#endif
}
} // namespace base