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

Unified Diff: services/device/power_monitor/power_monitor_message_broadcaster_unittest.cc

Issue 2857913002: [DeviceService] Revise PowerMonitorMessageBroadcasterTest to be a service test (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « no previous file | services/device/unittest_manifest.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « no previous file | services/device/unittest_manifest.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698