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/display/display_controller.h" | 7 #include "ash/display/display_controller.h" |
8 #include "ash/display/display_layout_store.h" | 8 #include "ash/display/display_layout_store.h" |
9 #include "ash/screen_util.h" | 9 #include "ash/screen_util.h" |
10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 display_manager()->OnNativeDisplaysChanged(display_info_list); | 712 display_manager()->OnNativeDisplaysChanged(display_info_list); |
713 EXPECT_EQ("-500,0 500x500", | 713 EXPECT_EQ("-500,0 500x500", |
714 GetDisplayForId(internal_display_id).bounds().ToString()); | 714 GetDisplayForId(internal_display_id).bounds().ToString()); |
715 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); | 715 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); |
716 } | 716 } |
717 | 717 |
718 TEST_F(DisplayManagerTest, DontRememberBestResolution) { | 718 TEST_F(DisplayManagerTest, DontRememberBestResolution) { |
719 int display_id = 1000; | 719 int display_id = 1000; |
720 DisplayInfo native_display_info = | 720 DisplayInfo native_display_info = |
721 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 721 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
722 std::vector<Resolution> resolutions; | 722 std::vector<DisplayMode> display_modes; |
723 resolutions.push_back(Resolution(gfx::Size(1000, 500), false)); | 723 display_modes.push_back( |
724 resolutions.push_back(Resolution(gfx::Size(800, 300), false)); | 724 DisplayMode(gfx::Size(1000, 500), 58.0f, false, true)); |
725 resolutions.push_back(Resolution(gfx::Size(400, 500), false)); | 725 display_modes.push_back( |
| 726 DisplayMode(gfx::Size(800, 300), 59.0f, false, false)); |
| 727 display_modes.push_back( |
| 728 DisplayMode(gfx::Size(400, 500), 60.0f, false, false)); |
726 | 729 |
727 native_display_info.set_resolutions(resolutions); | 730 native_display_info.set_display_modes(display_modes); |
728 | 731 |
729 std::vector<DisplayInfo> display_info_list; | 732 std::vector<DisplayInfo> display_info_list; |
730 display_info_list.push_back(native_display_info); | 733 display_info_list.push_back(native_display_info); |
731 display_manager()->OnNativeDisplaysChanged(display_info_list); | 734 display_manager()->OnNativeDisplaysChanged(display_info_list); |
732 | 735 |
733 gfx::Size selected; | 736 DisplayMode mode; |
734 EXPECT_FALSE(display_manager()->GetSelectedResolutionForDisplayId( | 737 EXPECT_TRUE( |
735 display_id, &selected)); | 738 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
| 739 EXPECT_EQ("1000x500", mode.size.ToString()); |
| 740 EXPECT_EQ(58.0f, mode.refresh_rate); |
| 741 EXPECT_TRUE(mode.native); |
736 | 742 |
737 // Unsupported resolution. | 743 // Unsupported resolution. |
738 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 4000)); | 744 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 4000)); |
739 EXPECT_FALSE(display_manager()->GetSelectedResolutionForDisplayId( | 745 EXPECT_TRUE( |
740 display_id, &selected)); | 746 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
| 747 EXPECT_EQ("1000x500", mode.size.ToString()); |
| 748 EXPECT_EQ(58.0f, mode.refresh_rate); |
| 749 EXPECT_TRUE(mode.native); |
741 | 750 |
742 // Supported resolution. | 751 // Supported resolution. |
743 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 300)); | 752 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 300)); |
744 EXPECT_TRUE(display_manager()->GetSelectedResolutionForDisplayId( | 753 EXPECT_TRUE( |
745 display_id, &selected)); | 754 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
746 EXPECT_EQ("800x300", selected.ToString()); | 755 EXPECT_EQ("800x300", mode.size.ToString()); |
| 756 EXPECT_EQ(59.0f, mode.refresh_rate); |
| 757 EXPECT_FALSE(mode.native); |
747 | 758 |
748 // Best resolution. | 759 // Best resolution. |
749 display_manager()->SetDisplayResolution(display_id, gfx::Size(1000, 500)); | 760 display_manager()->SetDisplayResolution(display_id, gfx::Size(1000, 500)); |
750 EXPECT_FALSE(display_manager()->GetSelectedResolutionForDisplayId( | 761 EXPECT_TRUE( |
751 display_id, &selected)); | 762 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
| 763 EXPECT_EQ("1000x500", mode.size.ToString()); |
| 764 EXPECT_EQ(58.0f, mode.refresh_rate); |
| 765 EXPECT_TRUE(mode.native); |
752 } | 766 } |
753 | 767 |
754 TEST_F(DisplayManagerTest, ResolutionFallback) { | 768 TEST_F(DisplayManagerTest, ResolutionFallback) { |
755 int display_id = 1000; | 769 int display_id = 1000; |
756 DisplayInfo native_display_info = | 770 DisplayInfo native_display_info = |
757 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 771 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
758 std::vector<Resolution> resolutions; | 772 std::vector<DisplayMode> display_modes; |
759 resolutions.push_back(Resolution(gfx::Size(1000, 500), false)); | 773 display_modes.push_back( |
760 resolutions.push_back(Resolution(gfx::Size(800, 300), false)); | 774 DisplayMode(gfx::Size(1000, 500), 58.0f, false, true)); |
761 resolutions.push_back(Resolution(gfx::Size(400, 500), false)); | 775 display_modes.push_back( |
| 776 DisplayMode(gfx::Size(800, 300), 59.0f, false, false)); |
| 777 display_modes.push_back( |
| 778 DisplayMode(gfx::Size(400, 500), 60.0f, false, false)); |
762 | 779 |
763 std::vector<Resolution> copy = resolutions; | 780 std::vector<DisplayMode> copy = display_modes; |
764 native_display_info.set_resolutions(copy); | 781 native_display_info.set_display_modes(copy); |
765 | 782 |
766 std::vector<DisplayInfo> display_info_list; | 783 std::vector<DisplayInfo> display_info_list; |
767 display_info_list.push_back(native_display_info); | 784 display_info_list.push_back(native_display_info); |
768 display_manager()->OnNativeDisplaysChanged(display_info_list); | 785 display_manager()->OnNativeDisplaysChanged(display_info_list); |
769 { | 786 { |
770 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 300)); | 787 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 300)); |
771 DisplayInfo new_native_display_info = | 788 DisplayInfo new_native_display_info = |
772 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 400, 500)); | 789 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 400, 500)); |
773 copy = resolutions; | 790 copy = display_modes; |
774 new_native_display_info.set_resolutions(copy); | 791 new_native_display_info.set_display_modes(copy); |
775 std::vector<DisplayInfo> new_display_info_list; | 792 std::vector<DisplayInfo> new_display_info_list; |
776 new_display_info_list.push_back(new_native_display_info); | 793 new_display_info_list.push_back(new_native_display_info); |
777 display_manager()->OnNativeDisplaysChanged(new_display_info_list); | 794 display_manager()->OnNativeDisplaysChanged(new_display_info_list); |
778 | 795 |
779 gfx::Size selected; | 796 DisplayMode mode; |
780 EXPECT_TRUE(display_manager()->GetSelectedResolutionForDisplayId( | 797 EXPECT_TRUE( |
781 display_id, &selected)); | 798 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
782 EXPECT_EQ("400x500", selected.ToString()); | 799 EXPECT_EQ("400x500", mode.size.ToString()); |
| 800 EXPECT_EQ(60.0f, mode.refresh_rate); |
| 801 EXPECT_FALSE(mode.native); |
783 } | 802 } |
784 { | 803 { |
785 // Best resolution should not be set. | 804 // Best resolution should find itself on the resolutions list. |
786 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 300)); | 805 display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 300)); |
787 DisplayInfo new_native_display_info = | 806 DisplayInfo new_native_display_info = |
788 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 807 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
789 std::vector<Resolution> copy = resolutions; | 808 std::vector<DisplayMode> copy = display_modes; |
790 new_native_display_info.set_resolutions(copy); | 809 new_native_display_info.set_display_modes(copy); |
791 std::vector<DisplayInfo> new_display_info_list; | 810 std::vector<DisplayInfo> new_display_info_list; |
792 new_display_info_list.push_back(new_native_display_info); | 811 new_display_info_list.push_back(new_native_display_info); |
793 display_manager()->OnNativeDisplaysChanged(new_display_info_list); | 812 display_manager()->OnNativeDisplaysChanged(new_display_info_list); |
794 | 813 |
795 gfx::Size selected; | 814 DisplayMode mode; |
796 EXPECT_FALSE(display_manager()->GetSelectedResolutionForDisplayId( | 815 EXPECT_TRUE( |
797 display_id, &selected)); | 816 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
| 817 EXPECT_EQ("1000x500", mode.size.ToString()); |
| 818 EXPECT_EQ(58.0f, mode.refresh_rate); |
| 819 EXPECT_TRUE(mode.native); |
798 } | 820 } |
799 } | 821 } |
800 | 822 |
801 TEST_F(DisplayManagerTest, Rotate) { | 823 TEST_F(DisplayManagerTest, Rotate) { |
802 if (!SupportsMultipleDisplays()) | 824 if (!SupportsMultipleDisplays()) |
803 return; | 825 return; |
804 | 826 |
805 UpdateDisplay("100x200/r,300x400/l"); | 827 UpdateDisplay("100x200/r,300x400/l"); |
806 EXPECT_EQ("1,1 100x200", | 828 EXPECT_EQ("1,1 100x200", |
807 GetDisplayInfoAt(0).bounds_in_native().ToString()); | 829 GetDisplayInfoAt(0).bounds_in_native().ToString()); |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1211 }; | 1233 }; |
1212 | 1234 |
1213 TEST_F(ScreenShutdownTest, ScreenAfterShutdown) { | 1235 TEST_F(ScreenShutdownTest, ScreenAfterShutdown) { |
1214 if (!SupportsMultipleDisplays()) | 1236 if (!SupportsMultipleDisplays()) |
1215 return; | 1237 return; |
1216 UpdateDisplay("500x300,800x400"); | 1238 UpdateDisplay("500x300,800x400"); |
1217 } | 1239 } |
1218 | 1240 |
1219 } // namespace internal | 1241 } // namespace internal |
1220 } // namespace ash | 1242 } // namespace ash |
OLD | NEW |