Index: content/browser/power_monitor_message_broadcaster_unittest.cc |
diff --git a/content/browser/power_monitor_message_broadcaster_unittest.cc b/content/browser/power_monitor_message_broadcaster_unittest.cc |
index 90add6312d0a3a0a945318b4eec7f5abf8c3deda..4d661d5730da8ec9a38fe9ba6bd1e31fefbb09fe 100644 |
--- a/content/browser/power_monitor_message_broadcaster_unittest.cc |
+++ b/content/browser/power_monitor_message_broadcaster_unittest.cc |
@@ -4,38 +4,29 @@ |
#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 "content/browser/power_monitor_message_broadcaster.h" |
-#include "content/common/power_monitor_messages.h" |
-#include "ipc/ipc_sender.h" |
+#include "mojo/public/cpp/bindings/binding.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace content { |
-class PowerMonitorMessageSender : public IPC::Sender { |
+class FakePowerMonitorClient : public device::mojom::PowerMonitorClient { |
public: |
- PowerMonitorMessageSender() |
- : power_state_changes_(0), |
+ FakePowerMonitorClient(device::mojom::PowerMonitorClientRequest request) |
+ : binding_(this, std::move(request)), |
+ power_state_changes_(0), |
suspends_(0), |
- resumes_(0) { |
+ resumes_(0) {} |
+ ~FakePowerMonitorClient() override {} |
+ |
+ // Implement device::mojom::PowerMonitorClient |
+ void PowerStateChange(bool on_battery_power) override { |
+ power_state_changes_++; |
} |
- ~PowerMonitorMessageSender() override {} |
- |
- bool Send(IPC::Message* msg) override { |
- switch (msg->type()) { |
- case PowerMonitorMsg_Suspend::ID: |
- suspends_++; |
- break; |
- case PowerMonitorMsg_Resume::ID: |
- resumes_++; |
- break; |
- case PowerMonitorMsg_PowerStateChange::ID: |
- power_state_changes_++; |
- break; |
- } |
- delete msg; |
- return true; |
- }; |
+ void Suspend() override { suspends_++; } |
+ void Resume() override { resumes_++; } |
// Test status counts. |
int power_state_changes() { return power_state_changes_; } |
@@ -43,6 +34,7 @@ class PowerMonitorMessageSender : public IPC::Sender { |
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. |
@@ -69,48 +61,51 @@ class PowerMonitorMessageBroadcasterTest : public testing::Test { |
}; |
TEST_F(PowerMonitorMessageBroadcasterTest, PowerMessageBroadcast) { |
- PowerMonitorMessageSender sender; |
- PowerMonitorMessageBroadcaster broadcaster(&sender); |
+ device::mojom::PowerMonitorClientPtr proxy; |
+ FakePowerMonitorClient client(mojo::GetProxy(&proxy)); |
+ PowerMonitorMessageBroadcaster broadcaster; |
+ |
+ // Calling SetClient should invoke a power state change. |
+ broadcaster.SetClient(std::move(proxy)); |
- // Calling Init should invoke a power state change. |
- broadcaster.Init(); |
- EXPECT_EQ(sender.power_state_changes(), 1); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(client.power_state_changes(), 1); |
// Sending resume when not suspended should have no effect. |
source()->GenerateResumeEvent(); |
- EXPECT_EQ(sender.resumes(), 0); |
+ EXPECT_EQ(client.resumes(), 0); |
// Pretend we suspended. |
source()->GenerateSuspendEvent(); |
- EXPECT_EQ(sender.suspends(), 1); |
+ EXPECT_EQ(client.suspends(), 1); |
// Send a second suspend notification. This should be suppressed. |
source()->GenerateSuspendEvent(); |
- EXPECT_EQ(sender.suspends(), 1); |
+ EXPECT_EQ(client.suspends(), 1); |
// Pretend we were awakened. |
source()->GenerateResumeEvent(); |
- EXPECT_EQ(sender.resumes(), 1); |
+ EXPECT_EQ(client.resumes(), 1); |
// Send a duplicate resume notification. This should be suppressed. |
source()->GenerateResumeEvent(); |
- EXPECT_EQ(sender.resumes(), 1); |
+ EXPECT_EQ(client.resumes(), 1); |
// Pretend the device has gone on battery power |
source()->GeneratePowerStateEvent(true); |
- EXPECT_EQ(sender.power_state_changes(), 2); |
+ EXPECT_EQ(client.power_state_changes(), 2); |
// Repeated indications the device is on battery power should be suppressed. |
source()->GeneratePowerStateEvent(true); |
- EXPECT_EQ(sender.power_state_changes(), 2); |
+ EXPECT_EQ(client.power_state_changes(), 2); |
// Pretend the device has gone off battery power |
source()->GeneratePowerStateEvent(false); |
- EXPECT_EQ(sender.power_state_changes(), 3); |
+ EXPECT_EQ(client.power_state_changes(), 3); |
// Repeated indications the device is off battery power should be suppressed. |
source()->GeneratePowerStateEvent(false); |
- EXPECT_EQ(sender.power_state_changes(), 3); |
+ EXPECT_EQ(client.power_state_changes(), 3); |
} |
} // namespace base |