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

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

Issue 138903025: Read compositor VSync information from platform, when possible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 50467938 rebase. Created 6 years, 10 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 | Annotate | Revision Log
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/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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698