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

Unified Diff: ui/display/chromeos/display_configurator_unittest.cc

Issue 886103002: Make SetDisplayPower() take a callback to signal completion (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 11 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: ui/display/chromeos/display_configurator_unittest.cc
diff --git a/ui/display/chromeos/display_configurator_unittest.cc b/ui/display/chromeos/display_configurator_unittest.cc
index ee3569aaf61ae29955398294308dd28d62cd6238..6c94b6f9120b39e484a526c375e981cea1ab8400 100644
--- a/ui/display/chromeos/display_configurator_unittest.cc
+++ b/ui/display/chromeos/display_configurator_unittest.cc
@@ -117,7 +117,9 @@ class DisplayConfiguratorTest : public testing::Test {
: small_mode_(gfx::Size(1366, 768), false, 60.0f),
big_mode_(gfx::Size(2560, 1600), false, 60.0f),
observer_(&configurator_),
- test_api_(&configurator_) {}
+ test_api_(&configurator_),
+ callback_status_(false),
+ callback_called_(false) {}
~DisplayConfiguratorTest() override {}
void SetUp() override {
@@ -153,6 +155,11 @@ class DisplayConfiguratorTest : public testing::Test {
UpdateOutputs(2, false);
}
+ void OnConfiguredCallback(bool status) {
+ callback_called_ = true;
+ callback_status_ = status;
+ }
+
// Predefined modes that can be used by outputs.
const DisplayMode small_mode_;
const DisplayMode big_mode_;
@@ -192,6 +199,14 @@ class DisplayConfiguratorTest : public testing::Test {
log_->GetActionsAndClear());
}
+ void CheckAndResetCallback(bool expected_status) {
+ EXPECT_TRUE(callback_called_);
+ EXPECT_EQ(expected_status, callback_status_);
+
+ callback_status_ = false;
+ callback_called_ = false;
+ }
+
base::MessageLoop message_loop_;
TestStateController state_controller_;
TestMirroringController mirroring_controller_;
@@ -203,6 +218,9 @@ class DisplayConfiguratorTest : public testing::Test {
TestDisplaySnapshot outputs_[2];
+ bool callback_status_;
+ bool callback_called_;
+
private:
DISALLOW_COPY_AND_ASSIGN(DisplayConfiguratorTest);
};
@@ -429,7 +447,10 @@ TEST_F(DisplayConfiguratorTest, SetDisplayPower) {
observer_.Reset();
configurator_.SetDisplayPower(
chromeos::DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
Daniel Erat 2015/01/30 17:14:07 CheckAndResetCallback() failures won't produce mea
dnicoara 2015/01/30 18:25:28 Done.
EXPECT_EQ(
JoinActions(
kGrab,
@@ -447,8 +468,12 @@ TEST_F(DisplayConfiguratorTest, SetDisplayPower) {
// When all displays are turned off, the framebuffer should switch back
// to the mirrored size.
observer_.Reset();
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_OFF,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_OFF,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(
JoinActions(kGrab,
GetFramebufferAction(
@@ -464,8 +489,12 @@ TEST_F(DisplayConfiguratorTest, SetDisplayPower) {
// Turn all displays on and check that mirroring is still used.
observer_.Reset();
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_ON,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(
JoinActions(
kGrab,
@@ -515,7 +544,10 @@ TEST_F(DisplayConfiguratorTest, SetDisplayPower) {
observer_.Reset();
configurator_.SetDisplayPower(
chromeos::DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(
JoinActions(
kGrab,
@@ -534,8 +566,12 @@ TEST_F(DisplayConfiguratorTest, SetDisplayPower) {
// When all displays are turned off, the framebuffer should switch back
// to the extended + software mirroring.
observer_.Reset();
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_OFF,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_OFF,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(
JoinActions(
kGrab,
@@ -559,8 +595,12 @@ TEST_F(DisplayConfiguratorTest, SetDisplayPower) {
// Turn all displays on and check that mirroring is still used.
observer_.Reset();
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_ON,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(
JoinActions(
kGrab,
@@ -606,8 +646,12 @@ TEST_F(DisplayConfiguratorTest, SuspendAndResume) {
// Now turn the display off before suspending and check that the
// configurator turns it back on and syncs with the server.
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_OFF,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_OFF,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(
JoinActions(
kGrab,
@@ -656,8 +700,12 @@ TEST_F(DisplayConfiguratorTest, SuspendAndResume) {
NULL),
log_->GetActionsAndClear());
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_OFF,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_OFF,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(
JoinActions(kGrab,
GetFramebufferAction(
@@ -698,11 +746,19 @@ TEST_F(DisplayConfiguratorTest, Headless) {
// Not much should happen when the display power state is changed while
// no displays are connected.
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_OFF,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_OFF,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), log_->GetActionsAndClear());
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_ON,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(JoinActions(kGrab, kForceDPMS, kUngrab, NULL),
log_->GetActionsAndClear());
@@ -1071,7 +1127,10 @@ TEST_F(DisplayConfiguratorTest, SaveDisplayPowerStateOnConfigFailure) {
// Turn off the internal display, simulating docked mode.
configurator_.SetDisplayPower(
chromeos::DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(1, observer_.num_changes());
EXPECT_EQ(0, observer_.num_failures());
log_->GetActionsAndClear();
@@ -1079,8 +1138,12 @@ TEST_F(DisplayConfiguratorTest, SaveDisplayPowerStateOnConfigFailure) {
// Make all subsequent configuration requests fail and try to turn the
// internal display back on.
native_display_delegate_->set_max_configurable_pixels(1);
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_ON,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(false);
EXPECT_EQ(1, observer_.num_changes());
EXPECT_EQ(1, observer_.num_failures());
log_->GetActionsAndClear();
@@ -1112,7 +1175,10 @@ TEST_F(DisplayConfiguratorTest, DontRestoreStalePowerStateAfterResume) {
// Turn off the internal display, simulating docked mode.
configurator_.SetDisplayPower(
chromeos::DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(1, observer_.num_changes());
EXPECT_EQ(0, observer_.num_failures());
EXPECT_EQ(
@@ -1133,8 +1199,12 @@ TEST_F(DisplayConfiguratorTest, DontRestoreStalePowerStateAfterResume) {
configurator_.ResumeDisplays();
// Before the task runs, exit docked mode.
- configurator_.SetDisplayPower(chromeos::DISPLAY_POWER_ALL_ON,
- DisplayConfigurator::kSetDisplayPowerNoFlags);
+ configurator_.SetDisplayPower(
+ chromeos::DISPLAY_POWER_ALL_ON,
+ DisplayConfigurator::kSetDisplayPowerNoFlags,
+ base::Bind(&DisplayConfiguratorTest::OnConfiguredCallback,
+ base::Unretained(this)));
+ CheckAndResetCallback(true);
EXPECT_EQ(2, observer_.num_changes());
EXPECT_EQ(0, observer_.num_failures());
EXPECT_EQ(
« ui/display/chromeos/display_configurator.h ('K') | « ui/display/chromeos/display_configurator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698