Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1506)

Unified Diff: content/browser/power_monitor_message_broadcaster_unittest.cc

Issue 2433203003: Mojoify PoweMonitorMessageBroadcaster IPC from browser to child process (Closed)
Patch Set: code rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « content/browser/power_monitor_message_broadcaster.cc ('k') | content/browser/renderer_host/render_process_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698