| Index: ash/display/display_manager_unittest.cc
|
| diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc
|
| index 354a73d22c9dd0f5d56bbef013397c9477b3380e..ae04be0945bdd3a1b1f461f3307fb8bd531f1cb2 100644
|
| --- a/ash/display/display_manager_unittest.cc
|
| +++ b/ash/display/display_manager_unittest.cc
|
| @@ -86,6 +86,12 @@ class DisplayManagerTest : public test::AshTestBase,
|
| return GetDisplayInfo(display_manager()->FindDisplayForId(id));
|
| }
|
|
|
| + const gfx::Display GetMirroredDisplay() {
|
| + test::MirrorWindowTestApi test_api;
|
| + return Shell::GetInstance()->display_manager()->
|
| + FindDisplayForRootWindow(test_api.GetRootWindow());
|
| + }
|
| +
|
| // aura::DisplayObserver overrides:
|
| virtual void OnDisplayBoundsChanged(const gfx::Display& display) OVERRIDE {
|
| changed_.push_back(display);
|
| @@ -391,7 +397,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| EXPECT_EQ(default_bounds,
|
| display_manager()->GetDisplayAt(0)->bounds().ToString());
|
| EXPECT_EQ(1U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
|
|
| // External connected while primary was disconnected.
|
| display_info_list.push_back(external_display_info);
|
| @@ -402,7 +408,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| EXPECT_EQ("1,1 100x100",
|
| FindDisplayInfoForId(external_id).bounds_in_pixel().ToString());
|
| EXPECT_EQ(1U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
| EXPECT_EQ(external_id, Shell::GetScreen()->GetPrimaryDisplay().id());
|
|
|
| // Primary connected, with different bounds.
|
| @@ -417,7 +423,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| EXPECT_EQ("1,1 100x100",
|
| FindDisplayInfoForId(10).bounds_in_pixel().ToString());
|
| EXPECT_EQ(2U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
| EXPECT_EQ(StringPrintf("x-%d", internal_display_id),
|
| display_manager()->GetDisplayNameForId(internal_display_id));
|
|
|
| @@ -430,7 +436,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| EXPECT_EQ("1,1 100x100",
|
| FindDisplayInfoForId(10).bounds_in_pixel().ToString());
|
| EXPECT_EQ(2U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
| EXPECT_EQ(StringPrintf("x-%d", internal_display_id),
|
| display_manager()->GetDisplayNameForId(internal_display_id));
|
|
|
| @@ -441,21 +447,21 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| EXPECT_EQ("0,0 500x500",
|
| FindDisplayForId(internal_display_id).bounds().ToString());
|
| EXPECT_EQ(1U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
|
|
| // External display was changed during suspend.
|
| display_info_list.push_back(external_display_info);
|
| display_manager()->OnNativeDisplaysChanged(display_info_list);
|
| EXPECT_EQ(2U, display_manager()->GetNumDisplays());
|
| EXPECT_EQ(2U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
|
|
| // suspend...
|
| display_info_list.clear();
|
| display_manager()->OnNativeDisplaysChanged(display_info_list);
|
| EXPECT_EQ(2U, display_manager()->GetNumDisplays());
|
| EXPECT_EQ(2U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
|
|
| // and resume with different external display.
|
| display_info_list.push_back(internal_display_info);
|
| @@ -463,7 +469,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| display_manager()->OnNativeDisplaysChanged(display_info_list);
|
| EXPECT_EQ(2U, display_manager()->GetNumDisplays());
|
| EXPECT_EQ(2U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
| EXPECT_FALSE(display_manager()->IsMirrored());
|
|
|
| // mirrored...
|
| @@ -475,7 +481,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| EXPECT_EQ("0,0 500x500",
|
| FindDisplayForId(internal_display_id).bounds().ToString());
|
| EXPECT_EQ(2U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(11U, display_manager()->mirrored_display_id());
|
| + EXPECT_EQ(11U, display_manager()->mirrored_display().id());
|
| EXPECT_TRUE(display_manager()->IsMirrored());
|
|
|
| // Test display name.
|
| @@ -509,7 +515,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| EXPECT_EQ("1,1 100x100",
|
| FindDisplayInfoForId(external_id).bounds_in_pixel().ToString());
|
| EXPECT_EQ(1U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
|
|
| // Switched to another display
|
| display_info_list.clear();
|
| @@ -520,7 +526,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
|
| "0,0 500x500",
|
| FindDisplayInfoForId(internal_display_id).bounds_in_pixel().ToString());
|
| EXPECT_EQ(1U, display_manager()->num_connected_displays());
|
| - EXPECT_EQ(invalid_id, display_manager()->mirrored_display_id());
|
| + EXPECT_FALSE(display_manager()->mirrored_display().is_valid());
|
| }
|
|
|
| #if defined(OS_WIN)
|
| @@ -877,12 +883,38 @@ TEST_F(DisplayManagerTest, MAYBE_SoftwareMirroring) {
|
| EXPECT_EQ("0,0 300x400",
|
| Shell::GetScreen()->GetPrimaryDisplay().bounds().ToString());
|
| EXPECT_EQ("400x500", test_api.GetRootWindow()->GetHostSize().ToString());
|
| + EXPECT_EQ("300x400", test_api.GetRootWindow()->bounds().size().ToString());
|
| EXPECT_TRUE(display_manager->IsMirrored());
|
|
|
| display_manager->SetMirrorMode(false);
|
| EXPECT_EQ(NULL, test_api.GetRootWindow());
|
| EXPECT_EQ(2U, display_manager->GetNumDisplays());
|
| EXPECT_FALSE(display_manager->IsMirrored());
|
| +
|
| + // Make sure the mirror window has the pixel size of the
|
| + // source display.
|
| + display_manager->SetMirrorMode(true);
|
| +
|
| + UpdateDisplay("300x400@0.5,400x500");
|
| + EXPECT_EQ("300x400", test_api.GetRootWindow()->bounds().size().ToString());
|
| + EXPECT_EQ("400x500", GetMirroredDisplay().size().ToString());
|
| +
|
| + UpdateDisplay("310x410*2,400x500");
|
| + EXPECT_EQ("310x410", test_api.GetRootWindow()->bounds().size().ToString());
|
| + EXPECT_EQ("400x500", GetMirroredDisplay().size().ToString());
|
| +
|
| + UpdateDisplay("320x420/r,400x500");
|
| + EXPECT_EQ("320x420", test_api.GetRootWindow()->bounds().size().ToString());
|
| + EXPECT_EQ("400x500", GetMirroredDisplay().size().ToString());
|
| +
|
| + UpdateDisplay("330x440/r,400x500");
|
| + EXPECT_EQ("330x440", test_api.GetRootWindow()->bounds().size().ToString());
|
| + EXPECT_EQ("400x500", GetMirroredDisplay().size().ToString());
|
| +
|
| + // Overscan insets are ignored.
|
| + UpdateDisplay("400x600/o,600x800/o");
|
| + EXPECT_EQ("400x600", test_api.GetRootWindow()->bounds().size().ToString());
|
| + EXPECT_EQ("600x800", GetMirroredDisplay().size().ToString());
|
| }
|
|
|
| } // namespace internal
|
|
|