Commit c711e89a authored by Sonny Sasaka's avatar Sonny Sasaka Committed by Commit Bot

[Bluetooth] Allow setting fake battery value per device

This changes FakePowerManagerClient to allow setting specific fake
battery values per device so that tests can be more controlled. Without
this, all devices will trigger PeripheralBatteryStatusReceived events
that are often unwanted in tests.

BUG=b:166530001

Change-Id: I74ee52685a955a0996b0aef72da403ae9ea79d51
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2410961
Commit-Queue: Sonny Sasaka <sonnysasaka@chromium.org>
Reviewed-by: default avatarRyan Hansberry <hansberry@chromium.org>
Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#807131}
parent ae86191e
......@@ -122,13 +122,13 @@ TEST_F(HidBatteryListenerTest, RefreshBluetoothBattery) {
// Simulate DeviceAdded observer event.
chromeos::FakePowerManagerClient::Get()->set_peripheral_battery_refresh_level(
60);
kAddress, 60);
adapter_observer_->DeviceAdded(mock_adapter_.get(), mock_device_.get());
EXPECT_EQ(60, mock_device_->battery_percentage());
// Simulate DeviceAdded observer event with a different battery value.
chromeos::FakePowerManagerClient::Get()->set_peripheral_battery_refresh_level(
50);
kAddress, 50);
adapter_observer_->DeviceAdded(mock_adapter_.get(), mock_device_.get());
EXPECT_EQ(50, mock_device_->battery_percentage());
}
......
......@@ -14,6 +14,7 @@
#include "base/location.h"
#include "base/logging.h"
#include "base/posix/unix_domain_socket.h"
#include "base/stl_util.h"
#include "base/strings/string_util.h"
#include "base/threading/thread_restrictions.h"
#include "base/threading/thread_task_runner_handle.h"
......@@ -383,10 +384,13 @@ base::TimeDelta FakePowerManagerClient::GetDarkSuspendDelayTimeout() {
void FakePowerManagerClient::RefreshBluetoothBattery(
const std::string& address) {
if (!base::Contains(peripheral_battery_refresh_levels_, address))
return;
for (auto& observer : observers_) {
observer.PeripheralBatteryStatusReceived(
SysnameFromBluetoothAddress(address), "somename",
peripheral_battery_refresh_level_);
peripheral_battery_refresh_levels_[address]);
}
}
......
......@@ -79,8 +79,9 @@ class COMPONENT_EXPORT(DBUS_POWER) FakePowerManagerClient
void set_user_activity_callback(base::RepeatingClosure callback) {
user_activity_callback_ = std::move(callback);
}
void set_peripheral_battery_refresh_level(int level) {
peripheral_battery_refresh_level_ = level;
void set_peripheral_battery_refresh_level(const std::string& address,
int level) {
peripheral_battery_refresh_levels_[address] = level;
}
// PowerManagerClient overrides:
......@@ -313,7 +314,7 @@ class COMPONENT_EXPORT(DBUS_POWER) FakePowerManagerClient
bool simulate_start_arc_timer_failure_ = false;
// Used in RefreshBluetoothBattery.
int peripheral_battery_refresh_level_ = 0;
base::flat_map<std::string, int> peripheral_battery_refresh_levels_;
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment