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

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

Issue 1107733006: Unified Desktop: hook up ash to allow unified desktop mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: AshWindowTreeHostUnified 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.h » ('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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 } 114 }
115 void OnDisplayAdded(const gfx::Display& new_display) override { 115 void OnDisplayAdded(const gfx::Display& new_display) override {
116 added_.push_back(new_display); 116 added_.push_back(new_display);
117 } 117 }
118 void OnDisplayRemoved(const gfx::Display& old_display) override { 118 void OnDisplayRemoved(const gfx::Display& old_display) override {
119 ++removed_count_; 119 ++removed_count_;
120 } 120 }
121 121
122 // aura::WindowObserver overrides: 122 // aura::WindowObserver overrides:
123 void OnWindowDestroying(aura::Window* window) override { 123 void OnWindowDestroying(aura::Window* window) override {
124 ASSERT_EQ(Shell::GetPrimaryRootWindow(), window); 124 // TODO(oshima): When moving between unified desktop, the
125 root_window_destroyed_ = true; 125 // primary root window can be deleted.
126 if (!display_manager()->IsInUnifiedMode()) {
127 ASSERT_EQ(Shell::GetPrimaryRootWindow(), window);
128 root_window_destroyed_ = true;
129 }
126 } 130 }
127 131
128 private: 132 private:
129 vector<gfx::Display> changed_; 133 vector<gfx::Display> changed_;
130 vector<gfx::Display> added_; 134 vector<gfx::Display> added_;
131 size_t removed_count_; 135 size_t removed_count_;
132 bool root_window_destroyed_; 136 bool root_window_destroyed_;
133 uint32_t changed_metrics_; 137 uint32_t changed_metrics_;
134 138
135 DISALLOW_COPY_AND_ASSIGN(DisplayManagerTest); 139 DISALLOW_COPY_AND_ASSIGN(DisplayManagerTest);
(...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after
1200 1204
1201 UpdateDisplay("300x400,400x500"); 1205 UpdateDisplay("300x400,400x500");
1202 1206
1203 test::MirrorWindowTestApi test_api; 1207 test::MirrorWindowTestApi test_api;
1204 EXPECT_EQ(NULL, test_api.GetHost()); 1208 EXPECT_EQ(NULL, test_api.GetHost());
1205 1209
1206 TestDisplayObserver display_observer; 1210 TestDisplayObserver display_observer;
1207 Shell::GetScreen()->AddObserver(&display_observer); 1211 Shell::GetScreen()->AddObserver(&display_observer);
1208 1212
1209 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 1213 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
1210 display_manager->SetSecondDisplayMode(DisplayManager::MIRRORING); 1214 display_manager->SetMultiDisplayMode(DisplayManager::MIRRORING);
1211 display_manager->UpdateDisplays(); 1215 display_manager->UpdateDisplays();
1212 RunAllPendingInMessageLoop(); 1216 RunAllPendingInMessageLoop();
1213 EXPECT_TRUE(display_observer.changed_and_reset()); 1217 EXPECT_TRUE(display_observer.changed_and_reset());
1214 EXPECT_EQ(1U, display_manager->GetNumDisplays()); 1218 EXPECT_EQ(1U, display_manager->GetNumDisplays());
1215 EXPECT_EQ("0,0 300x400", 1219 EXPECT_EQ("0,0 300x400",
1216 Shell::GetScreen()->GetPrimaryDisplay().bounds().ToString()); 1220 Shell::GetScreen()->GetPrimaryDisplay().bounds().ToString());
1217 EXPECT_EQ("400x500", test_api.GetHost()->GetBounds().size().ToString()); 1221 EXPECT_EQ("400x500", test_api.GetHost()->GetBounds().size().ToString());
1218 EXPECT_EQ("300x400", 1222 EXPECT_EQ("300x400",
1219 test_api.GetHost()->window()->bounds().size().ToString()); 1223 test_api.GetHost()->window()->bounds().size().ToString());
1220 EXPECT_TRUE(display_manager->IsInMirrorMode()); 1224 EXPECT_TRUE(display_manager->IsInMirrorMode());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1258 1262
1259 Shell::GetScreen()->RemoveObserver(&display_observer); 1263 Shell::GetScreen()->RemoveObserver(&display_observer);
1260 } 1264 }
1261 1265
1262 TEST_F(DisplayManagerTest, SingleDisplayToSoftwareMirroring) { 1266 TEST_F(DisplayManagerTest, SingleDisplayToSoftwareMirroring) {
1263 if (!SupportsMultipleDisplays()) 1267 if (!SupportsMultipleDisplays())
1264 return; 1268 return;
1265 UpdateDisplay("600x400"); 1269 UpdateDisplay("600x400");
1266 1270
1267 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 1271 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
1268 display_manager->SetSecondDisplayMode(DisplayManager::MIRRORING); 1272 display_manager->SetMultiDisplayMode(DisplayManager::MIRRORING);
1269 UpdateDisplay("600x400,600x400"); 1273 UpdateDisplay("600x400,600x400");
1270 1274
1271 EXPECT_TRUE(display_manager->IsInMirrorMode()); 1275 EXPECT_TRUE(display_manager->IsInMirrorMode());
1272 EXPECT_EQ(1U, display_manager->GetNumDisplays()); 1276 EXPECT_EQ(1U, display_manager->GetNumDisplays());
1273 DisplayController* display_controller = 1277 DisplayController* display_controller =
1274 ash::Shell::GetInstance()->display_controller(); 1278 ash::Shell::GetInstance()->display_controller();
1275 EXPECT_TRUE(display_controller->mirror_window_controller()->GetWindow()); 1279 EXPECT_TRUE(display_controller->mirror_window_controller()->GetWindow());
1276 1280
1277 UpdateDisplay("600x400"); 1281 UpdateDisplay("600x400");
1278 EXPECT_FALSE(display_manager->IsInMirrorMode()); 1282 EXPECT_FALSE(display_manager->IsInMirrorMode());
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1451 EXPECT_EQ("300x400", host1->GetBounds().size().ToString()); 1455 EXPECT_EQ("300x400", host1->GetBounds().size().ToString());
1452 1456
1453 UpdateDisplay("100+200-100x200,300+500-200x300"); 1457 UpdateDisplay("100+200-100x200,300+500-200x300");
1454 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 1458 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays());
1455 EXPECT_EQ("100,200", host0->GetBounds().origin().ToString()); 1459 EXPECT_EQ("100,200", host0->GetBounds().origin().ToString());
1456 EXPECT_EQ("100x200", host0->GetBounds().size().ToString()); 1460 EXPECT_EQ("100x200", host0->GetBounds().size().ToString());
1457 EXPECT_EQ("300,500", host1->GetBounds().origin().ToString()); 1461 EXPECT_EQ("300,500", host1->GetBounds().origin().ToString());
1458 EXPECT_EQ("200x300", host1->GetBounds().size().ToString()); 1462 EXPECT_EQ("200x300", host1->GetBounds().size().ToString());
1459 } 1463 }
1460 1464
1465 #if !defined(OS_WIN) && defined(USE_X11)
1466
1467 TEST_F(DisplayManagerTest, UnifiedDesktopBasic) {
1468 display_manager()->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED);
1469 display_manager()->SetMultiDisplayMode(DisplayManager::UNIFIED);
1470 UpdateDisplay("300x200,400x500");
1471
1472 gfx::Screen* screen =
1473 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE);
1474 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString());
1475
1476 display_manager()->SetMirrorMode(true);
1477 EXPECT_EQ("300x200", screen->GetPrimaryDisplay().size().ToString());
1478
1479 display_manager()->SetMirrorMode(false);
1480 EXPECT_EQ("700x500", screen->GetPrimaryDisplay().size().ToString());
1481
1482 // Swithc to single desktop.
1483 UpdateDisplay("500x300");
1484 EXPECT_EQ("500x300", screen->GetPrimaryDisplay().size().ToString());
1485
1486 // Swithc to unified desktop.
1487 UpdateDisplay("500x300,400x500");
1488 EXPECT_EQ("900x500", screen->GetPrimaryDisplay().size().ToString());
1489 }
1490
1491 #endif
1492
1461 class ScreenShutdownTest : public test::AshTestBase { 1493 class ScreenShutdownTest : public test::AshTestBase {
1462 public: 1494 public:
1463 ScreenShutdownTest() { 1495 ScreenShutdownTest() {
1464 } 1496 }
1465 ~ScreenShutdownTest() override {} 1497 ~ScreenShutdownTest() override {}
1466 1498
1467 void TearDown() override { 1499 void TearDown() override {
1468 gfx::Screen* orig_screen = 1500 gfx::Screen* orig_screen =
1469 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); 1501 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE);
1470 AshTestBase::TearDown(); 1502 AshTestBase::TearDown();
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1612 1.25f, Shell::GetScreen()->GetPrimaryDisplay().device_scale_factor()); 1644 1.25f, Shell::GetScreen()->GetPrimaryDisplay().device_scale_factor());
1613 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); 1645 EXPECT_TRUE(IsTextSubpixelPositioningEnabled());
1614 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); 1646 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams());
1615 1647
1616 DisplayInfo::SetUse125DSFForUIScaling(false); 1648 DisplayInfo::SetUse125DSFForUIScaling(false);
1617 } 1649 }
1618 1650
1619 #endif // OS_CHROMEOS 1651 #endif // OS_CHROMEOS
1620 1652
1621 } // namespace ash 1653 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_manager.cc ('k') | ash/display/mirror_window_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698