summaryrefslogtreecommitdiffstats
path: root/ash/display/display_manager_unittest.cc
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-19 22:05:02 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-19 22:05:02 +0000
commit417dc26d8fa131c514a823321ced1d213ca6498e (patch)
tree3fb9dbd528dadf7e683265c7e14b3178f6c19587 /ash/display/display_manager_unittest.cc
parent96eb4190c6003716b9995dd86b4b84550b0bafb3 (diff)
downloadchromium_src-417dc26d8fa131c514a823321ced1d213ca6498e.zip
chromium_src-417dc26d8fa131c514a823321ced1d213ca6498e.tar.gz
chromium_src-417dc26d8fa131c514a823321ced1d213ca6498e.tar.bz2
Temporarily remember the primary root window while replacing the display.
|root_windows_| map becomes empty while replacing display. This CL remembers the primary root window temporarily and use it when the display is added. This is a bit ugly but less risky to merge to 25 branch. For 26, I'll refactor and add "replace" protocol to DisplayObserver. BUG=166673 TEST=covered by test Review URL: https://chromiumcodereview.appspot.com/11644012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174008 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 ddd20cf..b43944b 100644
--- a/ash/display/display_manager_unittest.cc
+++ b/ash/display/display_manager_unittest.cc
@@ -392,6 +392,23 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) {
EXPECT_EQ(2U, display_manager()->GetNumDisplays());
}
+TEST_F(DisplayManagerTest, TestNativeDisplaysChangedNoInternal) {
+ EXPECT_EQ(1U, display_manager()->GetNumDisplays());
+
+ // Don't change the display info if all displays are disconnected.
+ std::vector<gfx::Display> displays;
+ display_manager()->OnNativeDisplaysChanged(displays);
+ EXPECT_EQ(1U, display_manager()->GetNumDisplays());
+
+ // Connect another display which will become primary.
+ const gfx::Display external_display(10, gfx::Rect(1, 1, 100, 100));
+ displays.push_back(external_display);
+ display_manager()->OnNativeDisplaysChanged(displays);
+ EXPECT_EQ(1U, display_manager()->GetNumDisplays());
+ EXPECT_EQ("1,1 100x100",
+ FindDisplayForId(10).bounds_in_pixel().ToString());
+}
+
TEST_F(DisplayManagerTest, EnsurePointerInDisplays) {
UpdateDisplay("200x200,300x300");
Shell::RootWindowList root_windows = Shell::GetAllRootWindows();