OLD | NEW |
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_aura.h" | 7 #include "ash/accelerators/accelerator_commands_aura.h" |
8 #include "ash/common/material_design/material_design_controller.h" | 8 #include "ash/common/material_design/material_design_controller.h" |
9 #include "ash/common/wm/window_state.h" | 9 #include "ash/common/wm/window_state.h" |
10 #include "ash/display/display_configuration_controller.h" | 10 #include "ash/display/display_configuration_controller.h" |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 AshMDTestBase::SetUp(); | 69 AshMDTestBase::SetUp(); |
70 display::Screen::GetScreen()->AddObserver(this); | 70 display::Screen::GetScreen()->AddObserver(this); |
71 Shell::GetPrimaryRootWindow()->AddObserver(this); | 71 Shell::GetPrimaryRootWindow()->AddObserver(this); |
72 } | 72 } |
73 void TearDown() override { | 73 void TearDown() override { |
74 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 74 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
75 display::Screen::GetScreen()->RemoveObserver(this); | 75 display::Screen::GetScreen()->RemoveObserver(this); |
76 AshMDTestBase::TearDown(); | 76 AshMDTestBase::TearDown(); |
77 } | 77 } |
78 | 78 |
79 DisplayManager* display_manager() { | |
80 return Shell::GetInstance()->display_manager(); | |
81 } | |
82 const vector<display::Display>& changed() const { return changed_; } | 79 const vector<display::Display>& changed() const { return changed_; } |
83 const vector<display::Display>& added() const { return added_; } | 80 const vector<display::Display>& added() const { return added_; } |
84 uint32_t changed_metrics() const { return changed_metrics_; } | 81 uint32_t changed_metrics() const { return changed_metrics_; } |
85 | 82 |
86 string GetCountSummary() const { | 83 string GetCountSummary() const { |
87 return StringPrintf("%" PRIuS " %" PRIuS " %" PRIuS, changed_.size(), | 84 return StringPrintf("%" PRIuS " %" PRIuS " %" PRIuS, changed_.size(), |
88 added_.size(), removed_count_); | 85 added_.size(), removed_count_); |
89 } | 86 } |
90 | 87 |
91 void reset() { | 88 void reset() { |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 EXPECT_EQ(1u, changed_displays.size()); | 495 EXPECT_EQ(1u, changed_displays.size()); |
499 EXPECT_EQ(display_info2.id(), changed_displays[0].id()); | 496 EXPECT_EQ(display_info2.id(), changed_displays[0].id()); |
500 EXPECT_EQ("0,0 500x500", GetDisplayInfoAt(0).bounds_in_native().ToString()); | 497 EXPECT_EQ("0,0 500x500", GetDisplayInfoAt(0).bounds_in_native().ToString()); |
501 display::ManagedDisplayInfo updated_display_info2 = GetDisplayInfoAt(1); | 498 display::ManagedDisplayInfo updated_display_info2 = GetDisplayInfoAt(1); |
502 EXPECT_EQ("0,501 400x400", | 499 EXPECT_EQ("0,501 400x400", |
503 updated_display_info2.bounds_in_native().ToString()); | 500 updated_display_info2.bounds_in_native().ToString()); |
504 EXPECT_EQ("378x376", updated_display_info2.size_in_pixel().ToString()); | 501 EXPECT_EQ("378x376", updated_display_info2.size_in_pixel().ToString()); |
505 EXPECT_EQ("13,12,11,10", | 502 EXPECT_EQ("13,12,11,10", |
506 updated_display_info2.overscan_insets_in_dip().ToString()); | 503 updated_display_info2.overscan_insets_in_dip().ToString()); |
507 EXPECT_EQ("500,0 378x376", | 504 EXPECT_EQ("500,0 378x376", |
508 ScreenUtil::GetSecondaryDisplay().bounds().ToString()); | 505 display_manager()->GetSecondaryDisplay().bounds().ToString()); |
509 | 506 |
510 // Make sure that SetOverscanInsets() is idempotent. | 507 // Make sure that SetOverscanInsets() is idempotent. |
511 display_manager()->SetOverscanInsets(display_info1.id(), gfx::Insets()); | 508 display_manager()->SetOverscanInsets(display_info1.id(), gfx::Insets()); |
512 display_manager()->SetOverscanInsets(display_info2.id(), | 509 display_manager()->SetOverscanInsets(display_info2.id(), |
513 gfx::Insets(13, 12, 11, 10)); | 510 gfx::Insets(13, 12, 11, 10)); |
514 EXPECT_EQ("0,0 500x500", GetDisplayInfoAt(0).bounds_in_native().ToString()); | 511 EXPECT_EQ("0,0 500x500", GetDisplayInfoAt(0).bounds_in_native().ToString()); |
515 updated_display_info2 = GetDisplayInfoAt(1); | 512 updated_display_info2 = GetDisplayInfoAt(1); |
516 EXPECT_EQ("0,501 400x400", | 513 EXPECT_EQ("0,501 400x400", |
517 updated_display_info2.bounds_in_native().ToString()); | 514 updated_display_info2.bounds_in_native().ToString()); |
518 EXPECT_EQ("378x376", updated_display_info2.size_in_pixel().ToString()); | 515 EXPECT_EQ("378x376", updated_display_info2.size_in_pixel().ToString()); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 EXPECT_EQ("0,501 400x400", | 552 EXPECT_EQ("0,501 400x400", |
556 updated_display_info2.bounds_in_native().ToString()); | 553 updated_display_info2.bounds_in_native().ToString()); |
557 EXPECT_EQ("376x380", updated_display_info2.size_in_pixel().ToString()); | 554 EXPECT_EQ("376x380", updated_display_info2.size_in_pixel().ToString()); |
558 EXPECT_EQ("4,5,6,7", | 555 EXPECT_EQ("4,5,6,7", |
559 updated_display_info2.overscan_insets_in_dip().ToString()); | 556 updated_display_info2.overscan_insets_in_dip().ToString()); |
560 EXPECT_EQ("8,10,12,14", | 557 EXPECT_EQ("8,10,12,14", |
561 updated_display_info2.GetOverscanInsetsInPixel().ToString()); | 558 updated_display_info2.GetOverscanInsetsInPixel().ToString()); |
562 | 559 |
563 // Make sure switching primary display applies the overscan offset only once. | 560 // Make sure switching primary display applies the overscan offset only once. |
564 ash::Shell::GetInstance()->window_tree_host_manager()->SetPrimaryDisplayId( | 561 ash::Shell::GetInstance()->window_tree_host_manager()->SetPrimaryDisplayId( |
565 ScreenUtil::GetSecondaryDisplay().id()); | 562 display_manager()->GetSecondaryDisplay().id()); |
566 EXPECT_EQ("-500,0 500x500", | 563 EXPECT_EQ("-500,0 500x500", |
567 ScreenUtil::GetSecondaryDisplay().bounds().ToString()); | 564 display_manager()->GetSecondaryDisplay().bounds().ToString()); |
568 EXPECT_EQ("0,0 500x500", GetDisplayInfo(ScreenUtil::GetSecondaryDisplay()) | 565 EXPECT_EQ("0,0 500x500", |
569 .bounds_in_native() | 566 GetDisplayInfo(display_manager()->GetSecondaryDisplay()) |
570 .ToString()); | 567 .bounds_in_native() |
| 568 .ToString()); |
571 EXPECT_EQ("0,501 400x400", | 569 EXPECT_EQ("0,501 400x400", |
572 GetDisplayInfo(display::Screen::GetScreen()->GetPrimaryDisplay()) | 570 GetDisplayInfo(display::Screen::GetScreen()->GetPrimaryDisplay()) |
573 .bounds_in_native() | 571 .bounds_in_native() |
574 .ToString()); | 572 .ToString()); |
575 EXPECT_EQ( | 573 EXPECT_EQ( |
576 "0,0 188x190", | 574 "0,0 188x190", |
577 display::Screen::GetScreen()->GetPrimaryDisplay().bounds().ToString()); | 575 display::Screen::GetScreen()->GetPrimaryDisplay().bounds().ToString()); |
578 | 576 |
579 // Make sure just moving the overscan area should property notify observers. | 577 // Make sure just moving the overscan area should property notify observers. |
580 UpdateDisplay("0+0-500x500"); | 578 UpdateDisplay("0+0-500x500"); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 | 645 |
648 display::ManagedDisplayInfo CreateDisplayInfo(int64_t id, | 646 display::ManagedDisplayInfo CreateDisplayInfo(int64_t id, |
649 const gfx::Rect& bounds) { | 647 const gfx::Rect& bounds) { |
650 display::ManagedDisplayInfo info(id, ToDisplayName(id), false); | 648 display::ManagedDisplayInfo info(id, ToDisplayName(id), false); |
651 info.SetBounds(bounds); | 649 info.SetBounds(bounds); |
652 return info; | 650 return info; |
653 } | 651 } |
654 | 652 |
655 TEST_P(DisplayManagerTest, TestNativeDisplaysChanged) { | 653 TEST_P(DisplayManagerTest, TestNativeDisplaysChanged) { |
656 const int64_t internal_display_id = | 654 const int64_t internal_display_id = |
657 test::DisplayManagerTestApi().SetFirstDisplayAsInternalDisplay(); | 655 test::DisplayManagerTestApi(display_manager()) |
| 656 .SetFirstDisplayAsInternalDisplay(); |
658 const int external_id = 10; | 657 const int external_id = 10; |
659 const int mirror_id = 11; | 658 const int mirror_id = 11; |
660 const int64_t invalid_id = display::Display::kInvalidDisplayID; | 659 const int64_t invalid_id = display::Display::kInvalidDisplayID; |
661 const display::ManagedDisplayInfo internal_display_info = | 660 const display::ManagedDisplayInfo internal_display_info = |
662 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); | 661 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); |
663 const display::ManagedDisplayInfo external_display_info = | 662 const display::ManagedDisplayInfo external_display_info = |
664 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); | 663 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); |
665 const display::ManagedDisplayInfo mirroring_display_info = | 664 const display::ManagedDisplayInfo mirroring_display_info = |
666 CreateDisplayInfo(mirror_id, gfx::Rect(0, 0, 500, 500)); | 665 CreateDisplayInfo(mirror_id, gfx::Rect(0, 0, 500, 500)); |
667 | 666 |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
819 | 818 |
820 // Make sure crash does not happen if add and remove happens at the same time. | 819 // Make sure crash does not happen if add and remove happens at the same time. |
821 // See: crbug.com/414394 | 820 // See: crbug.com/414394 |
822 TEST_P(DisplayManagerTest, DisplayAddRemoveAtTheSameTime) { | 821 TEST_P(DisplayManagerTest, DisplayAddRemoveAtTheSameTime) { |
823 if (!SupportsMultipleDisplays()) | 822 if (!SupportsMultipleDisplays()) |
824 return; | 823 return; |
825 | 824 |
826 UpdateDisplay("100+0-500x500,0+501-400x400"); | 825 UpdateDisplay("100+0-500x500,0+501-400x400"); |
827 | 826 |
828 const int64_t primary_id = WindowTreeHostManager::GetPrimaryDisplayId(); | 827 const int64_t primary_id = WindowTreeHostManager::GetPrimaryDisplayId(); |
829 const int64_t secondary_id = ScreenUtil::GetSecondaryDisplay().id(); | 828 const int64_t secondary_id = display_manager()->GetSecondaryDisplay().id(); |
830 | 829 |
831 display::ManagedDisplayInfo primary_info = | 830 display::ManagedDisplayInfo primary_info = |
832 display_manager()->GetDisplayInfo(primary_id); | 831 display_manager()->GetDisplayInfo(primary_id); |
833 display::ManagedDisplayInfo secondary_info = | 832 display::ManagedDisplayInfo secondary_info = |
834 display_manager()->GetDisplayInfo(secondary_id); | 833 display_manager()->GetDisplayInfo(secondary_id); |
835 | 834 |
836 // An id which is different from primary and secondary. | 835 // An id which is different from primary and secondary. |
837 const int64_t third_id = secondary_id + 1; | 836 const int64_t third_id = secondary_id + 1; |
838 | 837 |
839 display::ManagedDisplayInfo third_info = | 838 display::ManagedDisplayInfo third_info = |
840 CreateDisplayInfo(third_id, gfx::Rect(0, 0, 600, 600)); | 839 CreateDisplayInfo(third_id, gfx::Rect(0, 0, 600, 600)); |
841 | 840 |
842 std::vector<display::ManagedDisplayInfo> display_info_list; | 841 std::vector<display::ManagedDisplayInfo> display_info_list; |
843 display_info_list.push_back(third_info); | 842 display_info_list.push_back(third_info); |
844 display_info_list.push_back(secondary_info); | 843 display_info_list.push_back(secondary_info); |
845 display_manager()->OnNativeDisplaysChanged(display_info_list); | 844 display_manager()->OnNativeDisplaysChanged(display_info_list); |
846 | 845 |
847 // Secondary seconary_id becomes the primary as it has smaller output index. | 846 // Secondary seconary_id becomes the primary as it has smaller output index. |
848 EXPECT_EQ(secondary_id, WindowTreeHostManager::GetPrimaryDisplayId()); | 847 EXPECT_EQ(secondary_id, WindowTreeHostManager::GetPrimaryDisplayId()); |
849 EXPECT_EQ(third_id, ScreenUtil::GetSecondaryDisplay().id()); | 848 EXPECT_EQ(third_id, display_manager()->GetSecondaryDisplay().id()); |
850 EXPECT_EQ("600x600", GetDisplayForId(third_id).size().ToString()); | 849 EXPECT_EQ("600x600", GetDisplayForId(third_id).size().ToString()); |
851 } | 850 } |
852 | 851 |
853 // TODO(scottmg): RootWindow doesn't get resized on Windows | 852 // TODO(scottmg): RootWindow doesn't get resized on Windows |
854 // Ash. http://crbug.com/247916. | 853 // Ash. http://crbug.com/247916. |
855 #if defined(OS_CHROMEOS) | 854 #if defined(OS_CHROMEOS) |
856 TEST_P(DisplayManagerTest, TestNativeDisplaysChangedNoInternal) { | 855 TEST_P(DisplayManagerTest, TestNativeDisplaysChangedNoInternal) { |
857 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 856 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
858 | 857 |
859 // Don't change the display info if all displays are disconnected. | 858 // Don't change the display info if all displays are disconnected. |
(...skipping 15 matching lines...) Expand all Loading... |
875 .size() | 874 .size() |
876 .ToString()); | 875 .ToString()); |
877 } | 876 } |
878 #endif // defined(OS_CHROMEOS) | 877 #endif // defined(OS_CHROMEOS) |
879 | 878 |
880 TEST_P(DisplayManagerTest, NativeDisplaysChangedAfterPrimaryChange) { | 879 TEST_P(DisplayManagerTest, NativeDisplaysChangedAfterPrimaryChange) { |
881 if (!SupportsMultipleDisplays()) | 880 if (!SupportsMultipleDisplays()) |
882 return; | 881 return; |
883 | 882 |
884 const int64_t internal_display_id = | 883 const int64_t internal_display_id = |
885 test::DisplayManagerTestApi().SetFirstDisplayAsInternalDisplay(); | 884 test::DisplayManagerTestApi(display_manager()) |
| 885 .SetFirstDisplayAsInternalDisplay(); |
886 const display::ManagedDisplayInfo native_display_info = | 886 const display::ManagedDisplayInfo native_display_info = |
887 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); | 887 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); |
888 const display::ManagedDisplayInfo secondary_display_info = | 888 const display::ManagedDisplayInfo secondary_display_info = |
889 CreateDisplayInfo(10, gfx::Rect(1, 1, 100, 100)); | 889 CreateDisplayInfo(10, gfx::Rect(1, 1, 100, 100)); |
890 | 890 |
891 std::vector<display::ManagedDisplayInfo> display_info_list; | 891 std::vector<display::ManagedDisplayInfo> display_info_list; |
892 display_info_list.push_back(native_display_info); | 892 display_info_list.push_back(native_display_info); |
893 display_info_list.push_back(secondary_display_info); | 893 display_info_list.push_back(secondary_display_info); |
894 display_manager()->OnNativeDisplaysChanged(display_info_list); | 894 display_manager()->OnNativeDisplaysChanged(display_info_list); |
895 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 895 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
935 scoped_refptr<display::ManagedDisplayMode> expected_mode( | 935 scoped_refptr<display::ManagedDisplayMode> expected_mode( |
936 new display::ManagedDisplayMode(gfx::Size(1000, 500), 0.0f, false, | 936 new display::ManagedDisplayMode(gfx::Size(1000, 500), 0.0f, false, |
937 false)); | 937 false)); |
938 | 938 |
939 mode = display_manager()->GetSelectedModeForDisplayId(display_id); | 939 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
940 EXPECT_FALSE(!!mode); | 940 EXPECT_FALSE(!!mode); |
941 EXPECT_TRUE(expected_mode->IsEquivalent( | 941 EXPECT_TRUE(expected_mode->IsEquivalent( |
942 display_manager()->GetActiveModeForDisplayId(display_id))); | 942 display_manager()->GetActiveModeForDisplayId(display_id))); |
943 | 943 |
944 // Unsupported resolution. | 944 // Unsupported resolution. |
945 test::SetDisplayResolution(display_id, gfx::Size(800, 4000)); | 945 test::SetDisplayResolution(display_manager(), display_id, |
| 946 gfx::Size(800, 4000)); |
946 mode = display_manager()->GetSelectedModeForDisplayId(display_id); | 947 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
947 EXPECT_FALSE(!!mode); | 948 EXPECT_FALSE(!!mode); |
948 EXPECT_TRUE(expected_mode->IsEquivalent( | 949 EXPECT_TRUE(expected_mode->IsEquivalent( |
949 display_manager()->GetActiveModeForDisplayId(display_id))); | 950 display_manager()->GetActiveModeForDisplayId(display_id))); |
950 | 951 |
951 // Supported resolution. | 952 // Supported resolution. |
952 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); | 953 test::SetDisplayResolution(display_manager(), display_id, |
| 954 gfx::Size(800, 300)); |
953 mode = display_manager()->GetSelectedModeForDisplayId(display_id); | 955 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
954 EXPECT_TRUE(!!mode); | 956 EXPECT_TRUE(!!mode); |
955 EXPECT_EQ("800x300", mode->size().ToString()); | 957 EXPECT_EQ("800x300", mode->size().ToString()); |
956 EXPECT_EQ(59.0f, mode->refresh_rate()); | 958 EXPECT_EQ(59.0f, mode->refresh_rate()); |
957 EXPECT_FALSE(mode->native()); | 959 EXPECT_FALSE(mode->native()); |
958 | 960 |
959 expected_mode = | 961 expected_mode = |
960 new display::ManagedDisplayMode(gfx::Size(800, 300), 0.0f, false, false); | 962 new display::ManagedDisplayMode(gfx::Size(800, 300), 0.0f, false, false); |
961 | 963 |
962 EXPECT_TRUE(expected_mode->IsEquivalent( | 964 EXPECT_TRUE(expected_mode->IsEquivalent( |
963 display_manager()->GetActiveModeForDisplayId(display_id))); | 965 display_manager()->GetActiveModeForDisplayId(display_id))); |
964 | 966 |
965 // Best resolution. | 967 // Best resolution. |
966 test::SetDisplayResolution(display_id, gfx::Size(1000, 500)); | 968 test::SetDisplayResolution(display_manager(), display_id, |
| 969 gfx::Size(1000, 500)); |
967 mode = display_manager()->GetSelectedModeForDisplayId(display_id); | 970 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
968 EXPECT_TRUE(!!mode); | 971 EXPECT_TRUE(!!mode); |
969 EXPECT_EQ("1000x500", mode->size().ToString()); | 972 EXPECT_EQ("1000x500", mode->size().ToString()); |
970 EXPECT_EQ(58.0f, mode->refresh_rate()); | 973 EXPECT_EQ(58.0f, mode->refresh_rate()); |
971 EXPECT_TRUE(mode->native()); | 974 EXPECT_TRUE(mode->native()); |
972 | 975 |
973 expected_mode = | 976 expected_mode = |
974 new display::ManagedDisplayMode(gfx::Size(1000, 500), 0.0f, false, false); | 977 new display::ManagedDisplayMode(gfx::Size(1000, 500), 0.0f, false, false); |
975 | 978 |
976 EXPECT_TRUE(expected_mode->IsEquivalent( | 979 EXPECT_TRUE(expected_mode->IsEquivalent( |
(...skipping 15 matching lines...) Expand all Loading... |
992 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( | 995 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( |
993 gfx::Size(400, 500), 60.0f, false, false))); | 996 gfx::Size(400, 500), 60.0f, false, false))); |
994 | 997 |
995 display::ManagedDisplayInfo::ManagedDisplayModeList copy = display_modes; | 998 display::ManagedDisplayInfo::ManagedDisplayModeList copy = display_modes; |
996 native_display_info.SetManagedDisplayModes(copy); | 999 native_display_info.SetManagedDisplayModes(copy); |
997 | 1000 |
998 std::vector<display::ManagedDisplayInfo> display_info_list; | 1001 std::vector<display::ManagedDisplayInfo> display_info_list; |
999 display_info_list.push_back(native_display_info); | 1002 display_info_list.push_back(native_display_info); |
1000 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1003 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1001 { | 1004 { |
1002 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); | 1005 test::SetDisplayResolution(display_manager(), display_id, |
| 1006 gfx::Size(800, 300)); |
1003 display::ManagedDisplayInfo new_native_display_info = | 1007 display::ManagedDisplayInfo new_native_display_info = |
1004 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 400, 500)); | 1008 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 400, 500)); |
1005 copy = display_modes; | 1009 copy = display_modes; |
1006 new_native_display_info.SetManagedDisplayModes(copy); | 1010 new_native_display_info.SetManagedDisplayModes(copy); |
1007 std::vector<display::ManagedDisplayInfo> new_display_info_list; | 1011 std::vector<display::ManagedDisplayInfo> new_display_info_list; |
1008 new_display_info_list.push_back(new_native_display_info); | 1012 new_display_info_list.push_back(new_native_display_info); |
1009 display_manager()->OnNativeDisplaysChanged(new_display_info_list); | 1013 display_manager()->OnNativeDisplaysChanged(new_display_info_list); |
1010 | 1014 |
1011 scoped_refptr<display::ManagedDisplayMode> mode = | 1015 scoped_refptr<display::ManagedDisplayMode> mode = |
1012 display_manager()->GetSelectedModeForDisplayId(display_id); | 1016 display_manager()->GetSelectedModeForDisplayId(display_id); |
1013 EXPECT_TRUE(!!mode); | 1017 EXPECT_TRUE(!!mode); |
1014 EXPECT_EQ("400x500", mode->size().ToString()); | 1018 EXPECT_EQ("400x500", mode->size().ToString()); |
1015 EXPECT_EQ(60.0f, mode->refresh_rate()); | 1019 EXPECT_EQ(60.0f, mode->refresh_rate()); |
1016 EXPECT_FALSE(mode->native()); | 1020 EXPECT_FALSE(mode->native()); |
1017 } | 1021 } |
1018 { | 1022 { |
1019 // Best resolution should find itself on the resolutions list. | 1023 // Best resolution should find itself on the resolutions list. |
1020 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); | 1024 test::SetDisplayResolution(display_manager(), display_id, |
| 1025 gfx::Size(800, 300)); |
1021 display::ManagedDisplayInfo new_native_display_info = | 1026 display::ManagedDisplayInfo new_native_display_info = |
1022 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 1027 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
1023 display::ManagedDisplayInfo::ManagedDisplayModeList copy = display_modes; | 1028 display::ManagedDisplayInfo::ManagedDisplayModeList copy = display_modes; |
1024 new_native_display_info.SetManagedDisplayModes(copy); | 1029 new_native_display_info.SetManagedDisplayModes(copy); |
1025 std::vector<display::ManagedDisplayInfo> new_display_info_list; | 1030 std::vector<display::ManagedDisplayInfo> new_display_info_list; |
1026 new_display_info_list.push_back(new_native_display_info); | 1031 new_display_info_list.push_back(new_native_display_info); |
1027 display_manager()->OnNativeDisplaysChanged(new_display_info_list); | 1032 display_manager()->OnNativeDisplaysChanged(new_display_info_list); |
1028 | 1033 |
1029 scoped_refptr<display::ManagedDisplayMode> mode = | 1034 scoped_refptr<display::ManagedDisplayMode> mode = |
1030 display_manager()->GetSelectedModeForDisplayId(display_id); | 1035 display_manager()->GetSelectedModeForDisplayId(display_id); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1081 EXPECT_EQ("1 0 0", GetCountSummary()); | 1086 EXPECT_EQ("1 0 0", GetCountSummary()); |
1082 reset(); | 1087 reset(); |
1083 | 1088 |
1084 UpdateDisplay("200x200/l"); | 1089 UpdateDisplay("200x200/l"); |
1085 EXPECT_EQ("1 0 0", GetCountSummary()); | 1090 EXPECT_EQ("1 0 0", GetCountSummary()); |
1086 | 1091 |
1087 // Having the internal display deactivated should restore user rotation. Newly | 1092 // Having the internal display deactivated should restore user rotation. Newly |
1088 // set rotations should be applied. | 1093 // set rotations should be applied. |
1089 UpdateDisplay("200x200, 200x200"); | 1094 UpdateDisplay("200x200, 200x200"); |
1090 const int64_t internal_display_id = | 1095 const int64_t internal_display_id = |
1091 test::DisplayManagerTestApi().SetFirstDisplayAsInternalDisplay(); | 1096 test::DisplayManagerTestApi(display_manager()) |
| 1097 .SetFirstDisplayAsInternalDisplay(); |
1092 | 1098 |
1093 display_manager()->SetDisplayRotation(internal_display_id, | 1099 display_manager()->SetDisplayRotation(internal_display_id, |
1094 display::Display::ROTATE_90, | 1100 display::Display::ROTATE_90, |
1095 display::Display::ROTATION_SOURCE_USER); | 1101 display::Display::ROTATION_SOURCE_USER); |
1096 display_manager()->SetDisplayRotation( | 1102 display_manager()->SetDisplayRotation( |
1097 internal_display_id, display::Display::ROTATE_0, | 1103 internal_display_id, display::Display::ROTATE_0, |
1098 display::Display::ROTATION_SOURCE_ACTIVE); | 1104 display::Display::ROTATION_SOURCE_ACTIVE); |
1099 | 1105 |
1100 const display::ManagedDisplayInfo info = | 1106 const display::ManagedDisplayInfo info = |
1101 GetDisplayInfoForId(internal_display_id); | 1107 GetDisplayInfoForId(internal_display_id); |
1102 EXPECT_EQ(display::Display::ROTATE_0, info.GetActiveRotation()); | 1108 EXPECT_EQ(display::Display::ROTATE_0, info.GetActiveRotation()); |
1103 | 1109 |
1104 // Deactivate internal display to simulate Docked Mode. | 1110 // Deactivate internal display to simulate Docked Mode. |
1105 vector<display::ManagedDisplayInfo> secondary_only; | 1111 vector<display::ManagedDisplayInfo> secondary_only; |
1106 secondary_only.push_back(GetDisplayInfoAt(1)); | 1112 secondary_only.push_back(GetDisplayInfoAt(1)); |
1107 display_manager()->OnNativeDisplaysChanged(secondary_only); | 1113 display_manager()->OnNativeDisplaysChanged(secondary_only); |
1108 | 1114 |
1109 const display::ManagedDisplayInfo post_removal_info = | 1115 const display::ManagedDisplayInfo& post_removal_info = |
1110 display_manager()->display_info_[internal_display_id]; | 1116 test::DisplayManagerTestApi(display_manager()) |
| 1117 .GetInternalManagedDisplayInfo(internal_display_id); |
1111 EXPECT_NE(info.GetActiveRotation(), post_removal_info.GetActiveRotation()); | 1118 EXPECT_NE(info.GetActiveRotation(), post_removal_info.GetActiveRotation()); |
1112 EXPECT_EQ(display::Display::ROTATE_90, post_removal_info.GetActiveRotation()); | 1119 EXPECT_EQ(display::Display::ROTATE_90, post_removal_info.GetActiveRotation()); |
1113 | 1120 |
1114 display_manager()->SetDisplayRotation( | 1121 display_manager()->SetDisplayRotation( |
1115 internal_display_id, display::Display::ROTATE_180, | 1122 internal_display_id, display::Display::ROTATE_180, |
1116 display::Display::ROTATION_SOURCE_ACTIVE); | 1123 display::Display::ROTATION_SOURCE_ACTIVE); |
1117 const display::ManagedDisplayInfo post_rotation_info = | 1124 const display::ManagedDisplayInfo& post_rotation_info = |
1118 display_manager()->display_info_[internal_display_id]; | 1125 test::DisplayManagerTestApi(display_manager()) |
| 1126 .GetInternalManagedDisplayInfo(internal_display_id); |
1119 EXPECT_NE(info.GetActiveRotation(), post_rotation_info.GetActiveRotation()); | 1127 EXPECT_NE(info.GetActiveRotation(), post_rotation_info.GetActiveRotation()); |
1120 EXPECT_EQ(display::Display::ROTATE_180, | 1128 EXPECT_EQ(display::Display::ROTATE_180, |
1121 post_rotation_info.GetActiveRotation()); | 1129 post_rotation_info.GetActiveRotation()); |
1122 } | 1130 } |
1123 | 1131 |
1124 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1132 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
1125 #if defined(OS_CHROMEOS) | 1133 #if defined(OS_CHROMEOS) |
1126 TEST_P(DisplayManagerTest, UIScale) { | 1134 TEST_P(DisplayManagerTest, UIScale) { |
1127 test::ScopedDisable125DSFForUIScaling disable; | 1135 test::ScopedDisable125DSFForUIScaling disable; |
1128 | 1136 |
1129 UpdateDisplay("1280x800"); | 1137 UpdateDisplay("1280x800"); |
1130 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1138 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1131 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1139 display_manager()->SetDisplayUIScale(display_id, 1.125f); |
1132 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); | 1140 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); |
1133 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1141 display_manager()->SetDisplayUIScale(display_id, 0.8f); |
1134 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1142 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
1135 display_manager()->SetDisplayUIScale(display_id, 0.75f); | 1143 display_manager()->SetDisplayUIScale(display_id, 0.75f); |
1136 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1144 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
1137 display_manager()->SetDisplayUIScale(display_id, 0.625f); | 1145 display_manager()->SetDisplayUIScale(display_id, 0.625f); |
1138 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1146 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
1139 | 1147 |
1140 test::ScopedSetInternalDisplayId set_internal(display_id); | 1148 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
1141 | 1149 |
1142 display_manager()->SetDisplayUIScale(display_id, 1.5f); | 1150 display_manager()->SetDisplayUIScale(display_id, 1.5f); |
1143 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1151 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
1144 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1152 display_manager()->SetDisplayUIScale(display_id, 1.25f); |
1145 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1153 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
1146 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1154 display_manager()->SetDisplayUIScale(display_id, 1.125f); |
1147 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); | 1155 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
1148 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1156 display_manager()->SetDisplayUIScale(display_id, 0.8f); |
1149 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1157 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
1150 display_manager()->SetDisplayUIScale(display_id, 0.75f); | 1158 display_manager()->SetDisplayUIScale(display_id, 0.75f); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1232 native_display_info.SetManagedDisplayModes(mode_list); | 1240 native_display_info.SetManagedDisplayModes(mode_list); |
1233 | 1241 |
1234 std::vector<display::ManagedDisplayInfo> display_info_list; | 1242 std::vector<display::ManagedDisplayInfo> display_info_list; |
1235 display_info_list.push_back(native_display_info); | 1243 display_info_list.push_back(native_display_info); |
1236 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1244 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1237 | 1245 |
1238 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode; | 1246 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode; |
1239 EXPECT_TRUE(expected_mode->IsEquivalent( | 1247 EXPECT_TRUE(expected_mode->IsEquivalent( |
1240 display_manager()->GetActiveModeForDisplayId(display_id))); | 1248 display_manager()->GetActiveModeForDisplayId(display_id))); |
1241 | 1249 |
1242 test::ScopedSetInternalDisplayId set_internal(display_id); | 1250 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
1243 | 1251 |
1244 display_manager()->SetDisplayUIScale(display_id, 1.5f); | 1252 display_manager()->SetDisplayUIScale(display_id, 1.5f); |
1245 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1253 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
1246 EXPECT_TRUE(expected_mode->IsEquivalent( | 1254 EXPECT_TRUE(expected_mode->IsEquivalent( |
1247 display_manager()->GetActiveModeForDisplayId(display_id))); | 1255 display_manager()->GetActiveModeForDisplayId(display_id))); |
1248 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1256 display_manager()->SetDisplayUIScale(display_id, 1.25f); |
1249 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1257 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
1250 EXPECT_TRUE(expected_mode->IsEquivalent( | 1258 EXPECT_TRUE(expected_mode->IsEquivalent( |
1251 display_manager()->GetActiveModeForDisplayId(display_id))); | 1259 display_manager()->GetActiveModeForDisplayId(display_id))); |
1252 display_manager()->SetDisplayUIScale(display_id, 1.125f); | 1260 display_manager()->SetDisplayUIScale(display_id, 1.125f); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1297 | 1305 |
1298 EXPECT_TRUE(expected_mode->IsEquivalent( | 1306 EXPECT_TRUE(expected_mode->IsEquivalent( |
1299 display_manager()->GetActiveModeForDisplayId(display_id))); | 1307 display_manager()->GetActiveModeForDisplayId(display_id))); |
1300 } | 1308 } |
1301 | 1309 |
1302 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1310 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
1303 #if defined(OS_CHROMEOS) | 1311 #if defined(OS_CHROMEOS) |
1304 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { | 1312 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { |
1305 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1313 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1306 | 1314 |
1307 test::ScopedSetInternalDisplayId set_internal(display_id); | 1315 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
1308 UpdateDisplay("1920x1080*1.25"); | 1316 UpdateDisplay("1920x1080*1.25"); |
1309 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1317 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1310 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1318 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1311 | 1319 |
1312 display_manager()->SetDisplayUIScale(display_id, 0.8f); | 1320 display_manager()->SetDisplayUIScale(display_id, 0.8f); |
1313 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1321 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1314 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1322 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1315 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); | 1323 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); |
1316 | 1324 |
1317 display_manager()->SetDisplayUIScale(display_id, 0.5f); | 1325 display_manager()->SetDisplayUIScale(display_id, 0.5f); |
1318 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1326 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1319 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1327 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1320 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); | 1328 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); |
1321 | 1329 |
1322 display_manager()->SetDisplayUIScale(display_id, 1.25f); | 1330 display_manager()->SetDisplayUIScale(display_id, 1.25f); |
1323 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1331 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1324 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1332 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1325 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString()); | 1333 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString()); |
1326 } | 1334 } |
1327 #endif // defined(OS_CHROMEOS) | 1335 #endif // defined(OS_CHROMEOS) |
1328 | 1336 |
1329 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1337 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
1330 #if defined(OS_CHROMEOS) | 1338 #if defined(OS_CHROMEOS) |
1331 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScaling) { | 1339 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScaling) { |
1332 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1340 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1333 | 1341 |
1334 display_id++; | 1342 display_id++; |
1335 test::ScopedSetInternalDisplayId set_internal(display_id); | 1343 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
1336 | 1344 |
1337 // Setup the display modes with UI-scale. | 1345 // Setup the display modes with UI-scale. |
1338 display::ManagedDisplayInfo native_display_info = | 1346 display::ManagedDisplayInfo native_display_info = |
1339 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); | 1347 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); |
1340 native_display_info.set_device_scale_factor(1.25); | 1348 native_display_info.set_device_scale_factor(1.25); |
1341 | 1349 |
1342 const scoped_refptr<display::ManagedDisplayMode>& base_mode( | 1350 const scoped_refptr<display::ManagedDisplayMode>& base_mode( |
1343 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f, false, | 1351 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f, false, |
1344 false)); | 1352 false)); |
1345 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = | 1353 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = |
(...skipping 11 matching lines...) Expand all Loading... |
1357 #endif // defined(OS_CHROMEOS) | 1365 #endif // defined(OS_CHROMEOS) |
1358 | 1366 |
1359 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1367 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
1360 #if defined(OS_CHROMEOS) | 1368 #if defined(OS_CHROMEOS) |
1361 // Don't default to 1.25 DSF if the user already has a prefrence stored for | 1369 // Don't default to 1.25 DSF if the user already has a prefrence stored for |
1362 // the internal display. | 1370 // the internal display. |
1363 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScalingNoOverride) { | 1371 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScalingNoOverride) { |
1364 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1372 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1365 | 1373 |
1366 display_id++; | 1374 display_id++; |
1367 test::ScopedSetInternalDisplayId set_internal(display_id); | 1375 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); |
1368 const gfx::Insets dummy_overscan_insets; | 1376 const gfx::Insets dummy_overscan_insets; |
1369 display_manager()->RegisterDisplayProperty( | 1377 display_manager()->RegisterDisplayProperty( |
1370 display_id, display::Display::ROTATE_0, 1.0f, &dummy_overscan_insets, | 1378 display_id, display::Display::ROTATE_0, 1.0f, &dummy_overscan_insets, |
1371 gfx::Size(), 1.0f, ui::ColorCalibrationProfile()); | 1379 gfx::Size(), 1.0f, ui::ColorCalibrationProfile()); |
1372 | 1380 |
1373 // Setup the display modes with UI-scale. | 1381 // Setup the display modes with UI-scale. |
1374 display::ManagedDisplayInfo native_display_info = | 1382 display::ManagedDisplayInfo native_display_info = |
1375 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); | 1383 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); |
1376 native_display_info.set_device_scale_factor(1.25); | 1384 native_display_info.set_device_scale_factor(1.25); |
1377 | 1385 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1411 EXPECT_EQ("800x400", info.display_modes()[1]->size().ToString()); | 1419 EXPECT_EQ("800x400", info.display_modes()[1]->size().ToString()); |
1412 EXPECT_FALSE(info.display_modes()[1]->native()); | 1420 EXPECT_FALSE(info.display_modes()[1]->native()); |
1413 EXPECT_EQ( | 1421 EXPECT_EQ( |
1414 "400x200", | 1422 "400x200", |
1415 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 1423 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
1416 scoped_refptr<display::ManagedDisplayMode> active_mode = | 1424 scoped_refptr<display::ManagedDisplayMode> active_mode = |
1417 display_manager()->GetActiveModeForDisplayId(unified_id); | 1425 display_manager()->GetActiveModeForDisplayId(unified_id); |
1418 EXPECT_EQ(1.0f, active_mode->ui_scale()); | 1426 EXPECT_EQ(1.0f, active_mode->ui_scale()); |
1419 EXPECT_EQ("400x200", active_mode->size().ToString()); | 1427 EXPECT_EQ("400x200", active_mode->size().ToString()); |
1420 | 1428 |
1421 EXPECT_TRUE(test::SetDisplayResolution(unified_id, gfx::Size(800, 400))); | 1429 EXPECT_TRUE(test::SetDisplayResolution(display_manager(), unified_id, |
| 1430 gfx::Size(800, 400))); |
1422 EXPECT_EQ( | 1431 EXPECT_EQ( |
1423 "800x400", | 1432 "800x400", |
1424 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 1433 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
1425 | 1434 |
1426 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); | 1435 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); |
1427 EXPECT_EQ(1.0f, active_mode->ui_scale()); | 1436 EXPECT_EQ(1.0f, active_mode->ui_scale()); |
1428 EXPECT_EQ("800x400", active_mode->size().ToString()); | 1437 EXPECT_EQ("800x400", active_mode->size().ToString()); |
1429 | 1438 |
1430 // resolution change will not persist in unified desktop mode. | 1439 // resolution change will not persist in unified desktop mode. |
1431 UpdateDisplay("600x600, 200x200"); | 1440 UpdateDisplay("600x600, 200x200"); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1528 return; | 1537 return; |
1529 | 1538 |
1530 UpdateDisplay("300x400,400x500"); | 1539 UpdateDisplay("300x400,400x500"); |
1531 | 1540 |
1532 test::MirrorWindowTestApi test_api; | 1541 test::MirrorWindowTestApi test_api; |
1533 EXPECT_EQ(nullptr, test_api.GetHost()); | 1542 EXPECT_EQ(nullptr, test_api.GetHost()); |
1534 | 1543 |
1535 TestDisplayObserver display_observer; | 1544 TestDisplayObserver display_observer; |
1536 display::Screen::GetScreen()->AddObserver(&display_observer); | 1545 display::Screen::GetScreen()->AddObserver(&display_observer); |
1537 | 1546 |
1538 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | 1547 display_manager()->SetMultiDisplayMode(DisplayManager::MIRRORING); |
1539 display_manager->SetMultiDisplayMode(DisplayManager::MIRRORING); | 1548 display_manager()->UpdateDisplays(); |
1540 display_manager->UpdateDisplays(); | |
1541 RunAllPendingInMessageLoop(); | 1549 RunAllPendingInMessageLoop(); |
1542 EXPECT_TRUE(display_observer.changed_and_reset()); | 1550 EXPECT_TRUE(display_observer.changed_and_reset()); |
1543 EXPECT_EQ(1U, display_manager->GetNumDisplays()); | 1551 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1544 EXPECT_EQ( | 1552 EXPECT_EQ( |
1545 "0,0 300x400", | 1553 "0,0 300x400", |
1546 display::Screen::GetScreen()->GetPrimaryDisplay().bounds().ToString()); | 1554 display::Screen::GetScreen()->GetPrimaryDisplay().bounds().ToString()); |
1547 EXPECT_EQ("400x500", test_api.GetHost()->GetBounds().size().ToString()); | 1555 EXPECT_EQ("400x500", test_api.GetHost()->GetBounds().size().ToString()); |
1548 EXPECT_EQ("300x400", | 1556 EXPECT_EQ("300x400", |
1549 test_api.GetHost()->window()->bounds().size().ToString()); | 1557 test_api.GetHost()->window()->bounds().size().ToString()); |
1550 EXPECT_TRUE(display_manager->IsInMirrorMode()); | 1558 EXPECT_TRUE(display_manager()->IsInMirrorMode()); |
1551 | 1559 |
1552 display_manager->SetMirrorMode(false); | 1560 display_manager()->SetMirrorMode(false); |
1553 EXPECT_TRUE(display_observer.changed_and_reset()); | 1561 EXPECT_TRUE(display_observer.changed_and_reset()); |
1554 EXPECT_EQ(nullptr, test_api.GetHost()); | 1562 EXPECT_EQ(nullptr, test_api.GetHost()); |
1555 EXPECT_EQ(2U, display_manager->GetNumDisplays()); | 1563 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
1556 EXPECT_FALSE(display_manager->IsInMirrorMode()); | 1564 EXPECT_FALSE(display_manager()->IsInMirrorMode()); |
1557 | 1565 |
1558 // Make sure the mirror window has the pixel size of the | 1566 // Make sure the mirror window has the pixel size of the |
1559 // source display. | 1567 // source display. |
1560 display_manager->SetMirrorMode(true); | 1568 display_manager()->SetMirrorMode(true); |
1561 EXPECT_TRUE(display_observer.changed_and_reset()); | 1569 EXPECT_TRUE(display_observer.changed_and_reset()); |
1562 | 1570 |
1563 UpdateDisplay("300x400@0.5,400x500"); | 1571 UpdateDisplay("300x400@0.5,400x500"); |
1564 EXPECT_FALSE(display_observer.changed_and_reset()); | 1572 EXPECT_FALSE(display_observer.changed_and_reset()); |
1565 EXPECT_EQ("300x400", | 1573 EXPECT_EQ("300x400", |
1566 test_api.GetHost()->window()->bounds().size().ToString()); | 1574 test_api.GetHost()->window()->bounds().size().ToString()); |
1567 | 1575 |
1568 UpdateDisplay("310x410*2,400x500"); | 1576 UpdateDisplay("310x410*2,400x500"); |
1569 EXPECT_FALSE(display_observer.changed_and_reset()); | 1577 EXPECT_FALSE(display_observer.changed_and_reset()); |
1570 EXPECT_EQ("310x410", | 1578 EXPECT_EQ("310x410", |
(...skipping 15 matching lines...) Expand all Loading... |
1586 EXPECT_EQ("400x600", | 1594 EXPECT_EQ("400x600", |
1587 test_api.GetHost()->window()->bounds().size().ToString()); | 1595 test_api.GetHost()->window()->bounds().size().ToString()); |
1588 | 1596 |
1589 display::Screen::GetScreen()->RemoveObserver(&display_observer); | 1597 display::Screen::GetScreen()->RemoveObserver(&display_observer); |
1590 } | 1598 } |
1591 | 1599 |
1592 TEST_P(DisplayManagerTest, RotateInSoftwareMirroring) { | 1600 TEST_P(DisplayManagerTest, RotateInSoftwareMirroring) { |
1593 if (!SupportsMultipleDisplays()) | 1601 if (!SupportsMultipleDisplays()) |
1594 return; | 1602 return; |
1595 | 1603 |
1596 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | |
1597 UpdateDisplay("600x400,500x300"); | 1604 UpdateDisplay("600x400,500x300"); |
1598 display_manager->SetMirrorMode(true); | 1605 display_manager()->SetMirrorMode(true); |
1599 | 1606 |
1600 EXPECT_EQ(1U, display_manager->GetNumDisplays()); | 1607 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1601 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1608 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1602 display_manager->SetDisplayRotation(primary_id, display::Display::ROTATE_180, | 1609 display_manager()->SetDisplayRotation( |
1603 display::Display::ROTATION_SOURCE_ACTIVE); | 1610 primary_id, display::Display::ROTATE_180, |
1604 display_manager->SetMirrorMode(false); | 1611 display::Display::ROTATION_SOURCE_ACTIVE); |
| 1612 display_manager()->SetMirrorMode(false); |
1605 } | 1613 } |
1606 | 1614 |
1607 TEST_P(DisplayManagerTest, SingleDisplayToSoftwareMirroring) { | 1615 TEST_P(DisplayManagerTest, SingleDisplayToSoftwareMirroring) { |
1608 if (!SupportsMultipleDisplays()) | 1616 if (!SupportsMultipleDisplays()) |
1609 return; | 1617 return; |
1610 UpdateDisplay("600x400"); | 1618 UpdateDisplay("600x400"); |
1611 | 1619 |
1612 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | 1620 display_manager()->SetMultiDisplayMode(DisplayManager::MIRRORING); |
1613 display_manager->SetMultiDisplayMode(DisplayManager::MIRRORING); | |
1614 UpdateDisplay("600x400,600x400"); | 1621 UpdateDisplay("600x400,600x400"); |
1615 | 1622 |
1616 EXPECT_TRUE(display_manager->IsInMirrorMode()); | 1623 EXPECT_TRUE(display_manager()->IsInMirrorMode()); |
1617 EXPECT_EQ(1U, display_manager->GetNumDisplays()); | 1624 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1618 WindowTreeHostManager* window_tree_host_manager = | 1625 WindowTreeHostManager* window_tree_host_manager = |
1619 ash::Shell::GetInstance()->window_tree_host_manager(); | 1626 ash::Shell::GetInstance()->window_tree_host_manager(); |
1620 EXPECT_TRUE( | 1627 EXPECT_TRUE( |
1621 window_tree_host_manager->mirror_window_controller()->GetWindow()); | 1628 window_tree_host_manager->mirror_window_controller()->GetWindow()); |
1622 | 1629 |
1623 UpdateDisplay("600x400"); | 1630 UpdateDisplay("600x400"); |
1624 EXPECT_FALSE(display_manager->IsInMirrorMode()); | 1631 EXPECT_FALSE(display_manager()->IsInMirrorMode()); |
1625 EXPECT_EQ(1U, display_manager->GetNumDisplays()); | 1632 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1626 EXPECT_FALSE( | 1633 EXPECT_FALSE( |
1627 window_tree_host_manager->mirror_window_controller()->GetWindow()); | 1634 window_tree_host_manager->mirror_window_controller()->GetWindow()); |
1628 } | 1635 } |
1629 | 1636 |
1630 #if defined(OS_CHROMEOS) | 1637 #if defined(OS_CHROMEOS) |
1631 // Make sure this does not cause any crashes. See http://crbug.com/412910 | 1638 // Make sure this does not cause any crashes. See http://crbug.com/412910 |
1632 // This test is limited to OS_CHROMEOS because CursorCompositingEnabled is only | 1639 // This test is limited to OS_CHROMEOS because CursorCompositingEnabled is only |
1633 // for ChromeOS. | 1640 // for ChromeOS. |
1634 TEST_P(DisplayManagerTest, SoftwareMirroringWithCompositingCursor) { | 1641 TEST_P(DisplayManagerTest, SoftwareMirroringWithCompositingCursor) { |
1635 if (!SupportsMultipleDisplays()) | 1642 if (!SupportsMultipleDisplays()) |
1636 return; | 1643 return; |
1637 | 1644 |
1638 UpdateDisplay("300x400,400x500"); | 1645 UpdateDisplay("300x400,400x500"); |
1639 | 1646 |
1640 test::MirrorWindowTestApi test_api; | 1647 test::MirrorWindowTestApi test_api; |
1641 EXPECT_EQ(nullptr, test_api.GetHost()); | 1648 EXPECT_EQ(nullptr, test_api.GetHost()); |
1642 | 1649 |
1643 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | |
1644 display::ManagedDisplayInfo secondary_info = | 1650 display::ManagedDisplayInfo secondary_info = |
1645 display_manager->GetDisplayInfo(ScreenUtil::GetSecondaryDisplay().id()); | 1651 display_manager()->GetDisplayInfo( |
| 1652 display_manager()->GetSecondaryDisplay().id()); |
1646 | 1653 |
1647 display_manager->SetSoftwareMirroring(true); | 1654 display_manager()->SetSoftwareMirroring(true); |
1648 display_manager->UpdateDisplays(); | 1655 display_manager()->UpdateDisplays(); |
1649 | 1656 |
1650 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); | 1657 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); |
1651 EXPECT_FALSE(root_windows[0]->Contains(test_api.GetCursorWindow())); | 1658 EXPECT_FALSE(root_windows[0]->Contains(test_api.GetCursorWindow())); |
1652 | 1659 |
1653 Shell::GetInstance()->SetCursorCompositingEnabled(true); | 1660 Shell::GetInstance()->SetCursorCompositingEnabled(true); |
1654 | 1661 |
1655 EXPECT_TRUE(root_windows[0]->Contains(test_api.GetCursorWindow())); | 1662 EXPECT_TRUE(root_windows[0]->Contains(test_api.GetCursorWindow())); |
1656 | 1663 |
1657 // Removes the first display and keeps the second one. | 1664 // Removes the first display and keeps the second one. |
1658 display_manager->SetSoftwareMirroring(false); | 1665 display_manager()->SetSoftwareMirroring(false); |
1659 std::vector<display::ManagedDisplayInfo> new_info_list; | 1666 std::vector<display::ManagedDisplayInfo> new_info_list; |
1660 new_info_list.push_back(secondary_info); | 1667 new_info_list.push_back(secondary_info); |
1661 display_manager->OnNativeDisplaysChanged(new_info_list); | 1668 display_manager()->OnNativeDisplaysChanged(new_info_list); |
1662 | 1669 |
1663 root_windows = Shell::GetAllRootWindows(); | 1670 root_windows = Shell::GetAllRootWindows(); |
1664 EXPECT_TRUE(root_windows[0]->Contains(test_api.GetCursorWindow())); | 1671 EXPECT_TRUE(root_windows[0]->Contains(test_api.GetCursorWindow())); |
1665 | 1672 |
1666 Shell::GetInstance()->SetCursorCompositingEnabled(false); | 1673 Shell::GetInstance()->SetCursorCompositingEnabled(false); |
1667 } | 1674 } |
1668 #endif // OS_CHROMEOS | 1675 #endif // OS_CHROMEOS |
1669 | 1676 |
1670 TEST_P(DisplayManagerTest, MirroredLayout) { | 1677 TEST_P(DisplayManagerTest, MirroredLayout) { |
1671 if (!SupportsMultipleDisplays()) | 1678 if (!SupportsMultipleDisplays()) |
1672 return; | 1679 return; |
1673 | 1680 |
1674 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | |
1675 UpdateDisplay("500x500,400x400"); | 1681 UpdateDisplay("500x500,400x400"); |
1676 EXPECT_FALSE(display_manager->GetCurrentDisplayLayout().mirrored); | 1682 EXPECT_FALSE(display_manager()->GetCurrentDisplayLayout().mirrored); |
1677 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); | 1683 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); |
1678 EXPECT_EQ(2U, display_manager->num_connected_displays()); | 1684 EXPECT_EQ(2U, display_manager()->num_connected_displays()); |
1679 | 1685 |
1680 UpdateDisplay("1+0-500x500,1+0-500x500"); | 1686 UpdateDisplay("1+0-500x500,1+0-500x500"); |
1681 EXPECT_TRUE(display_manager->GetCurrentDisplayLayout().mirrored); | 1687 EXPECT_TRUE(display_manager()->GetCurrentDisplayLayout().mirrored); |
1682 EXPECT_EQ(1, display::Screen::GetScreen()->GetNumDisplays()); | 1688 EXPECT_EQ(1, display::Screen::GetScreen()->GetNumDisplays()); |
1683 EXPECT_EQ(2U, display_manager->num_connected_displays()); | 1689 EXPECT_EQ(2U, display_manager()->num_connected_displays()); |
1684 | 1690 |
1685 UpdateDisplay("500x500,500x500"); | 1691 UpdateDisplay("500x500,500x500"); |
1686 EXPECT_FALSE(display_manager->GetCurrentDisplayLayout().mirrored); | 1692 EXPECT_FALSE(display_manager()->GetCurrentDisplayLayout().mirrored); |
1687 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); | 1693 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); |
1688 EXPECT_EQ(2U, display_manager->num_connected_displays()); | 1694 EXPECT_EQ(2U, display_manager()->num_connected_displays()); |
1689 } | 1695 } |
1690 | 1696 |
1691 TEST_P(DisplayManagerTest, InvertLayout) { | 1697 TEST_P(DisplayManagerTest, InvertLayout) { |
1692 EXPECT_EQ("left, 0", | 1698 EXPECT_EQ("left, 0", |
1693 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 0) | 1699 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 0) |
1694 .Swap() | 1700 .Swap() |
1695 .ToString()); | 1701 .ToString()); |
1696 EXPECT_EQ("left, -100", | 1702 EXPECT_EQ("left, -100", |
1697 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 100) | 1703 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 100) |
1698 .Swap() | 1704 .Swap() |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1739 EXPECT_EQ("top, 80", | 1745 EXPECT_EQ("top, 80", |
1740 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, -80) | 1746 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, -80) |
1741 .Swap() | 1747 .Swap() |
1742 .ToString()); | 1748 .ToString()); |
1743 } | 1749 } |
1744 | 1750 |
1745 TEST_P(DisplayManagerTest, NotifyPrimaryChange) { | 1751 TEST_P(DisplayManagerTest, NotifyPrimaryChange) { |
1746 if (!SupportsMultipleDisplays()) | 1752 if (!SupportsMultipleDisplays()) |
1747 return; | 1753 return; |
1748 UpdateDisplay("500x500,500x500"); | 1754 UpdateDisplay("500x500,500x500"); |
1749 test::SwapPrimaryDisplay(); | 1755 SwapPrimaryDisplay(); |
1750 reset(); | 1756 reset(); |
1751 UpdateDisplay("500x500"); | 1757 UpdateDisplay("500x500"); |
1752 EXPECT_FALSE(changed_metrics() & | 1758 EXPECT_FALSE(changed_metrics() & |
1753 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); | 1759 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); |
1754 EXPECT_FALSE(changed_metrics() & | 1760 EXPECT_FALSE(changed_metrics() & |
1755 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); | 1761 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); |
1756 EXPECT_TRUE(changed_metrics() & | 1762 EXPECT_TRUE(changed_metrics() & |
1757 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); | 1763 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); |
1758 | 1764 |
1759 UpdateDisplay("500x500,500x500"); | 1765 UpdateDisplay("500x500,500x500"); |
1760 test::SwapPrimaryDisplay(); | 1766 SwapPrimaryDisplay(); |
1761 UpdateDisplay("500x400"); | 1767 UpdateDisplay("500x400"); |
1762 EXPECT_TRUE(changed_metrics() & | 1768 EXPECT_TRUE(changed_metrics() & |
1763 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); | 1769 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); |
1764 EXPECT_TRUE(changed_metrics() & | 1770 EXPECT_TRUE(changed_metrics() & |
1765 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); | 1771 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); |
1766 EXPECT_TRUE(changed_metrics() & | 1772 EXPECT_TRUE(changed_metrics() & |
1767 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); | 1773 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); |
1768 } | 1774 } |
1769 | 1775 |
1770 TEST_P(DisplayManagerTest, NotifyPrimaryChangeUndock) { | 1776 TEST_P(DisplayManagerTest, NotifyPrimaryChangeUndock) { |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1859 UpdateDisplay("500x300,400x500"); | 1865 UpdateDisplay("500x300,400x500"); |
1860 // 400 * 300 / 500 + 500 ~= 739. | 1866 // 400 * 300 / 500 + 500 ~= 739. |
1861 EXPECT_EQ(gfx::Size(739, 300), screen->GetPrimaryDisplay().size()); | 1867 EXPECT_EQ(gfx::Size(739, 300), screen->GetPrimaryDisplay().size()); |
1862 | 1868 |
1863 // The default should fit to the internal display. | 1869 // The default should fit to the internal display. |
1864 std::vector<display::ManagedDisplayInfo> display_info_list; | 1870 std::vector<display::ManagedDisplayInfo> display_info_list; |
1865 display_info_list.push_back(CreateDisplayInfo(10, gfx::Rect(0, 0, 500, 300))); | 1871 display_info_list.push_back(CreateDisplayInfo(10, gfx::Rect(0, 0, 500, 300))); |
1866 display_info_list.push_back( | 1872 display_info_list.push_back( |
1867 CreateDisplayInfo(11, gfx::Rect(500, 0, 400, 500))); | 1873 CreateDisplayInfo(11, gfx::Rect(500, 0, 400, 500))); |
1868 { | 1874 { |
1869 test::ScopedSetInternalDisplayId set_internal(11); | 1875 test::ScopedSetInternalDisplayId set_internal(display_manager(), 11); |
1870 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1876 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1871 // 500 * 500 / 300 + 400 ~= 1233. | 1877 // 500 * 500 / 300 + 400 ~= 1233. |
1872 EXPECT_EQ(gfx::Size(1233, 500), screen->GetPrimaryDisplay().size()); | 1878 EXPECT_EQ(gfx::Size(1233, 500), screen->GetPrimaryDisplay().size()); |
1873 } | 1879 } |
1874 | 1880 |
1875 // Switch to 3 displays. | 1881 // Switch to 3 displays. |
1876 UpdateDisplay("500x300,400x500,500x300"); | 1882 UpdateDisplay("500x300,400x500,500x300"); |
1877 EXPECT_EQ(gfx::Size(1239, 300), screen->GetPrimaryDisplay().size()); | 1883 EXPECT_EQ(gfx::Size(1239, 300), screen->GetPrimaryDisplay().size()); |
1878 | 1884 |
1879 // Switch back to extended desktop. | 1885 // Switch back to extended desktop. |
1880 display_manager()->SetUnifiedDesktopEnabled(false); | 1886 display_manager()->SetUnifiedDesktopEnabled(false); |
1881 EXPECT_EQ(gfx::Size(500, 300), screen->GetPrimaryDisplay().size()); | 1887 EXPECT_EQ(gfx::Size(500, 300), screen->GetPrimaryDisplay().size()); |
1882 EXPECT_EQ(gfx::Size(400, 500), ScreenUtil::GetSecondaryDisplay().size()); | 1888 EXPECT_EQ(gfx::Size(400, 500), |
1883 EXPECT_EQ(gfx::Size(500, 300), | 1889 display_manager()->GetSecondaryDisplay().size()); |
1884 display_manager() | 1890 EXPECT_EQ( |
1885 ->GetDisplayForId(ScreenUtil::GetSecondaryDisplay().id() + 1) | 1891 gfx::Size(500, 300), |
1886 .size()); | 1892 display_manager() |
| 1893 ->GetDisplayForId(display_manager()->GetSecondaryDisplay().id() + 1) |
| 1894 .size()); |
1887 } | 1895 } |
1888 | 1896 |
1889 TEST_P(DisplayManagerTest, UnifiedDesktopWithHardwareMirroring) { | 1897 TEST_P(DisplayManagerTest, UnifiedDesktopWithHardwareMirroring) { |
1890 if (!SupportsMultipleDisplays()) | 1898 if (!SupportsMultipleDisplays()) |
1891 return; | 1899 return; |
1892 // Don't check root window destruction in unified mode. | 1900 // Don't check root window destruction in unified mode. |
1893 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 1901 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
1894 | 1902 |
1895 // Enter to hardware mirroring. | 1903 // Enter to hardware mirroring. |
1896 display::ManagedDisplayInfo d1(1, "", false); | 1904 display::ManagedDisplayInfo d1(1, "", false); |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2125 CreateDisplayInfo(internal_id, gfx::Rect(0, 0, 500, 500)); | 2133 CreateDisplayInfo(internal_id, gfx::Rect(0, 0, 500, 500)); |
2126 const display::ManagedDisplayInfo external_display_info = | 2134 const display::ManagedDisplayInfo external_display_info = |
2127 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); | 2135 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); |
2128 std::vector<display::ManagedDisplayInfo> display_info_list; | 2136 std::vector<display::ManagedDisplayInfo> display_info_list; |
2129 | 2137 |
2130 // software mirroring. | 2138 // software mirroring. |
2131 display_info_list.push_back(internal_display_info); | 2139 display_info_list.push_back(internal_display_info); |
2132 display_info_list.push_back(external_display_info); | 2140 display_info_list.push_back(external_display_info); |
2133 display_manager()->OnNativeDisplaysChanged(display_info_list); | 2141 display_manager()->OnNativeDisplaysChanged(display_info_list); |
2134 const int64_t internal_display_id = | 2142 const int64_t internal_display_id = |
2135 test::DisplayManagerTestApi().SetFirstDisplayAsInternalDisplay(); | 2143 test::DisplayManagerTestApi(display_manager()) |
| 2144 .SetFirstDisplayAsInternalDisplay(); |
2136 EXPECT_EQ(internal_id, internal_display_id); | 2145 EXPECT_EQ(internal_id, internal_display_id); |
2137 | 2146 |
2138 display_info_list.clear(); | 2147 display_info_list.clear(); |
2139 display_info_list.push_back(external_display_info); | 2148 display_info_list.push_back(external_display_info); |
2140 display_manager()->OnNativeDisplaysChanged(display_info_list); | 2149 display_manager()->OnNativeDisplaysChanged(display_info_list); |
2141 EXPECT_EQ(1U, display_manager()->active_display_list().size()); | 2150 EXPECT_EQ(1U, display_manager()->active_display_list().size()); |
2142 | 2151 |
2143 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); | 2152 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); |
2144 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); | 2153 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); |
2145 | 2154 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2226 } | 2235 } |
2227 | 2236 |
2228 gfx::FontRenderParams::Hinting GetFontHintingParams() { | 2237 gfx::FontRenderParams::Hinting GetFontHintingParams() { |
2229 gfx::FontRenderParams params = | 2238 gfx::FontRenderParams params = |
2230 gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr); | 2239 gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr); |
2231 return params.hinting; | 2240 return params.hinting; |
2232 } | 2241 } |
2233 | 2242 |
2234 } // namespace | 2243 } // namespace |
2235 | 2244 |
2236 typedef testing::Test DisplayManagerFontTest; | 2245 using DisplayManagerFontTest = testing::Test; |
2237 | 2246 |
2238 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100Internal) { | 2247 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100Internal) { |
2239 FontTestHelper helper(1.0f, FontTestHelper::INTERNAL); | 2248 FontTestHelper helper(1.0f, FontTestHelper::INTERNAL); |
2240 ASSERT_DOUBLE_EQ( | 2249 ASSERT_DOUBLE_EQ( |
2241 1.0f, | 2250 1.0f, |
2242 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2251 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
2243 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); | 2252 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); |
2244 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2253 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
2245 } | 2254 } |
2246 | 2255 |
2247 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf125Internal) { | 2256 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf125Internal) { |
2248 test::ScopedDisable125DSFForUIScaling disable; | 2257 test::ScopedDisable125DSFForUIScaling disable; |
2249 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); | 2258 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); |
2250 ASSERT_DOUBLE_EQ( | 2259 ASSERT_DOUBLE_EQ( |
2251 1.25f, | 2260 1.25f, |
2252 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2261 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
2253 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); | 2262 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); |
2254 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2263 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
2255 } | 2264 } |
2256 | 2265 |
2257 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200Internal) { | 2266 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200Internal) { |
2258 FontTestHelper helper(2.0f, FontTestHelper::INTERNAL); | 2267 FontTestHelper helper(2.0f, FontTestHelper::INTERNAL); |
2259 ASSERT_DOUBLE_EQ( | 2268 ASSERT_DOUBLE_EQ( |
2260 2.0f, | 2269 2.0f, |
2261 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2270 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
2262 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); | 2271 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); |
2263 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2272 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
2264 | 2273 |
2265 Shell::GetInstance()->display_manager()->SetDisplayUIScale( | 2274 helper.display_manager()->SetDisplayUIScale( |
2266 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 2.0f); | 2275 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 2.0f); |
2267 | 2276 |
2268 ASSERT_DOUBLE_EQ( | 2277 ASSERT_DOUBLE_EQ( |
2269 1.0f, | 2278 1.0f, |
2270 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2279 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
2271 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); | 2280 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); |
2272 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2281 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
2273 } | 2282 } |
2274 | 2283 |
2275 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100External) { | 2284 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100External) { |
(...skipping 25 matching lines...) Expand all Loading... |
2301 | 2310 |
2302 TEST_F(DisplayManagerFontTest, | 2311 TEST_F(DisplayManagerFontTest, |
2303 TextSubpixelPositioningWithDsf125InternalWithScaling) { | 2312 TextSubpixelPositioningWithDsf125InternalWithScaling) { |
2304 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); | 2313 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); |
2305 ASSERT_DOUBLE_EQ( | 2314 ASSERT_DOUBLE_EQ( |
2306 1.0f, | 2315 1.0f, |
2307 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2316 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
2308 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); | 2317 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); |
2309 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2318 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
2310 | 2319 |
2311 Shell::GetInstance()->display_manager()->SetDisplayUIScale( | 2320 helper.display_manager()->SetDisplayUIScale( |
2312 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 0.8f); | 2321 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 0.8f); |
2313 | 2322 |
2314 ASSERT_DOUBLE_EQ( | 2323 ASSERT_DOUBLE_EQ( |
2315 1.25f, | 2324 1.25f, |
2316 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2325 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
2317 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); | 2326 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); |
2318 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2327 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
2319 } | 2328 } |
2320 | 2329 |
2321 TEST_P(DisplayManagerTest, CheckInitializationOfRotationProperty) { | 2330 TEST_P(DisplayManagerTest, CheckInitializationOfRotationProperty) { |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2372 const display::DisplayLayout& stored = | 2381 const display::DisplayLayout& stored = |
2373 layout_store->GetRegisteredDisplayLayout(list); | 2382 layout_store->GetRegisteredDisplayLayout(list); |
2374 | 2383 |
2375 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); | 2384 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); |
2376 EXPECT_EQ(id2, stored.placement_list[0].display_id); | 2385 EXPECT_EQ(id2, stored.placement_list[0].display_id); |
2377 } | 2386 } |
2378 | 2387 |
2379 #endif // OS_CHROMEOS | 2388 #endif // OS_CHROMEOS |
2380 | 2389 |
2381 } // namespace ash | 2390 } // namespace ash |
OLD | NEW |