summaryrefslogtreecommitdiffstats
path: root/ash/display/display_manager_unittest.cc
diff options
context:
space:
mode:
authormukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-28 19:15:54 +0000
committermukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-28 19:15:54 +0000
commitdca3e22d57acf961e91f8150b97ee91fd9b2b404 (patch)
tree82c783f92d3940aa17ff7414c2e75e2b7c32571b /ash/display/display_manager_unittest.cc
parentddd2adab7673190f807517b5a59466f69e27f423 (diff)
downloadchromium_src-dca3e22d57acf961e91f8150b97ee91fd9b2b404.zip
chromium_src-dca3e22d57acf961e91f8150b97ee91fd9b2b404.tar.gz
chromium_src-dca3e22d57acf961e91f8150b97ee91fd9b2b404.tar.bz2
Undo all existing overscan settings before updating to a new overscan settings (2nd)
This is 2nd patch of crrev.com/168974, which was reverted due to win_aura test failure. I noticed that this is essentially a bug of win-aura, so I disabled the broken test for windows temporarily. Original description: If an existing display has overscan setting and SetDisplayOverscan is called for a different display, the display manager will call OnNativeDisplayChanged(), and it will re-apply the overscan setting to other displays, so the effect could be twice or more. We need to undo the existing settings beforehand. BUG=161097 Review URL: https://chromiumcodereview.appspot.com/11417121 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170013 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/display/display_manager_unittest.cc')
-rw-r--r--ash/display/display_manager_unittest.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc
index 12ed8d20..e7378b6 100644
--- a/ash/display/display_manager_unittest.cc
+++ b/ash/display/display_manager_unittest.cc
@@ -234,6 +234,15 @@ TEST_F(DisplayManagerTest, MAYBE_OverscanInsetsTest) {
EXPECT_EQ("12,514 378x376",
display_manager()->GetDisplayAt(1)->bounds_in_pixel().ToString());
+ // Make sure that SetOverscanInsets() is idempotent.
+ display_manager()->SetOverscanInsets(display1.id(), gfx::Insets());
+ display_manager()->SetOverscanInsets(
+ display2.id(), gfx::Insets(13, 12, 11, 10));
+ EXPECT_EQ("0,0 500x500",
+ display_manager()->GetDisplayAt(0)->bounds_in_pixel().ToString());
+ EXPECT_EQ("12,514 378x376",
+ display_manager()->GetDisplayAt(1)->bounds_in_pixel().ToString());
+
display_manager()->SetOverscanInsets(
display2.id(), gfx::Insets(10, 11, 12, 13));
EXPECT_EQ("0,0 500x500",
@@ -272,6 +281,14 @@ TEST_F(DisplayManagerTest, MAYBE_OverscanInsetsTest) {
EXPECT_EQ("10,509 376x380",
display_manager()->GetDisplayAt(1)->bounds_in_pixel().ToString());
EXPECT_EQ("188x190", display_manager()->GetDisplayAt(1)->size().ToString());
+
+ // Make sure switching primary display applies the overscan offset only once.
+ ash::Shell::GetInstance()->display_controller()->SetPrimaryDisplay(
+ ScreenAsh::GetSecondaryDisplay());
+ EXPECT_EQ("0,0 500x500",
+ ScreenAsh::GetSecondaryDisplay().bounds_in_pixel().ToString());
+ EXPECT_EQ("10,509 376x380", gfx::Screen::GetNativeScreen()->
+ GetPrimaryDisplay().bounds_in_pixel().ToString());
}
TEST_F(DisplayManagerTest, MAYBE_ZeroOverscanInsets) {