Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(159)

Side by Side Diff: ash/display/display_manager_unittest.cc

Issue 1126933004: Allow switching between extended and unified (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/display/display_manager.cc ('k') | ash/display/mirror_window_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/display/display_manager.h" 5 #include "ash/display/display_manager.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/display/display_controller.h" 8 #include "ash/display/display_controller.h"
9 #include "ash/display/display_info.h" 9 #include "ash/display/display_info.h"
10 #include "ash/display/display_layout_store.h" 10 #include "ash/display/display_layout_store.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 } 116 }
117 void OnDisplayAdded(const gfx::Display& new_display) override { 117 void OnDisplayAdded(const gfx::Display& new_display) override {
118 added_.push_back(new_display); 118 added_.push_back(new_display);
119 } 119 }
120 void OnDisplayRemoved(const gfx::Display& old_display) override { 120 void OnDisplayRemoved(const gfx::Display& old_display) override {
121 ++removed_count_; 121 ++removed_count_;
122 } 122 }
123 123
124 // aura::WindowObserver overrides: 124 // aura::WindowObserver overrides:
125 void OnWindowDestroying(aura::Window* window) override { 125 void OnWindowDestroying(aura::Window* window) override {
126 // TODO(oshima): When moving between unified desktop, the 126 ASSERT_EQ(Shell::GetPrimaryRootWindow(), window);
127 // primary root window can be deleted. 127 root_window_destroyed_ = true;
128 if (!display_manager()->IsInUnifiedMode()) {
129 ASSERT_EQ(Shell::GetPrimaryRootWindow(), window);
130 root_window_destroyed_ = true;
131 }
132 } 128 }
133 129
134 private: 130 private:
135 vector<gfx::Display> changed_; 131 vector<gfx::Display> changed_;
136 vector<gfx::Display> added_; 132 vector<gfx::Display> added_;
137 size_t removed_count_; 133 size_t removed_count_;
138 bool root_window_destroyed_; 134 bool root_window_destroyed_;
139 uint32_t changed_metrics_; 135 uint32_t changed_metrics_;
140 136
141 DISALLOW_COPY_AND_ASSIGN(DisplayManagerTest); 137 DISALLOW_COPY_AND_ASSIGN(DisplayManagerTest);
(...skipping 1318 matching lines...) Expand 10 before | Expand all | Expand 10 after
1460 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 1456 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays());
1461 EXPECT_EQ("100,200", host0->GetBounds().origin().ToString()); 1457 EXPECT_EQ("100,200", host0->GetBounds().origin().ToString());
1462 EXPECT_EQ("100x200", host0->GetBounds().size().ToString()); 1458 EXPECT_EQ("100x200", host0->GetBounds().size().ToString());
1463 EXPECT_EQ("300,500", host1->GetBounds().origin().ToString()); 1459 EXPECT_EQ("300,500", host1->GetBounds().origin().ToString());
1464 EXPECT_EQ("200x300", host1->GetBounds().size().ToString()); 1460 EXPECT_EQ("200x300", host1->GetBounds().size().ToString());
1465 } 1461 }
1466 1462
1467 TEST_F(DisplayManagerTest, UnifiedDesktopBasic) { 1463 TEST_F(DisplayManagerTest, UnifiedDesktopBasic) {
1468 if (!SupportsMultipleDisplays()) 1464 if (!SupportsMultipleDisplays())
1469 return; 1465 return;
1466 // Don't check root window destruction in unified mode.
1467 Shell::GetPrimaryRootWindow()->RemoveObserver(this);
1470 1468
1469 UpdateDisplay("300x200,400x500");
1470
1471 // Switch to unified desktop.
1471 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED); 1472 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED);
1472 display_manager()->SetMultiDisplayMode(DisplayManager::UNIFIED); 1473 display_manager()->ReconfigureDisplays();
1473 UpdateDisplay("300x200,400x500");
1474 1474
1475 gfx::Screen* screen = 1475 gfx::Screen* screen =
1476 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); 1476 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE);
1477 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString()); 1477 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString());
1478 1478
1479 display_manager()->SetMirrorMode(true); 1479 display_manager()->SetMirrorMode(true);
1480 EXPECT_EQ("300x200", screen->GetPrimaryDisplay().size().ToString()); 1480 EXPECT_EQ("300x200", screen->GetPrimaryDisplay().size().ToString());
1481 1481
1482 display_manager()->SetMirrorMode(false); 1482 display_manager()->SetMirrorMode(false);
1483 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString()); 1483 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString());
1484 1484
1485 // Swithc to single desktop. 1485 // Switch to single desktop.
1486 UpdateDisplay("500x300"); 1486 UpdateDisplay("500x300");
1487 EXPECT_EQ("500x300", screen->GetPrimaryDisplay().size().ToString()); 1487 EXPECT_EQ("500x300", screen->GetPrimaryDisplay().size().ToString());
1488 1488
1489 // Swithc to unified desktop. 1489 // Switch to unified desktop.
1490 UpdateDisplay("500x300,400x500"); 1490 UpdateDisplay("500x300,400x500");
1491 EXPECT_EQ("900x500", screen->GetPrimaryDisplay().size().ToString()); 1491 EXPECT_EQ("900x500", screen->GetPrimaryDisplay().size().ToString());
1492
1493 // Switch back to extended desktop.
1494 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::EXTENDED);
1495 display_manager()->ReconfigureDisplays();
1496 EXPECT_EQ("500x300", screen->GetPrimaryDisplay().size().ToString());
1497 EXPECT_EQ("400x500", ScreenUtil::GetSecondaryDisplay().size().ToString());
1492 } 1498 }
1493 1499
1494 TEST_F(DisplayManagerTest, RotateUnifiedDesktop) { 1500 TEST_F(DisplayManagerTest, RotateUnifiedDesktop) {
1495 if (!SupportsMultipleDisplays()) 1501 if (!SupportsMultipleDisplays())
1496 return; 1502 return;
1503 // Don't check root window destruction in unified mode.
1504 Shell::GetPrimaryRootWindow()->RemoveObserver(this);
1497 1505
1498 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED); 1506 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED);
1499 display_manager()->SetMultiDisplayMode(DisplayManager::UNIFIED); 1507 display_manager()->SetMultiDisplayMode(DisplayManager::UNIFIED);
1500 UpdateDisplay("300x200,400x500"); 1508 UpdateDisplay("300x200,400x500");
1501 1509
1502 gfx::Screen* screen = 1510 gfx::Screen* screen =
1503 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); 1511 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE);
1504 const gfx::Display& display = screen->GetPrimaryDisplay(); 1512 const gfx::Display& display = screen->GetPrimaryDisplay();
1505 EXPECT_EQ("700x500", display.size().ToString()); 1513 EXPECT_EQ("700x500", display.size().ToString());
1506 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_90, 1514 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_90,
1507 gfx::Display::ROTATION_SOURCE_ACTIVE); 1515 gfx::Display::ROTATION_SOURCE_ACTIVE);
1508 EXPECT_EQ("500x700", screen->GetPrimaryDisplay().size().ToString()); 1516 EXPECT_EQ("500x700", screen->GetPrimaryDisplay().size().ToString());
1509 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_0, 1517 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_0,
1510 gfx::Display::ROTATION_SOURCE_ACTIVE); 1518 gfx::Display::ROTATION_SOURCE_ACTIVE);
1511 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString()); 1519 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString());
1512 1520
1513 UpdateDisplay("300x200"); 1521 UpdateDisplay("300x200");
1514 EXPECT_EQ("300x200", screen->GetPrimaryDisplay().size().ToString()); 1522 EXPECT_EQ("300x200", screen->GetPrimaryDisplay().size().ToString());
1515 } 1523 }
1516 1524
1517 // Makes sure the transition from unified to single won't crash 1525 // Makes sure the transition from unified to single won't crash
1518 // with docked wnidows. 1526 // with docked wnidows.
1519 TEST_F(DisplayManagerTest, UnifiedWithDockWindows) { 1527 TEST_F(DisplayManagerTest, UnifiedWithDockWindows) {
1520 if (!SupportsMultipleDisplays()) 1528 if (!SupportsMultipleDisplays())
1521 return; 1529 return;
1530 // Don't check root window destruction in unified mode.
1531 Shell::GetPrimaryRootWindow()->RemoveObserver(this);
1522 1532
1523 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED); 1533 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED);
1524 display_manager()->SetMultiDisplayMode(DisplayManager::UNIFIED); 1534 display_manager()->SetMultiDisplayMode(DisplayManager::UNIFIED);
1525 UpdateDisplay("300x200,400x500"); 1535 UpdateDisplay("300x200,400x500");
1526 1536
1527 scoped_ptr<aura::Window> docked( 1537 scoped_ptr<aura::Window> docked(
1528 CreateTestWindowInShellWithBounds(gfx::Rect(10, 10, 50, 50))); 1538 CreateTestWindowInShellWithBounds(gfx::Rect(10, 10, 50, 50)));
1529 docked->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_DOCKED); 1539 docked->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_DOCKED);
1530 ASSERT_TRUE(wm::GetWindowState(docked.get())->IsDocked()); 1540 ASSERT_TRUE(wm::GetWindowState(docked.get())->IsDocked());
1531 EXPECT_EQ("0,0 250x453", docked->bounds().ToString()); 1541 EXPECT_EQ("0,0 250x453", docked->bounds().ToString());
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
1689 1.25f, Shell::GetScreen()->GetPrimaryDisplay().device_scale_factor()); 1699 1.25f, Shell::GetScreen()->GetPrimaryDisplay().device_scale_factor());
1690 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); 1700 EXPECT_TRUE(IsTextSubpixelPositioningEnabled());
1691 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); 1701 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams());
1692 1702
1693 DisplayInfo::SetUse125DSFForUIScaling(false); 1703 DisplayInfo::SetUse125DSFForUIScaling(false);
1694 } 1704 }
1695 1705
1696 #endif // OS_CHROMEOS 1706 #endif // OS_CHROMEOS
1697 1707
1698 } // namespace ash 1708 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_manager.cc ('k') | ash/display/mirror_window_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698