diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 04:36:17 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 04:36:17 +0000 |
commit | 5b3065b13476000a1940aeabfec125c736d687da (patch) | |
tree | 277151e3397df2fabbbedfd915daf92f92e683c8 /ash/display/display_manager_unittest.cc | |
parent | ce464bf730dc151f843740626acc659cf19b54d4 (diff) | |
download | chromium_src-5b3065b13476000a1940aeabfec125c736d687da.zip chromium_src-5b3065b13476000a1940aeabfec125c736d687da.tar.gz chromium_src-5b3065b13476000a1940aeabfec125c736d687da.tar.bz2 |
Remove the displays first before adding.
DisplayManager used to add display first, which could make the # of displasys exceed 2 during the configuration.
BUG=163624
TEST=covered by test case.
Review URL: https://chromiumcodereview.appspot.com/11412334
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171402 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/display/display_manager_unittest.cc')
-rw-r--r-- | ash/display/display_manager_unittest.cc | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc index 287d83d..ddd20cf 100644 --- a/ash/display/display_manager_unittest.cc +++ b/ash/display/display_manager_unittest.cc @@ -316,6 +316,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { display_manager()->SetFirstDisplayAsInternalDisplayForTest(); const gfx::Display native_display(internal_display_id, gfx::Rect(0, 0, 500, 500)); + const gfx::Display external_display(10, gfx::Rect(1, 1, 100, 100)); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); std::string default_bounds = @@ -329,7 +330,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { display_manager()->GetDisplayAt(0)->bounds().ToString()); // External connected while primary was disconnected. - displays.push_back(gfx::Display(10, gfx::Rect(1, 1, 100, 100))); + displays.push_back(external_display); display_manager()->OnNativeDisplaysChanged(displays); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ(default_bounds, @@ -340,7 +341,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { // Primary connected, with different bounds. displays.clear(); displays.push_back(native_display); - displays.push_back(gfx::Display(10, gfx::Rect(1, 1, 100, 100))); + displays.push_back(external_display); display_manager()->OnNativeDisplaysChanged(displays); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", @@ -350,7 +351,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { // Turn off primary. displays.clear(); - displays.push_back(gfx::Display(10, gfx::Rect(1, 1, 100, 100))); + displays.push_back(external_display); display_manager()->OnNativeDisplaysChanged(displays); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", @@ -373,6 +374,22 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", FindDisplayForId(internal_display_id).bounds().ToString()); + + // External display was changed during suspend. + displays.push_back(external_display); + display_manager()->OnNativeDisplaysChanged(displays); + EXPECT_EQ(2U, display_manager()->GetNumDisplays()); + + // suspend... + displays.clear(); + display_manager()->OnNativeDisplaysChanged(displays); + EXPECT_EQ(2U, display_manager()->GetNumDisplays()); + + // and resume with different external display. + displays.push_back(native_display); + displays.push_back(gfx::Display(11, gfx::Rect(1, 1, 100, 100))); + display_manager()->OnNativeDisplaysChanged(displays); + EXPECT_EQ(2U, display_manager()->GetNumDisplays()); } TEST_F(DisplayManagerTest, EnsurePointerInDisplays) { |