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

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

Issue 1838833002: Move DisplayLayout and DisplayLayoutBuilder From ash To ui/display (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@screenwinmove
Patch Set: Fix comment Created 4 years, 8 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/display_util.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/accelerators/accelerator_commands.h" 7 #include "ash/accelerators/accelerator_commands.h"
8 #include "ash/ash_switches.h" 8 #include "ash/ash_switches.h"
9 #include "ash/display/display_info.h" 9 #include "ash/display/display_info.h"
10 #include "ash/display/display_layout_builder.h"
11 #include "ash/display/display_layout_store.h" 10 #include "ash/display/display_layout_store.h"
12 #include "ash/display/display_util.h" 11 #include "ash/display/display_util.h"
13 #include "ash/display/mirror_window_controller.h" 12 #include "ash/display/mirror_window_controller.h"
14 #include "ash/display/window_tree_host_manager.h" 13 #include "ash/display/window_tree_host_manager.h"
15 #include "ash/screen_util.h" 14 #include "ash/screen_util.h"
16 #include "ash/shell.h" 15 #include "ash/shell.h"
17 #include "ash/test/ash_test_base.h" 16 #include "ash/test/ash_test_base.h"
18 #include "ash/test/display_manager_test_api.h" 17 #include "ash/test/display_manager_test_api.h"
19 #include "ash/test/mirror_window_test_api.h" 18 #include "ash/test/mirror_window_test_api.h"
20 #include "ash/wm/window_state.h" 19 #include "ash/wm/window_state.h"
21 #include "base/command_line.h" 20 #include "base/command_line.h"
22 #include "base/format_macros.h" 21 #include "base/format_macros.h"
23 #include "base/strings/string_number_conversions.h" 22 #include "base/strings/string_number_conversions.h"
24 #include "base/strings/stringprintf.h" 23 #include "base/strings/stringprintf.h"
25 #include "ui/aura/client/aura_constants.h" 24 #include "ui/aura/client/aura_constants.h"
26 #include "ui/aura/env.h" 25 #include "ui/aura/env.h"
27 #include "ui/aura/window_observer.h" 26 #include "ui/aura/window_observer.h"
28 #include "ui/aura/window_tree_host.h" 27 #include "ui/aura/window_tree_host.h"
28 #include "ui/display/manager/display_layout_builder.h"
29 #include "ui/events/test/event_generator.h" 29 #include "ui/events/test/event_generator.h"
30 #include "ui/gfx/display.h" 30 #include "ui/gfx/display.h"
31 #include "ui/gfx/display_observer.h" 31 #include "ui/gfx/display_observer.h"
32 #include "ui/gfx/font_render_params.h" 32 #include "ui/gfx/font_render_params.h"
33 #include "ui/gfx/screen.h" 33 #include "ui/gfx/screen.h"
34 34
35 namespace ash { 35 namespace ash {
36 36
37 using std::vector; 37 using std::vector;
38 using std::string; 38 using std::string;
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 // Verify calling ReconfigureDisplays doesn't change anything. 307 // Verify calling ReconfigureDisplays doesn't change anything.
308 display_manager()->ReconfigureDisplays(); 308 display_manager()->ReconfigureDisplays();
309 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); 309 EXPECT_EQ(3U, display_manager()->GetNumDisplays());
310 EXPECT_EQ("0,0 640x480", 310 EXPECT_EQ("0,0 640x480",
311 display_manager()->GetDisplayAt(0).bounds().ToString()); 311 display_manager()->GetDisplayAt(0).bounds().ToString());
312 EXPECT_EQ("640,0 320x200", 312 EXPECT_EQ("640,0 320x200",
313 display_manager()->GetDisplayAt(1).bounds().ToString()); 313 display_manager()->GetDisplayAt(1).bounds().ToString());
314 EXPECT_EQ("960,0 400x300", 314 EXPECT_EQ("960,0 400x300",
315 display_manager()->GetDisplayAt(2).bounds().ToString()); 315 display_manager()->GetDisplayAt(2).bounds().ToString());
316 316
317 DisplayPlacement default_placement(DisplayPlacement::BOTTOM, 10); 317 display::DisplayPlacement default_placement(display::DisplayPlacement::BOTTOM,
318 10);
318 display_manager()->layout_store()->SetDefaultDisplayPlacement( 319 display_manager()->layout_store()->SetDefaultDisplayPlacement(
319 default_placement); 320 default_placement);
320 321
321 // Test with new displays. 322 // Test with new displays.
322 UpdateDisplay("640x480"); 323 UpdateDisplay("640x480");
323 UpdateDisplay("640x480,320x200,400x300"); 324 UpdateDisplay("640x480,320x200,400x300");
324 325
325 EXPECT_EQ("0,0 640x480", 326 EXPECT_EQ("0,0 640x480",
326 display_manager()->GetDisplayAt(0).bounds().ToString()); 327 display_manager()->GetDisplayAt(0).bounds().ToString());
327 EXPECT_EQ("10,480 320x200", 328 EXPECT_EQ("10,480 320x200",
328 display_manager()->GetDisplayAt(1).bounds().ToString()); 329 display_manager()->GetDisplayAt(1).bounds().ToString());
329 EXPECT_EQ("20,680 400x300", 330 EXPECT_EQ("20,680 400x300",
330 display_manager()->GetDisplayAt(2).bounds().ToString()); 331 display_manager()->GetDisplayAt(2).bounds().ToString());
331 } 332 }
332 333
333 TEST_F(DisplayManagerTest, LayoutMorethanThreeDisplaysTest) { 334 TEST_F(DisplayManagerTest, LayoutMorethanThreeDisplaysTest) {
334 if (!SupportsMultipleDisplays()) 335 if (!SupportsMultipleDisplays())
335 return; 336 return;
336 337
337 int64_t primary_id = gfx::Screen::GetScreen()->GetPrimaryDisplay().id(); 338 int64_t primary_id = gfx::Screen::GetScreen()->GetPrimaryDisplay().id();
338 DisplayIdList list = ash::test::CreateDisplayIdListN( 339 display::DisplayIdList list = ash::test::CreateDisplayIdListN(
339 3, primary_id, primary_id + 1, primary_id + 2); 340 3, primary_id, primary_id + 1, primary_id + 2);
340 { 341 {
341 // Layout: [2] 342 // Layout: [2]
342 // [1][P] 343 // [1][P]
343 DisplayLayoutBuilder builder(primary_id); 344 display::DisplayLayoutBuilder builder(primary_id);
344 builder.AddDisplayPlacement(list[1], primary_id, DisplayPlacement::LEFT, 345 builder.AddDisplayPlacement(list[1], primary_id,
345 10); 346 display::DisplayPlacement::LEFT, 10);
346 builder.AddDisplayPlacement(list[2], list[1], DisplayPlacement::TOP, 10); 347 builder.AddDisplayPlacement(list[2], list[1],
348 display::DisplayPlacement::TOP, 10);
347 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( 349 display_manager()->layout_store()->RegisterLayoutForDisplayIdList(
348 list, builder.Build()); 350 list, builder.Build());
349 351
350 UpdateDisplay("640x480,320x200,400x300"); 352 UpdateDisplay("640x480,320x200,400x300");
351 353
352 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); 354 EXPECT_EQ(3U, display_manager()->GetNumDisplays());
353 355
354 EXPECT_EQ("0,0 640x480", 356 EXPECT_EQ("0,0 640x480",
355 display_manager()->GetDisplayAt(0).bounds().ToString()); 357 display_manager()->GetDisplayAt(0).bounds().ToString());
356 EXPECT_EQ("-320,10 320x200", 358 EXPECT_EQ("-320,10 320x200",
357 display_manager()->GetDisplayAt(1).bounds().ToString()); 359 display_manager()->GetDisplayAt(1).bounds().ToString());
358 EXPECT_EQ("-310,-290 400x300", 360 EXPECT_EQ("-310,-290 400x300",
359 display_manager()->GetDisplayAt(2).bounds().ToString()); 361 display_manager()->GetDisplayAt(2).bounds().ToString());
360 } 362 }
361 { 363 {
362 // Layout: [1] 364 // Layout: [1]
363 // [P][2] 365 // [P][2]
364 DisplayLayoutBuilder builder(primary_id); 366 display::DisplayLayoutBuilder builder(primary_id);
365 builder.AddDisplayPlacement(list[1], primary_id, DisplayPlacement::TOP, 10); 367 builder.AddDisplayPlacement(list[1], primary_id,
366 builder.AddDisplayPlacement(list[2], primary_id, DisplayPlacement::RIGHT, 368 display::DisplayPlacement::TOP, 10);
367 10); 369 builder.AddDisplayPlacement(list[2], primary_id,
370 display::DisplayPlacement::RIGHT, 10);
368 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( 371 display_manager()->layout_store()->RegisterLayoutForDisplayIdList(
369 list, builder.Build()); 372 list, builder.Build());
370 373
371 UpdateDisplay("640x480,320x200,400x300"); 374 UpdateDisplay("640x480,320x200,400x300");
372 375
373 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); 376 EXPECT_EQ(3U, display_manager()->GetNumDisplays());
374 377
375 EXPECT_EQ("0,0 640x480", 378 EXPECT_EQ("0,0 640x480",
376 display_manager()->GetDisplayAt(0).bounds().ToString()); 379 display_manager()->GetDisplayAt(0).bounds().ToString());
377 EXPECT_EQ("10,-200 320x200", 380 EXPECT_EQ("10,-200 320x200",
378 display_manager()->GetDisplayAt(1).bounds().ToString()); 381 display_manager()->GetDisplayAt(1).bounds().ToString());
379 EXPECT_EQ("640,10 400x300", 382 EXPECT_EQ("640,10 400x300",
380 display_manager()->GetDisplayAt(2).bounds().ToString()); 383 display_manager()->GetDisplayAt(2).bounds().ToString());
381 } 384 }
382 { 385 {
383 // Layout: [P] 386 // Layout: [P]
384 // [2] 387 // [2]
385 // [1] 388 // [1]
386 DisplayLayoutBuilder builder(primary_id); 389 display::DisplayLayoutBuilder builder(primary_id);
387 builder.AddDisplayPlacement(list[1], list[2], DisplayPlacement::BOTTOM, 10); 390 builder.AddDisplayPlacement(list[1], list[2],
388 builder.AddDisplayPlacement(list[2], primary_id, DisplayPlacement::BOTTOM, 391 display::DisplayPlacement::BOTTOM, 10);
389 10); 392 builder.AddDisplayPlacement(list[2], primary_id,
393 display::DisplayPlacement::BOTTOM, 10);
390 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( 394 display_manager()->layout_store()->RegisterLayoutForDisplayIdList(
391 list, builder.Build()); 395 list, builder.Build());
392 396
393 UpdateDisplay("640x480,320x200,400x300"); 397 UpdateDisplay("640x480,320x200,400x300");
394 398
395 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); 399 EXPECT_EQ(3U, display_manager()->GetNumDisplays());
396 400
397 EXPECT_EQ("0,0 640x480", 401 EXPECT_EQ("0,0 640x480",
398 display_manager()->GetDisplayAt(0).bounds().ToString()); 402 display_manager()->GetDisplayAt(0).bounds().ToString());
399 EXPECT_EQ("20,780 320x200", 403 EXPECT_EQ("20,780 320x200",
400 display_manager()->GetDisplayAt(1).bounds().ToString()); 404 display_manager()->GetDisplayAt(1).bounds().ToString());
401 EXPECT_EQ("10,480 400x300", 405 EXPECT_EQ("10,480 400x300",
402 display_manager()->GetDisplayAt(2).bounds().ToString()); 406 display_manager()->GetDisplayAt(2).bounds().ToString());
403 } 407 }
404 408
405 { 409 {
406 list = ash::test::CreateDisplayIdListN(5, primary_id, primary_id + 1, 410 list = ash::test::CreateDisplayIdListN(5, primary_id, primary_id + 1,
407 primary_id + 2, primary_id + 3, 411 primary_id + 2, primary_id + 3,
408 primary_id + 4); 412 primary_id + 4);
409 // Layout: [P][2] 413 // Layout: [P][2]
410 // [3][4] 414 // [3][4]
411 // [1] 415 // [1]
412 DisplayLayoutBuilder builder(primary_id); 416 display::DisplayLayoutBuilder builder(primary_id);
413 builder.AddDisplayPlacement(list[2], primary_id, DisplayPlacement::RIGHT, 417 builder.AddDisplayPlacement(list[2], primary_id,
414 10); 418 display::DisplayPlacement::RIGHT, 10);
415 builder.AddDisplayPlacement(list[1], list[3], DisplayPlacement::BOTTOM, 10); 419 builder.AddDisplayPlacement(list[1], list[3],
416 builder.AddDisplayPlacement(list[3], list[4], DisplayPlacement::LEFT, 10); 420 display::DisplayPlacement::BOTTOM, 10);
417 builder.AddDisplayPlacement(list[4], primary_id, DisplayPlacement::BOTTOM, 421 builder.AddDisplayPlacement(list[3], list[4],
418 10); 422 display::DisplayPlacement::LEFT, 10);
423 builder.AddDisplayPlacement(list[4], primary_id,
424 display::DisplayPlacement::BOTTOM, 10);
419 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( 425 display_manager()->layout_store()->RegisterLayoutForDisplayIdList(
420 list, builder.Build()); 426 list, builder.Build());
421 427
422 UpdateDisplay("640x480,320x200,400x300,300x200,200x100"); 428 UpdateDisplay("640x480,320x200,400x300,300x200,200x100");
423 429
424 EXPECT_EQ(5U, display_manager()->GetNumDisplays()); 430 EXPECT_EQ(5U, display_manager()->GetNumDisplays());
425 431
426 EXPECT_EQ("0,0 640x480", 432 EXPECT_EQ("0,0 640x480",
427 display_manager()->GetDisplayAt(0).bounds().ToString()); 433 display_manager()->GetDisplayAt(0).bounds().ToString());
428 // 2nd is right of the primary. 434 // 2nd is right of the primary.
(...skipping 1134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 EXPECT_EQ(2U, display_manager->num_connected_displays()); 1569 EXPECT_EQ(2U, display_manager->num_connected_displays());
1564 1570
1565 UpdateDisplay("500x500,500x500"); 1571 UpdateDisplay("500x500,500x500");
1566 EXPECT_FALSE(display_manager->GetCurrentDisplayLayout().mirrored); 1572 EXPECT_FALSE(display_manager->GetCurrentDisplayLayout().mirrored);
1567 EXPECT_EQ(2, gfx::Screen::GetScreen()->GetNumDisplays()); 1573 EXPECT_EQ(2, gfx::Screen::GetScreen()->GetNumDisplays());
1568 EXPECT_EQ(2U, display_manager->num_connected_displays()); 1574 EXPECT_EQ(2U, display_manager->num_connected_displays());
1569 } 1575 }
1570 1576
1571 TEST_F(DisplayManagerTest, InvertLayout) { 1577 TEST_F(DisplayManagerTest, InvertLayout) {
1572 EXPECT_EQ("left, 0", 1578 EXPECT_EQ("left, 0",
1573 DisplayPlacement(DisplayPlacement::RIGHT, 0).Swap().ToString()); 1579 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 0)
1580 .Swap()
1581 .ToString());
1574 EXPECT_EQ("left, -100", 1582 EXPECT_EQ("left, -100",
1575 DisplayPlacement(DisplayPlacement::RIGHT, 100).Swap().ToString()); 1583 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 100)
1584 .Swap()
1585 .ToString());
1576 EXPECT_EQ("left, 50", 1586 EXPECT_EQ("left, 50",
1577 DisplayPlacement(DisplayPlacement::RIGHT, -50).Swap().ToString()); 1587 display::DisplayPlacement(display::DisplayPlacement::RIGHT, -50)
1588 .Swap()
1589 .ToString());
1578 1590
1579 EXPECT_EQ("right, 0", 1591 EXPECT_EQ("right, 0",
1580 DisplayPlacement(DisplayPlacement::LEFT, 0).Swap().ToString()); 1592 display::DisplayPlacement(display::DisplayPlacement::LEFT, 0)
1593 .Swap()
1594 .ToString());
1581 EXPECT_EQ("right, -90", 1595 EXPECT_EQ("right, -90",
1582 DisplayPlacement(DisplayPlacement::LEFT, 90).Swap().ToString()); 1596 display::DisplayPlacement(display::DisplayPlacement::LEFT, 90)
1597 .Swap()
1598 .ToString());
1583 EXPECT_EQ("right, 60", 1599 EXPECT_EQ("right, 60",
1584 DisplayPlacement(DisplayPlacement::LEFT, -60).Swap().ToString()); 1600 display::DisplayPlacement(display::DisplayPlacement::LEFT, -60)
1601 .Swap()
1602 .ToString());
1585 1603
1586 EXPECT_EQ("bottom, 0", 1604 EXPECT_EQ("bottom, 0",
1587 DisplayPlacement(DisplayPlacement::TOP, 0).Swap().ToString()); 1605 display::DisplayPlacement(display::DisplayPlacement::TOP, 0)
1606 .Swap()
1607 .ToString());
1588 EXPECT_EQ("bottom, -80", 1608 EXPECT_EQ("bottom, -80",
1589 DisplayPlacement(DisplayPlacement::TOP, 80).Swap().ToString()); 1609 display::DisplayPlacement(display::DisplayPlacement::TOP, 80)
1610 .Swap()
1611 .ToString());
1590 EXPECT_EQ("bottom, 70", 1612 EXPECT_EQ("bottom, 70",
1591 DisplayPlacement(DisplayPlacement::TOP, -70).Swap().ToString()); 1613 display::DisplayPlacement(display::DisplayPlacement::TOP, -70)
1614 .Swap()
1615 .ToString());
1592 1616
1593 EXPECT_EQ("top, 0", 1617 EXPECT_EQ("top, 0",
1594 DisplayPlacement(DisplayPlacement::BOTTOM, 0).Swap().ToString()); 1618 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, 0)
1619 .Swap()
1620 .ToString());
1595 EXPECT_EQ("top, -70", 1621 EXPECT_EQ("top, -70",
1596 DisplayPlacement(DisplayPlacement::BOTTOM, 70).Swap().ToString()); 1622 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, 70)
1623 .Swap()
1624 .ToString());
1597 EXPECT_EQ("top, 80", 1625 EXPECT_EQ("top, 80",
1598 DisplayPlacement(DisplayPlacement::BOTTOM, -80).Swap().ToString()); 1626 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, -80)
1627 .Swap()
1628 .ToString());
1599 } 1629 }
1600 1630
1601 TEST_F(DisplayManagerTest, NotifyPrimaryChange) { 1631 TEST_F(DisplayManagerTest, NotifyPrimaryChange) {
1602 if (!SupportsMultipleDisplays()) 1632 if (!SupportsMultipleDisplays())
1603 return; 1633 return;
1604 UpdateDisplay("500x500,500x500"); 1634 UpdateDisplay("500x500,500x500");
1605 test::SwapPrimaryDisplay(); 1635 test::SwapPrimaryDisplay();
1606 reset(); 1636 reset();
1607 UpdateDisplay("500x500"); 1637 UpdateDisplay("500x500");
1608 EXPECT_FALSE(changed_metrics() & gfx::DisplayObserver::DISPLAY_METRIC_BOUNDS); 1638 EXPECT_FALSE(changed_metrics() & gfx::DisplayObserver::DISPLAY_METRIC_BOUNDS);
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 display_info_list.push_back(d2); 1789 display_info_list.push_back(d2);
1760 display_manager()->OnNativeDisplaysChanged(display_info_list); 1790 display_manager()->OnNativeDisplaysChanged(display_info_list);
1761 ASSERT_TRUE(display_manager()->IsInMirrorMode()); 1791 ASSERT_TRUE(display_manager()->IsInMirrorMode());
1762 display_manager()->SetUnifiedDesktopEnabled(true); 1792 display_manager()->SetUnifiedDesktopEnabled(true);
1763 EXPECT_TRUE(display_manager()->IsInMirrorMode()); 1793 EXPECT_TRUE(display_manager()->IsInMirrorMode());
1764 1794
1765 // The display manager automaticaclly switches to software mirroring 1795 // The display manager automaticaclly switches to software mirroring
1766 // if the displays are configured to use mirroring when running on desktop. 1796 // if the displays are configured to use mirroring when running on desktop.
1767 // This is a workdaround to force the display manager to forget 1797 // This is a workdaround to force the display manager to forget
1768 // the mirroing layout. 1798 // the mirroing layout.
1769 DisplayIdList list = test::CreateDisplayIdList2(1, 2); 1799 display::DisplayIdList list = test::CreateDisplayIdList2(1, 2);
1770 DisplayLayoutBuilder builder( 1800 display::DisplayLayoutBuilder builder(
1771 display_manager()->layout_store()->GetRegisteredDisplayLayout(list)); 1801 display_manager()->layout_store()->GetRegisteredDisplayLayout(list));
1772 builder.SetMirrored(false); 1802 builder.SetMirrored(false);
1773 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( 1803 display_manager()->layout_store()->RegisterLayoutForDisplayIdList(
1774 list, builder.Build()); 1804 list, builder.Build());
1775 1805
1776 // Exit from hardware mirroring. 1806 // Exit from hardware mirroring.
1777 d2.SetBounds(gfx::Rect(0, 500, 500, 500)); 1807 d2.SetBounds(gfx::Rect(0, 500, 500, 500));
1778 display_info_list.clear(); 1808 display_info_list.clear();
1779 display_info_list.push_back(d1); 1809 display_info_list.push_back(d1);
1780 display_info_list.push_back(d2); 1810 display_info_list.push_back(d2);
1781 display_manager()->OnNativeDisplaysChanged(display_info_list); 1811 display_manager()->OnNativeDisplaysChanged(display_info_list);
1782 EXPECT_FALSE(display_manager()->IsInMirrorMode()); 1812 EXPECT_FALSE(display_manager()->IsInMirrorMode());
1783 EXPECT_TRUE(display_manager()->IsInUnifiedMode()); 1813 EXPECT_TRUE(display_manager()->IsInUnifiedMode());
1784 } 1814 }
1785 1815
1786 TEST_F(DisplayManagerTest, UnifiedDesktopEnabledWithExtended) { 1816 TEST_F(DisplayManagerTest, UnifiedDesktopEnabledWithExtended) {
1787 if (!SupportsMultipleDisplays()) 1817 if (!SupportsMultipleDisplays())
1788 return; 1818 return;
1789 // Don't check root window destruction in unified mode. 1819 // Don't check root window destruction in unified mode.
1790 Shell::GetPrimaryRootWindow()->RemoveObserver(this); 1820 Shell::GetPrimaryRootWindow()->RemoveObserver(this);
1791 1821
1792 UpdateDisplay("400x500,300x200"); 1822 UpdateDisplay("400x500,300x200");
1793 DisplayIdList list = display_manager()->GetCurrentDisplayIdList(); 1823 display::DisplayIdList list = display_manager()->GetCurrentDisplayIdList();
1794 DisplayLayoutBuilder builder( 1824 display::DisplayLayoutBuilder builder(
1795 display_manager()->layout_store()->GetRegisteredDisplayLayout(list)); 1825 display_manager()->layout_store()->GetRegisteredDisplayLayout(list));
1796 builder.SetDefaultUnified(false); 1826 builder.SetDefaultUnified(false);
1797 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( 1827 display_manager()->layout_store()->RegisterLayoutForDisplayIdList(
1798 list, builder.Build()); 1828 list, builder.Build());
1799 display_manager()->SetUnifiedDesktopEnabled(true); 1829 display_manager()->SetUnifiedDesktopEnabled(true);
1800 EXPECT_FALSE(display_manager()->IsInUnifiedMode()); 1830 EXPECT_FALSE(display_manager()->IsInUnifiedMode());
1801 } 1831 }
1802 1832
1803 TEST_F(DisplayManagerTest, UnifiedDesktopWith2xDSF) { 1833 TEST_F(DisplayManagerTest, UnifiedDesktopWith2xDSF) {
1804 if (!SupportsMultipleDisplays()) 1834 if (!SupportsMultipleDisplays())
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 DisplayInfo invalid_info; 2034 DisplayInfo invalid_info;
2005 EXPECT_FALSE(GetDisplayModeForNextUIScale(invalid_info, true, &mode)); 2035 EXPECT_FALSE(GetDisplayModeForNextUIScale(invalid_info, true, &mode));
2006 EXPECT_FALSE(GetDisplayModeForNextUIScale(invalid_info, false, &mode)); 2036 EXPECT_FALSE(GetDisplayModeForNextUIScale(invalid_info, false, &mode));
2007 EXPECT_FALSE(SetDisplayUIScale(gfx::Display::kInvalidDisplayID, 1.0f)); 2037 EXPECT_FALSE(SetDisplayUIScale(gfx::Display::kInvalidDisplayID, 1.0f));
2008 } 2038 }
2009 2039
2010 // Make sure that bad layout information is ignored and does not crash. 2040 // Make sure that bad layout information is ignored and does not crash.
2011 TEST_F(DisplayManagerTest, DontRegisterBadConfig) { 2041 TEST_F(DisplayManagerTest, DontRegisterBadConfig) {
2012 if (!SupportsMultipleDisplays()) 2042 if (!SupportsMultipleDisplays())
2013 return; 2043 return;
2014 DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2); 2044 display::DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2);
2015 DisplayLayoutBuilder builder(1); 2045 display::DisplayLayoutBuilder builder(1);
2016 builder.AddDisplayPlacement(2, 1, ash::DisplayPlacement::LEFT, 0); 2046 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0);
2017 builder.AddDisplayPlacement(3, 1, ash::DisplayPlacement::BOTTOM, 0); 2047 builder.AddDisplayPlacement(3, 1, display::DisplayPlacement::BOTTOM, 0);
2018 2048
2019 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( 2049 display_manager()->layout_store()->RegisterLayoutForDisplayIdList(
2020 list, builder.Build()); 2050 list, builder.Build());
2021 } 2051 }
2022 2052
2023 class ScreenShutdownTest : public test::AshTestBase { 2053 class ScreenShutdownTest : public test::AshTestBase {
2024 public: 2054 public:
2025 ScreenShutdownTest() { 2055 ScreenShutdownTest() {
2026 } 2056 }
2027 ~ScreenShutdownTest() override {} 2057 ~ScreenShutdownTest() override {}
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
2192 info.GetRotation(gfx::Display::ROTATION_SOURCE_USER)); 2222 info.GetRotation(gfx::Display::ROTATION_SOURCE_USER));
2193 EXPECT_EQ(gfx::Display::ROTATE_90, 2223 EXPECT_EQ(gfx::Display::ROTATE_90,
2194 info.GetRotation(gfx::Display::ROTATION_SOURCE_ACTIVE)); 2224 info.GetRotation(gfx::Display::ROTATION_SOURCE_ACTIVE));
2195 } 2225 }
2196 2226
2197 TEST_F(DisplayManagerTest, RejectInvalidLayoutData) { 2227 TEST_F(DisplayManagerTest, RejectInvalidLayoutData) {
2198 DisplayLayoutStore* layout_store = display_manager()->layout_store(); 2228 DisplayLayoutStore* layout_store = display_manager()->layout_store();
2199 int64_t id1 = 10001; 2229 int64_t id1 = 10001;
2200 int64_t id2 = 10002; 2230 int64_t id2 = 10002;
2201 ASSERT_TRUE(CompareDisplayIds(id1, id2)); 2231 ASSERT_TRUE(CompareDisplayIds(id1, id2));
2202 DisplayLayoutBuilder good_builder(id1); 2232 display::DisplayLayoutBuilder good_builder(id1);
2203 good_builder.SetSecondaryPlacement(id2, DisplayPlacement::LEFT, 0); 2233 good_builder.SetSecondaryPlacement(id2, display::DisplayPlacement::LEFT, 0);
2204 scoped_ptr<DisplayLayout> good(good_builder.Build()); 2234 scoped_ptr<display::DisplayLayout> good(good_builder.Build());
2205 2235
2206 DisplayIdList good_list = test::CreateDisplayIdList2(id1, id2); 2236 display::DisplayIdList good_list = test::CreateDisplayIdList2(id1, id2);
2207 layout_store->RegisterLayoutForDisplayIdList(good_list, good->Copy()); 2237 layout_store->RegisterLayoutForDisplayIdList(good_list, good->Copy());
2208 2238
2209 DisplayLayoutBuilder bad(id1); 2239 display::DisplayLayoutBuilder bad(id1);
2210 bad.SetSecondaryPlacement(id2, DisplayPlacement::BOTTOM, 0); 2240 bad.SetSecondaryPlacement(id2, display::DisplayPlacement::BOTTOM, 0);
2211 2241
2212 DisplayIdList bad_list(2); 2242 display::DisplayIdList bad_list(2);
2213 bad_list[0] = id2; 2243 bad_list[0] = id2;
2214 bad_list[1] = id1; 2244 bad_list[1] = id1;
2215 layout_store->RegisterLayoutForDisplayIdList(bad_list, bad.Build()); 2245 layout_store->RegisterLayoutForDisplayIdList(bad_list, bad.Build());
2216 2246
2217 EXPECT_EQ(good->ToString(), 2247 EXPECT_EQ(good->ToString(),
2218 layout_store->GetRegisteredDisplayLayout(good_list).ToString()); 2248 layout_store->GetRegisteredDisplayLayout(good_list).ToString());
2219 } 2249 }
2220 2250
2221 TEST_F(DisplayManagerTest, GuessDisplayIdFieldsInDisplayLayout) { 2251 TEST_F(DisplayManagerTest, GuessDisplayIdFieldsInDisplayLayout) {
2222 int64_t id1 = 10001; 2252 int64_t id1 = 10001;
2223 int64_t id2 = 10002; 2253 int64_t id2 = 10002;
2224 2254
2225 scoped_ptr<DisplayLayout> old_layout(new DisplayLayout); 2255 scoped_ptr<display::DisplayLayout> old_layout(new display::DisplayLayout);
2226 old_layout->placement_list.emplace_back(DisplayPlacement::BOTTOM, 0); 2256 old_layout->placement_list.emplace_back(display::DisplayPlacement::BOTTOM, 0);
2227 old_layout->primary_id = id1; 2257 old_layout->primary_id = id1;
2228 2258
2229 DisplayLayoutStore* layout_store = display_manager()->layout_store(); 2259 DisplayLayoutStore* layout_store = display_manager()->layout_store();
2230 DisplayIdList list = test::CreateDisplayIdList2(id1, id2); 2260 display::DisplayIdList list = test::CreateDisplayIdList2(id1, id2);
2231 layout_store->RegisterLayoutForDisplayIdList(list, std::move(old_layout)); 2261 layout_store->RegisterLayoutForDisplayIdList(list, std::move(old_layout));
2232 const DisplayLayout& stored = layout_store->GetRegisteredDisplayLayout(list); 2262 const display::DisplayLayout& stored =
2263 layout_store->GetRegisteredDisplayLayout(list);
2233 2264
2234 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); 2265 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id);
2235 EXPECT_EQ(id2, stored.placement_list[0].display_id); 2266 EXPECT_EQ(id2, stored.placement_list[0].display_id);
2236 } 2267 }
2237 2268
2238 #endif // OS_CHROMEOS 2269 #endif // OS_CHROMEOS
2239 2270
2240 } // namespace ash 2271 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_manager.cc ('k') | ash/display/display_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698