Index: chromeos/display/output_configurator_unittest.cc |
diff --git a/chromeos/display/output_configurator_unittest.cc b/chromeos/display/output_configurator_unittest.cc |
index c253270ac49f5e942b9615b6b7881ce0eeedd53d..cebac17564e17d2ac0dbcbc5ccdbf46be045a5cc 100644 |
--- a/chromeos/display/output_configurator_unittest.cc |
+++ b/chromeos/display/output_configurator_unittest.cc |
@@ -787,6 +787,45 @@ TEST_F(OutputConfiguratorTest, SetDisplayPower) { |
EXPECT_EQ(1, observer_.num_changes()); |
} |
+TEST_F(OutputConfiguratorTest, ScreenSharing) { |
+ InitWithSingleOutput(); |
+ |
+ content::MediaStreamDevice capture_device( |
+ content::MEDIA_DESKTOP_VIDEO_CAPTURE, std::string(), "screen sharing"); |
+ |
+ // Notify configurator that screen sharing session is started. |
+ configurator_.OnRequestUpdate( |
+ 0, 0, capture_device, content::MEDIA_REQUEST_STATE_DONE); |
+ EXPECT_EQ(JoinActions(kProjectingOn, NULL), delegate_->GetActionsAndClear()); |
+ |
+ // Turn all displays off and check that projecting is not turned off. |
+ configurator_.SetDisplayPower(DISPLAY_POWER_ALL_OFF, |
+ OutputConfigurator::kSetDisplayPowerNoFlags); |
+ EXPECT_EQ(JoinActions(kGrab, |
+ GetFramebufferAction(kSmallModeWidth, kSmallModeHeight, |
+ outputs_[0].crtc, 0).c_str(), |
+ GetCrtcAction(outputs_[0].crtc, 0, 0, 0, |
+ outputs_[0].output).c_str(), |
+ kUngrab, NULL), |
+ delegate_->GetActionsAndClear()); |
+ |
+ // Turn all displays back on. |
+ configurator_.SetDisplayPower(DISPLAY_POWER_ALL_ON, |
+ OutputConfigurator::kSetDisplayPowerNoFlags); |
+ EXPECT_EQ(JoinActions(kGrab, |
+ GetFramebufferAction(kSmallModeWidth, kSmallModeHeight, |
+ outputs_[0].crtc, 0).c_str(), |
+ GetCrtcAction(outputs_[0].crtc, 0, 0, kSmallModeId, |
+ outputs_[0].output).c_str(), |
+ kForceDPMS, kUngrab, NULL), |
+ delegate_->GetActionsAndClear()); |
+ |
+ // Notify configurator that screen sharing session is ended. |
+ configurator_.OnRequestUpdate( |
+ 0, 0, capture_device, content::MEDIA_REQUEST_STATE_CLOSING); |
+ EXPECT_EQ(JoinActions(kProjectingOff, NULL), delegate_->GetActionsAndClear()); |
+} |
+ |
TEST_F(OutputConfiguratorTest, SuspendAndResume) { |
InitWithSingleOutput(); |