Index: services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc |
diff --git a/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc b/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc |
index fddd208c4e7240dd74346b98c7e8bcc807075cd9..ca6d3d081024eea1aa54d7b63318c3689ada462a 100644 |
--- a/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc |
+++ b/services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc |
@@ -5,26 +5,25 @@ |
#include "services/device/power_monitor/power_monitor_message_broadcaster.h" |
#include "base/macros.h" |
-#include "base/message_loop/message_loop.h" |
#include "base/run_loop.h" |
#include "base/test/power_monitor_test_base.h" |
-#include "mojo/public/cpp/bindings/binding.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
+#include "services/device/device_service_test_base.h" |
+#include "services/device/public/cpp/power_monitor/power_monitor_broadcast_source.h" |
namespace device { |
-class FakePowerMonitorClient : public device::mojom::PowerMonitorClient { |
+class MockPowerMonitorBroadcastSource : public PowerMonitorBroadcastSource { |
public: |
- FakePowerMonitorClient(device::mojom::PowerMonitorClientRequest request) |
- : binding_(this, std::move(request)), |
- power_state_changes_(0), |
- suspends_(0), |
- resumes_(0) {} |
- ~FakePowerMonitorClient() override {} |
+ MockPowerMonitorBroadcastSource(service_manager::Connector* connector, |
+ base::Closure service_connected) |
+ : PowerMonitorBroadcastSource(connector), |
+ service_connected_(service_connected) {} |
+ ~MockPowerMonitorBroadcastSource() override = default; |
// Implement device::mojom::PowerMonitorClient |
void PowerStateChange(bool on_battery_power) override { |
power_state_changes_++; |
+ service_connected_.Run(); |
} |
void Suspend() override { suspends_++; } |
void Resume() override { resumes_++; } |
@@ -35,26 +34,28 @@ class FakePowerMonitorClient : public device::mojom::PowerMonitorClient { |
int resumes() { return resumes_; } |
private: |
- mojo::Binding<device::mojom::PowerMonitorClient> binding_; |
- int power_state_changes_; // Count of OnPowerStateChange notifications. |
- int suspends_; // Count of OnSuspend notifications. |
- int resumes_; // Count of OnResume notifications. |
+ int power_state_changes_ = 0; // Count of OnPowerStateChange notifications. |
+ int suspends_ = 0; // Count of OnSuspend notifications. |
+ int resumes_ = 0; // Count of OnResume notifications. |
+ base::Closure service_connected_; |
}; |
-class PowerMonitorMessageBroadcasterTest : public testing::Test { |
+class PowerMonitorMessageBroadcasterTest : public DeviceServiceTestBase { |
protected: |
- PowerMonitorMessageBroadcasterTest() { |
+ PowerMonitorMessageBroadcasterTest() = default; |
+ ~PowerMonitorMessageBroadcasterTest() override = default; |
+ |
+ void SetUp() override { |
+ DeviceServiceTestBase::SetUp(); |
+ |
power_monitor_source_ = new base::PowerMonitorTestSource(); |
power_monitor_.reset(new base::PowerMonitor( |
std::unique_ptr<base::PowerMonitorSource>(power_monitor_source_))); |
} |
- ~PowerMonitorMessageBroadcasterTest() override {} |
base::PowerMonitorTestSource* source() { return power_monitor_source_; } |
- base::PowerMonitor* monitor() { return power_monitor_.get(); } |
private: |
- base::MessageLoop message_loop_; |
base::PowerMonitorTestSource* power_monitor_source_; |
std::unique_ptr<base::PowerMonitor> power_monitor_; |
@@ -62,13 +63,14 @@ class PowerMonitorMessageBroadcasterTest : public testing::Test { |
}; |
TEST_F(PowerMonitorMessageBroadcasterTest, PowerMessageBroadcast) { |
- device::mojom::PowerMonitorClientPtr proxy; |
- FakePowerMonitorClient client(mojo::MakeRequest(&proxy)); |
- PowerMonitorMessageBroadcaster broadcaster; |
- |
- // Calling AddClient should invoke a power state change. |
- broadcaster.AddClient(std::move(proxy)); |
- |
+ base::RunLoop run_loop; |
+ MockPowerMonitorBroadcastSource client(connector(), run_loop.QuitClosure()); |
+ run_loop.Run(); |
+ |
+ // Above PowerMonitorBroadcastSource ctor will connect to Device Service to |
+ // bind device::mojom::PowerMonitor interface, on which AddClient() will be |
+ // called then, this should invoke immediatelly a power state change back to |
+ // PowerMonitorBroadcastSource. |
base::RunLoop().RunUntilIdle(); |
EXPECT_EQ(client.power_state_changes(), 1); |