| 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/ash_switches.h" | 8 #include "ash/common/ash_switches.h" |
| 9 #include "ash/common/display/display_info.h" | 9 #include "ash/common/display/display_info.h" |
| 10 #include "ash/common/material_design/material_design_controller.h" | 10 #include "ash/common/material_design/material_design_controller.h" |
| (...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 GetDisplayForId(internal_display_id).bounds().ToString()); | 897 GetDisplayForId(internal_display_id).bounds().ToString()); |
| 898 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); | 898 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); |
| 899 } | 899 } |
| 900 | 900 |
| 901 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 901 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
| 902 #if defined(OS_CHROMEOS) | 902 #if defined(OS_CHROMEOS) |
| 903 TEST_P(DisplayManagerTest, DontRememberBestResolution) { | 903 TEST_P(DisplayManagerTest, DontRememberBestResolution) { |
| 904 int display_id = 1000; | 904 int display_id = 1000; |
| 905 DisplayInfo native_display_info = | 905 DisplayInfo native_display_info = |
| 906 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 906 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
| 907 std::vector<DisplayMode> display_modes; | 907 DisplayInfo::DisplayModeList display_modes; |
| 908 display_modes.push_back( | 908 display_modes.push_back(make_scoped_refptr( |
| 909 DisplayMode(gfx::Size(1000, 500), 58.0f, false, true)); | 909 new DisplayMode(gfx::Size(1000, 500), 58.0f, false, true))); |
| 910 display_modes.push_back( | 910 display_modes.push_back(make_scoped_refptr( |
| 911 DisplayMode(gfx::Size(800, 300), 59.0f, false, false)); | 911 new DisplayMode(gfx::Size(800, 300), 59.0f, false, false))); |
| 912 display_modes.push_back( | 912 display_modes.push_back(make_scoped_refptr( |
| 913 DisplayMode(gfx::Size(400, 500), 60.0f, false, false)); | 913 new DisplayMode(gfx::Size(400, 500), 60.0f, false, false))); |
| 914 | 914 |
| 915 native_display_info.SetDisplayModes(display_modes); | 915 native_display_info.SetDisplayModes(display_modes); |
| 916 | 916 |
| 917 std::vector<DisplayInfo> display_info_list; | 917 std::vector<DisplayInfo> display_info_list; |
| 918 display_info_list.push_back(native_display_info); | 918 display_info_list.push_back(native_display_info); |
| 919 display_manager()->OnNativeDisplaysChanged(display_info_list); | 919 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 920 | 920 |
| 921 DisplayMode mode; | 921 scoped_refptr<DisplayMode> mode; |
| 922 DisplayMode expected_mode; | 922 scoped_refptr<DisplayMode> expected_mode( |
| 923 expected_mode.size = gfx::Size(1000, 500); | 923 new DisplayMode(gfx::Size(1000, 500), 0.0f, false, false)); |
| 924 EXPECT_FALSE( | 924 |
| 925 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); | 925 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
| 926 EXPECT_TRUE(expected_mode.IsEquivalent( | 926 EXPECT_FALSE(!!mode); |
| 927 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 927 display_manager()->GetActiveModeForDisplayId(display_id))); | 928 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 928 | 929 |
| 929 // Unsupported resolution. | 930 // Unsupported resolution. |
| 930 test::SetDisplayResolution(display_id, gfx::Size(800, 4000)); | 931 test::SetDisplayResolution(display_id, gfx::Size(800, 4000)); |
| 931 EXPECT_FALSE( | 932 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
| 932 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); | 933 EXPECT_FALSE(!!mode); |
| 933 EXPECT_TRUE(expected_mode.IsEquivalent( | 934 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 934 display_manager()->GetActiveModeForDisplayId(display_id))); | 935 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 935 | 936 |
| 936 // Supported resolution. | 937 // Supported resolution. |
| 937 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); | 938 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); |
| 938 EXPECT_TRUE( | 939 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
| 939 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); | 940 EXPECT_TRUE(!!mode); |
| 940 EXPECT_EQ("800x300", mode.size.ToString()); | 941 EXPECT_EQ("800x300", mode->size().ToString()); |
| 941 EXPECT_EQ(59.0f, mode.refresh_rate); | 942 EXPECT_EQ(59.0f, mode->refresh_rate()); |
| 942 EXPECT_FALSE(mode.native); | 943 EXPECT_FALSE(mode->native()); |
| 943 expected_mode.size = gfx::Size(800, 300); | 944 |
| 944 EXPECT_TRUE(expected_mode.IsEquivalent( | 945 expected_mode = new DisplayMode(gfx::Size(800, 300), 0.0f, false, false); |
| 946 |
| 947 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 945 display_manager()->GetActiveModeForDisplayId(display_id))); | 948 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 946 | 949 |
| 947 // Best resolution. | 950 // Best resolution. |
| 948 test::SetDisplayResolution(display_id, gfx::Size(1000, 500)); | 951 test::SetDisplayResolution(display_id, gfx::Size(1000, 500)); |
| 949 EXPECT_TRUE( | 952 mode = display_manager()->GetSelectedModeForDisplayId(display_id); |
| 950 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); | 953 EXPECT_TRUE(!!mode); |
| 951 EXPECT_EQ("1000x500", mode.size.ToString()); | 954 EXPECT_EQ("1000x500", mode->size().ToString()); |
| 952 EXPECT_EQ(58.0f, mode.refresh_rate); | 955 EXPECT_EQ(58.0f, mode->refresh_rate()); |
| 953 EXPECT_TRUE(mode.native); | 956 EXPECT_TRUE(mode->native()); |
| 954 expected_mode.size = gfx::Size(1000, 500); | 957 |
| 955 EXPECT_TRUE(expected_mode.IsEquivalent( | 958 expected_mode = new DisplayMode(gfx::Size(1000, 500), 0.0f, false, false); |
| 959 |
| 960 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 956 display_manager()->GetActiveModeForDisplayId(display_id))); | 961 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 957 } | 962 } |
| 958 #endif // defined(OS_CHROMEOS) | 963 #endif // defined(OS_CHROMEOS) |
| 959 | 964 |
| 960 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 965 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
| 961 #if defined(OS_CHROMEOS) | 966 #if defined(OS_CHROMEOS) |
| 962 TEST_P(DisplayManagerTest, ResolutionFallback) { | 967 TEST_P(DisplayManagerTest, ResolutionFallback) { |
| 963 int display_id = 1000; | 968 int display_id = 1000; |
| 964 DisplayInfo native_display_info = | 969 DisplayInfo native_display_info = |
| 965 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 970 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
| 966 std::vector<DisplayMode> display_modes; | 971 DisplayInfo::DisplayModeList display_modes; |
| 967 display_modes.push_back( | 972 display_modes.push_back(make_scoped_refptr( |
| 968 DisplayMode(gfx::Size(1000, 500), 58.0f, false, true)); | 973 new DisplayMode(gfx::Size(1000, 500), 58.0f, false, true))); |
| 969 display_modes.push_back( | 974 display_modes.push_back(make_scoped_refptr( |
| 970 DisplayMode(gfx::Size(800, 300), 59.0f, false, false)); | 975 new DisplayMode(gfx::Size(800, 300), 59.0f, false, false))); |
| 971 display_modes.push_back( | 976 display_modes.push_back(make_scoped_refptr( |
| 972 DisplayMode(gfx::Size(400, 500), 60.0f, false, false)); | 977 new DisplayMode(gfx::Size(400, 500), 60.0f, false, false))); |
| 973 | 978 |
| 974 std::vector<DisplayMode> copy = display_modes; | 979 DisplayInfo::DisplayModeList copy = display_modes; |
| 975 native_display_info.SetDisplayModes(copy); | 980 native_display_info.SetDisplayModes(copy); |
| 976 | 981 |
| 977 std::vector<DisplayInfo> display_info_list; | 982 std::vector<DisplayInfo> display_info_list; |
| 978 display_info_list.push_back(native_display_info); | 983 display_info_list.push_back(native_display_info); |
| 979 display_manager()->OnNativeDisplaysChanged(display_info_list); | 984 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 980 { | 985 { |
| 981 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); | 986 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); |
| 982 DisplayInfo new_native_display_info = | 987 DisplayInfo new_native_display_info = |
| 983 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 400, 500)); | 988 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 400, 500)); |
| 984 copy = display_modes; | 989 copy = display_modes; |
| 985 new_native_display_info.SetDisplayModes(copy); | 990 new_native_display_info.SetDisplayModes(copy); |
| 986 std::vector<DisplayInfo> new_display_info_list; | 991 std::vector<DisplayInfo> new_display_info_list; |
| 987 new_display_info_list.push_back(new_native_display_info); | 992 new_display_info_list.push_back(new_native_display_info); |
| 988 display_manager()->OnNativeDisplaysChanged(new_display_info_list); | 993 display_manager()->OnNativeDisplaysChanged(new_display_info_list); |
| 989 | 994 |
| 990 DisplayMode mode; | 995 scoped_refptr<DisplayMode> mode = |
| 991 EXPECT_TRUE( | 996 display_manager()->GetSelectedModeForDisplayId(display_id); |
| 992 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); | 997 EXPECT_TRUE(!!mode); |
| 993 EXPECT_EQ("400x500", mode.size.ToString()); | 998 EXPECT_EQ("400x500", mode->size().ToString()); |
| 994 EXPECT_EQ(60.0f, mode.refresh_rate); | 999 EXPECT_EQ(60.0f, mode->refresh_rate()); |
| 995 EXPECT_FALSE(mode.native); | 1000 EXPECT_FALSE(mode->native()); |
| 996 } | 1001 } |
| 997 { | 1002 { |
| 998 // Best resolution should find itself on the resolutions list. | 1003 // Best resolution should find itself on the resolutions list. |
| 999 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); | 1004 test::SetDisplayResolution(display_id, gfx::Size(800, 300)); |
| 1000 DisplayInfo new_native_display_info = | 1005 DisplayInfo new_native_display_info = |
| 1001 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 1006 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
| 1002 std::vector<DisplayMode> copy = display_modes; | 1007 DisplayInfo::DisplayModeList copy = display_modes; |
| 1003 new_native_display_info.SetDisplayModes(copy); | 1008 new_native_display_info.SetDisplayModes(copy); |
| 1004 std::vector<DisplayInfo> new_display_info_list; | 1009 std::vector<DisplayInfo> new_display_info_list; |
| 1005 new_display_info_list.push_back(new_native_display_info); | 1010 new_display_info_list.push_back(new_native_display_info); |
| 1006 display_manager()->OnNativeDisplaysChanged(new_display_info_list); | 1011 display_manager()->OnNativeDisplaysChanged(new_display_info_list); |
| 1007 | 1012 |
| 1008 DisplayMode mode; | 1013 scoped_refptr<DisplayMode> mode = |
| 1009 EXPECT_TRUE( | 1014 display_manager()->GetSelectedModeForDisplayId(display_id); |
| 1010 display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); | 1015 EXPECT_TRUE(!!mode); |
| 1011 EXPECT_EQ("1000x500", mode.size.ToString()); | 1016 EXPECT_EQ("1000x500", mode->size().ToString()); |
| 1012 EXPECT_EQ(58.0f, mode.refresh_rate); | 1017 EXPECT_EQ(58.0f, mode->refresh_rate()); |
| 1013 EXPECT_TRUE(mode.native); | 1018 EXPECT_TRUE(mode->native()); |
| 1014 } | 1019 } |
| 1015 } | 1020 } |
| 1016 #endif // defined(OS_CHROMEOS) | 1021 #endif // defined(OS_CHROMEOS) |
| 1017 | 1022 |
| 1018 TEST_P(DisplayManagerTest, Rotate) { | 1023 TEST_P(DisplayManagerTest, Rotate) { |
| 1019 if (!SupportsMultipleDisplays()) | 1024 if (!SupportsMultipleDisplays()) |
| 1020 return; | 1025 return; |
| 1021 | 1026 |
| 1022 UpdateDisplay("100x200/r,300x400/l"); | 1027 UpdateDisplay("100x200/r,300x400/l"); |
| 1023 EXPECT_EQ("1,1 100x200", GetDisplayInfoAt(0).bounds_in_native().ToString()); | 1028 EXPECT_EQ("1,1 100x200", GetDisplayInfoAt(0).bounds_in_native().ToString()); |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1195 EXPECT_EQ("1280x850", display.bounds().size().ToString()); | 1200 EXPECT_EQ("1280x850", display.bounds().size().ToString()); |
| 1196 } | 1201 } |
| 1197 #endif // defined(OS_CHROMEOS) | 1202 #endif // defined(OS_CHROMEOS) |
| 1198 | 1203 |
| 1199 TEST_P(DisplayManagerTest, UIScaleWithDisplayMode) { | 1204 TEST_P(DisplayManagerTest, UIScaleWithDisplayMode) { |
| 1200 int display_id = 1000; | 1205 int display_id = 1000; |
| 1201 | 1206 |
| 1202 // Setup the display modes with UI-scale. | 1207 // Setup the display modes with UI-scale. |
| 1203 DisplayInfo native_display_info = | 1208 DisplayInfo native_display_info = |
| 1204 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1280, 800)); | 1209 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1280, 800)); |
| 1205 const DisplayMode base_mode(gfx::Size(1280, 800), 60.0f, false, false); | 1210 const scoped_refptr<DisplayMode>& base_mode( |
| 1206 std::vector<DisplayMode> mode_list = CreateInternalDisplayModeList(base_mode); | 1211 new DisplayMode(gfx::Size(1280, 800), 60.0f, false, false)); |
| 1212 DisplayInfo::DisplayModeList mode_list = |
| 1213 CreateInternalDisplayModeList(base_mode); |
| 1207 native_display_info.SetDisplayModes(mode_list); | 1214 native_display_info.SetDisplayModes(mode_list); |
| 1208 | 1215 |
| 1209 std::vector<DisplayInfo> display_info_list; | 1216 std::vector<DisplayInfo> display_info_list; |
| 1210 display_info_list.push_back(native_display_info); | 1217 display_info_list.push_back(native_display_info); |
| 1211 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1218 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 1212 | 1219 |
| 1213 DisplayMode expected_mode = base_mode; | 1220 scoped_refptr<DisplayMode> expected_mode = base_mode; |
| 1214 EXPECT_TRUE(expected_mode.IsEquivalent( | 1221 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1215 display_manager()->GetActiveModeForDisplayId(display_id))); | 1222 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1216 | 1223 |
| 1217 test::ScopedSetInternalDisplayId set_internal(display_id); | 1224 test::ScopedSetInternalDisplayId set_internal(display_id); |
| 1218 | 1225 |
| 1219 SetDisplayUIScale(display_id, 1.5f); | 1226 SetDisplayUIScale(display_id, 1.5f); |
| 1220 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1227 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1221 EXPECT_TRUE(expected_mode.IsEquivalent( | 1228 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1222 display_manager()->GetActiveModeForDisplayId(display_id))); | 1229 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1223 SetDisplayUIScale(display_id, 1.25f); | 1230 SetDisplayUIScale(display_id, 1.25f); |
| 1224 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1231 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1225 EXPECT_TRUE(expected_mode.IsEquivalent( | 1232 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1226 display_manager()->GetActiveModeForDisplayId(display_id))); | 1233 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1227 SetDisplayUIScale(display_id, 1.125f); | 1234 SetDisplayUIScale(display_id, 1.125f); |
| 1228 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); | 1235 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1229 expected_mode.ui_scale = 1.125f; | 1236 |
| 1230 EXPECT_TRUE(expected_mode.IsEquivalent( | 1237 expected_mode = new DisplayMode( |
| 1238 expected_mode->size(), expected_mode->refresh_rate(), |
| 1239 expected_mode->is_interlaced(), expected_mode->native(), |
| 1240 1.125f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1241 |
| 1242 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1231 display_manager()->GetActiveModeForDisplayId(display_id))); | 1243 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1232 SetDisplayUIScale(display_id, 0.8f); | 1244 SetDisplayUIScale(display_id, 0.8f); |
| 1233 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1245 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1234 expected_mode.ui_scale = 0.8f; | 1246 |
| 1235 EXPECT_TRUE(expected_mode.IsEquivalent( | 1247 expected_mode = new DisplayMode( |
| 1248 expected_mode->size(), expected_mode->refresh_rate(), |
| 1249 expected_mode->is_interlaced(), expected_mode->native(), |
| 1250 0.8f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1251 |
| 1252 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1236 display_manager()->GetActiveModeForDisplayId(display_id))); | 1253 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1237 SetDisplayUIScale(display_id, 0.75f); | 1254 SetDisplayUIScale(display_id, 0.75f); |
| 1238 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1255 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1239 EXPECT_TRUE(expected_mode.IsEquivalent( | 1256 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1240 display_manager()->GetActiveModeForDisplayId(display_id))); | 1257 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1241 SetDisplayUIScale(display_id, 0.625f); | 1258 SetDisplayUIScale(display_id, 0.625f); |
| 1242 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1259 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1243 expected_mode.ui_scale = 0.625f; | 1260 |
| 1244 EXPECT_TRUE(expected_mode.IsEquivalent( | 1261 expected_mode = new DisplayMode( |
| 1262 expected_mode->size(), expected_mode->refresh_rate(), |
| 1263 expected_mode->is_interlaced(), expected_mode->native(), |
| 1264 0.625f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1265 |
| 1266 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1245 display_manager()->GetActiveModeForDisplayId(display_id))); | 1267 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1246 SetDisplayUIScale(display_id, 0.6f); | 1268 SetDisplayUIScale(display_id, 0.6f); |
| 1247 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); | 1269 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1248 EXPECT_TRUE(expected_mode.IsEquivalent( | 1270 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1249 display_manager()->GetActiveModeForDisplayId(display_id))); | 1271 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1250 SetDisplayUIScale(display_id, 0.5f); | 1272 SetDisplayUIScale(display_id, 0.5f); |
| 1251 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); | 1273 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
| 1252 expected_mode.ui_scale = 0.5f; | 1274 |
| 1253 EXPECT_TRUE(expected_mode.IsEquivalent( | 1275 expected_mode = new DisplayMode( |
| 1276 expected_mode->size(), expected_mode->refresh_rate(), |
| 1277 expected_mode->is_interlaced(), expected_mode->native(), |
| 1278 0.5f /* ui_scale */, expected_mode->device_scale_factor()); |
| 1279 |
| 1280 EXPECT_TRUE(expected_mode->IsEquivalent( |
| 1254 display_manager()->GetActiveModeForDisplayId(display_id))); | 1281 display_manager()->GetActiveModeForDisplayId(display_id))); |
| 1255 } | 1282 } |
| 1256 | 1283 |
| 1257 // TODO(msw): Broken on Windows. http://crbug.com/584038 | 1284 // TODO(msw): Broken on Windows. http://crbug.com/584038 |
| 1258 #if defined(OS_CHROMEOS) | 1285 #if defined(OS_CHROMEOS) |
| 1259 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { | 1286 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { |
| 1260 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1287 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 1261 | 1288 |
| 1262 test::ScopedSetInternalDisplayId set_internal(display_id); | 1289 test::ScopedSetInternalDisplayId set_internal(display_id); |
| 1263 UpdateDisplay("1920x1080*1.25"); | 1290 UpdateDisplay("1920x1080*1.25"); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1287 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1314 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 1288 | 1315 |
| 1289 display_id++; | 1316 display_id++; |
| 1290 test::ScopedSetInternalDisplayId set_internal(display_id); | 1317 test::ScopedSetInternalDisplayId set_internal(display_id); |
| 1291 | 1318 |
| 1292 // Setup the display modes with UI-scale. | 1319 // Setup the display modes with UI-scale. |
| 1293 DisplayInfo native_display_info = | 1320 DisplayInfo native_display_info = |
| 1294 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); | 1321 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); |
| 1295 native_display_info.set_device_scale_factor(1.25); | 1322 native_display_info.set_device_scale_factor(1.25); |
| 1296 | 1323 |
| 1297 const DisplayMode base_mode(gfx::Size(1920, 1080), 60.0f, false, false); | 1324 const scoped_refptr<DisplayMode>& base_mode( |
| 1298 std::vector<DisplayMode> mode_list = CreateInternalDisplayModeList(base_mode); | 1325 new DisplayMode(gfx::Size(1920, 1080), 60.0f, false, false)); |
| 1326 DisplayInfo::DisplayModeList mode_list = |
| 1327 CreateInternalDisplayModeList(base_mode); |
| 1299 native_display_info.SetDisplayModes(mode_list); | 1328 native_display_info.SetDisplayModes(mode_list); |
| 1300 | 1329 |
| 1301 std::vector<DisplayInfo> display_info_list; | 1330 std::vector<DisplayInfo> display_info_list; |
| 1302 display_info_list.push_back(native_display_info); | 1331 display_info_list.push_back(native_display_info); |
| 1303 | 1332 |
| 1304 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1333 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 1305 | 1334 |
| 1306 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1335 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1307 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1336 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1308 } | 1337 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1320 const gfx::Insets dummy_overscan_insets; | 1349 const gfx::Insets dummy_overscan_insets; |
| 1321 display_manager()->RegisterDisplayProperty( | 1350 display_manager()->RegisterDisplayProperty( |
| 1322 display_id, display::Display::ROTATE_0, 1.0f, &dummy_overscan_insets, | 1351 display_id, display::Display::ROTATE_0, 1.0f, &dummy_overscan_insets, |
| 1323 gfx::Size(), 1.0f, ui::ColorCalibrationProfile()); | 1352 gfx::Size(), 1.0f, ui::ColorCalibrationProfile()); |
| 1324 | 1353 |
| 1325 // Setup the display modes with UI-scale. | 1354 // Setup the display modes with UI-scale. |
| 1326 DisplayInfo native_display_info = | 1355 DisplayInfo native_display_info = |
| 1327 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); | 1356 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); |
| 1328 native_display_info.set_device_scale_factor(1.25); | 1357 native_display_info.set_device_scale_factor(1.25); |
| 1329 | 1358 |
| 1330 const DisplayMode base_mode(gfx::Size(1920, 1080), 60.0f, false, false); | 1359 const scoped_refptr<DisplayMode>& base_mode( |
| 1331 std::vector<DisplayMode> mode_list = CreateInternalDisplayModeList(base_mode); | 1360 new DisplayMode(gfx::Size(1920, 1080), 60.0f, false, false)); |
| 1361 DisplayInfo::DisplayModeList mode_list = |
| 1362 CreateInternalDisplayModeList(base_mode); |
| 1332 native_display_info.SetDisplayModes(mode_list); | 1363 native_display_info.SetDisplayModes(mode_list); |
| 1333 | 1364 |
| 1334 std::vector<DisplayInfo> display_info_list; | 1365 std::vector<DisplayInfo> display_info_list; |
| 1335 display_info_list.push_back(native_display_info); | 1366 display_info_list.push_back(native_display_info); |
| 1336 | 1367 |
| 1337 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1368 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 1338 | 1369 |
| 1339 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1370 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
| 1340 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1371 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
| 1341 } | 1372 } |
| 1342 #endif // defined(OS_CHROMEOS) | 1373 #endif // defined(OS_CHROMEOS) |
| 1343 | 1374 |
| 1344 TEST_P(DisplayManagerTest, ResolutionChangeInUnifiedMode) { | 1375 TEST_P(DisplayManagerTest, ResolutionChangeInUnifiedMode) { |
| 1345 if (!SupportsMultipleDisplays()) | 1376 if (!SupportsMultipleDisplays()) |
| 1346 return; | 1377 return; |
| 1347 // Don't check root window destruction in unified mode. | 1378 // Don't check root window destruction in unified mode. |
| 1348 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 1379 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
| 1349 | 1380 |
| 1350 display_manager()->SetUnifiedDesktopEnabled(true); | 1381 display_manager()->SetUnifiedDesktopEnabled(true); |
| 1351 | 1382 |
| 1352 UpdateDisplay("200x200, 400x400"); | 1383 UpdateDisplay("200x200, 400x400"); |
| 1353 | 1384 |
| 1354 int64_t unified_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1385 int64_t unified_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 1355 DisplayInfo info = display_manager()->GetDisplayInfo(unified_id); | 1386 DisplayInfo info = display_manager()->GetDisplayInfo(unified_id); |
| 1356 ASSERT_EQ(2u, info.display_modes().size()); | 1387 ASSERT_EQ(2u, info.display_modes().size()); |
| 1357 EXPECT_EQ("400x200", info.display_modes()[0].size.ToString()); | 1388 EXPECT_EQ("400x200", info.display_modes()[0]->size().ToString()); |
| 1358 EXPECT_TRUE(info.display_modes()[0].native); | 1389 EXPECT_TRUE(info.display_modes()[0]->native()); |
| 1359 EXPECT_EQ("800x400", info.display_modes()[1].size.ToString()); | 1390 EXPECT_EQ("800x400", info.display_modes()[1]->size().ToString()); |
| 1360 EXPECT_FALSE(info.display_modes()[1].native); | 1391 EXPECT_FALSE(info.display_modes()[1]->native()); |
| 1361 EXPECT_EQ( | 1392 EXPECT_EQ( |
| 1362 "400x200", | 1393 "400x200", |
| 1363 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 1394 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
| 1364 DisplayMode active_mode = | 1395 scoped_refptr<DisplayMode> active_mode = |
| 1365 display_manager()->GetActiveModeForDisplayId(unified_id); | 1396 display_manager()->GetActiveModeForDisplayId(unified_id); |
| 1366 EXPECT_EQ(1.0f, active_mode.ui_scale); | 1397 EXPECT_EQ(1.0f, active_mode->ui_scale()); |
| 1367 EXPECT_EQ("400x200", active_mode.size.ToString()); | 1398 EXPECT_EQ("400x200", active_mode->size().ToString()); |
| 1368 | 1399 |
| 1369 EXPECT_TRUE(test::SetDisplayResolution(unified_id, gfx::Size(800, 400))); | 1400 EXPECT_TRUE(test::SetDisplayResolution(unified_id, gfx::Size(800, 400))); |
| 1370 EXPECT_EQ( | 1401 EXPECT_EQ( |
| 1371 "800x400", | 1402 "800x400", |
| 1372 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 1403 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
| 1373 | 1404 |
| 1374 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); | 1405 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); |
| 1375 EXPECT_EQ(1.0f, active_mode.ui_scale); | 1406 EXPECT_EQ(1.0f, active_mode->ui_scale()); |
| 1376 EXPECT_EQ("800x400", active_mode.size.ToString()); | 1407 EXPECT_EQ("800x400", active_mode->size().ToString()); |
| 1377 | 1408 |
| 1378 // resolution change will not persist in unified desktop mode. | 1409 // resolution change will not persist in unified desktop mode. |
| 1379 UpdateDisplay("600x600, 200x200"); | 1410 UpdateDisplay("600x600, 200x200"); |
| 1380 EXPECT_EQ( | 1411 EXPECT_EQ( |
| 1381 "1200x600", | 1412 "1200x600", |
| 1382 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 1413 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
| 1383 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); | 1414 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); |
| 1384 EXPECT_EQ(1.0f, active_mode.ui_scale); | 1415 EXPECT_EQ(1.0f, active_mode->ui_scale()); |
| 1385 EXPECT_TRUE(active_mode.native); | 1416 EXPECT_TRUE(active_mode->native()); |
| 1386 EXPECT_EQ("1200x600", active_mode.size.ToString()); | 1417 EXPECT_EQ("1200x600", active_mode->size().ToString()); |
| 1387 } | 1418 } |
| 1388 | 1419 |
| 1389 // TODO(scottmg): RootWindow doesn't get resized on Windows | 1420 // TODO(scottmg): RootWindow doesn't get resized on Windows |
| 1390 // Ash. http://crbug.com/247916. | 1421 // Ash. http://crbug.com/247916. |
| 1391 #if defined(OS_CHROMEOS) | 1422 #if defined(OS_CHROMEOS) |
| 1392 TEST_P(DisplayManagerTest, UpdateMouseCursorAfterRotateZoom) { | 1423 TEST_P(DisplayManagerTest, UpdateMouseCursorAfterRotateZoom) { |
| 1393 // Make sure just rotating will not change native location. | 1424 // Make sure just rotating will not change native location. |
| 1394 UpdateDisplay("300x200,200x150"); | 1425 UpdateDisplay("300x200,200x150"); |
| 1395 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); | 1426 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); |
| 1396 aura::Env* env = aura::Env::GetInstance(); | 1427 aura::Env* env = aura::Env::GetInstance(); |
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1898 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 1929 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
| 1899 | 1930 |
| 1900 display_manager()->SetUnifiedDesktopEnabled(true); | 1931 display_manager()->SetUnifiedDesktopEnabled(true); |
| 1901 display::Screen* screen = display::Screen::GetScreen(); | 1932 display::Screen* screen = display::Screen::GetScreen(); |
| 1902 | 1933 |
| 1903 // 2nd display is 2x. | 1934 // 2nd display is 2x. |
| 1904 UpdateDisplay("400x500,1000x800*2"); | 1935 UpdateDisplay("400x500,1000x800*2"); |
| 1905 DisplayInfo info = | 1936 DisplayInfo info = |
| 1906 display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); | 1937 display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); |
| 1907 EXPECT_EQ(2u, info.display_modes().size()); | 1938 EXPECT_EQ(2u, info.display_modes().size()); |
| 1908 EXPECT_EQ("1640x800", info.display_modes()[0].size.ToString()); | 1939 EXPECT_EQ("1640x800", info.display_modes()[0]->size().ToString()); |
| 1909 EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor); | 1940 EXPECT_EQ(2.0f, info.display_modes()[0]->device_scale_factor()); |
| 1910 EXPECT_EQ("1025x500", info.display_modes()[1].size.ToString()); | 1941 EXPECT_EQ("1025x500", info.display_modes()[1]->size().ToString()); |
| 1911 EXPECT_EQ(1.0f, info.display_modes()[1].device_scale_factor); | 1942 EXPECT_EQ(1.0f, info.display_modes()[1]->device_scale_factor()); |
| 1912 | 1943 |
| 1913 // For 1x, 400 + 500 / 800 * 100 = 1025. | 1944 // For 1x, 400 + 500 / 800 * 100 = 1025. |
| 1914 EXPECT_EQ("1025x500", screen->GetPrimaryDisplay().size().ToString()); | 1945 EXPECT_EQ("1025x500", screen->GetPrimaryDisplay().size().ToString()); |
| 1915 EXPECT_EQ("1025x500", | 1946 EXPECT_EQ("1025x500", |
| 1916 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1947 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1917 accelerators::ZoomInternalDisplay(false); | 1948 accelerators::ZoomInternalDisplay(false); |
| 1918 // (800 / 500 * 400 + 500) /2 = 820 | 1949 // (800 / 500 * 400 + 500) /2 = 820 |
| 1919 EXPECT_EQ("820x400", screen->GetPrimaryDisplay().size().ToString()); | 1950 EXPECT_EQ("820x400", screen->GetPrimaryDisplay().size().ToString()); |
| 1920 EXPECT_EQ("820x400", | 1951 EXPECT_EQ("820x400", |
| 1921 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1952 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1922 | 1953 |
| 1923 // 1st display is 2x. | 1954 // 1st display is 2x. |
| 1924 UpdateDisplay("1200x800*2,1000x1000"); | 1955 UpdateDisplay("1200x800*2,1000x1000"); |
| 1925 info = display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); | 1956 info = display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); |
| 1926 EXPECT_EQ(2u, info.display_modes().size()); | 1957 EXPECT_EQ(2u, info.display_modes().size()); |
| 1927 EXPECT_EQ("2000x800", info.display_modes()[0].size.ToString()); | 1958 EXPECT_EQ("2000x800", info.display_modes()[0]->size().ToString()); |
| 1928 EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor); | 1959 EXPECT_EQ(2.0f, info.display_modes()[0]->device_scale_factor()); |
| 1929 EXPECT_EQ("2500x1000", info.display_modes()[1].size.ToString()); | 1960 EXPECT_EQ("2500x1000", info.display_modes()[1]->size().ToString()); |
| 1930 EXPECT_EQ(1.0f, info.display_modes()[1].device_scale_factor); | 1961 EXPECT_EQ(1.0f, info.display_modes()[1]->device_scale_factor()); |
| 1931 | 1962 |
| 1932 // For 2x, (800 / 1000 * 1000 + 1200) / 2 = 1000 | 1963 // For 2x, (800 / 1000 * 1000 + 1200) / 2 = 1000 |
| 1933 EXPECT_EQ("1000x400", screen->GetPrimaryDisplay().size().ToString()); | 1964 EXPECT_EQ("1000x400", screen->GetPrimaryDisplay().size().ToString()); |
| 1934 EXPECT_EQ("1000x400", | 1965 EXPECT_EQ("1000x400", |
| 1935 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1966 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1936 accelerators::ZoomInternalDisplay(true); | 1967 accelerators::ZoomInternalDisplay(true); |
| 1937 // 1000 / 800 * 1200 + 1000 = 2500 | 1968 // 1000 / 800 * 1200 + 1000 = 2500 |
| 1938 EXPECT_EQ("2500x1000", screen->GetPrimaryDisplay().size().ToString()); | 1969 EXPECT_EQ("2500x1000", screen->GetPrimaryDisplay().size().ToString()); |
| 1939 EXPECT_EQ("2500x1000", | 1970 EXPECT_EQ("2500x1000", |
| 1940 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1971 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1941 | 1972 |
| 1942 // Both displays are 2x. | 1973 // Both displays are 2x. |
| 1943 // 1st display is 2x. | 1974 // 1st display is 2x. |
| 1944 UpdateDisplay("1200x800*2,1000x1000*2"); | 1975 UpdateDisplay("1200x800*2,1000x1000*2"); |
| 1945 info = display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); | 1976 info = display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); |
| 1946 EXPECT_EQ(2u, info.display_modes().size()); | 1977 EXPECT_EQ(2u, info.display_modes().size()); |
| 1947 EXPECT_EQ("2000x800", info.display_modes()[0].size.ToString()); | 1978 EXPECT_EQ("2000x800", info.display_modes()[0]->size().ToString()); |
| 1948 EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor); | 1979 EXPECT_EQ(2.0f, info.display_modes()[0]->device_scale_factor()); |
| 1949 EXPECT_EQ("2500x1000", info.display_modes()[1].size.ToString()); | 1980 EXPECT_EQ("2500x1000", info.display_modes()[1]->size().ToString()); |
| 1950 EXPECT_EQ(2.0f, info.display_modes()[1].device_scale_factor); | 1981 EXPECT_EQ(2.0f, info.display_modes()[1]->device_scale_factor()); |
| 1951 | 1982 |
| 1952 EXPECT_EQ("1000x400", screen->GetPrimaryDisplay().size().ToString()); | 1983 EXPECT_EQ("1000x400", screen->GetPrimaryDisplay().size().ToString()); |
| 1953 EXPECT_EQ("1000x400", | 1984 EXPECT_EQ("1000x400", |
| 1954 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1985 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1955 accelerators::ZoomInternalDisplay(true); | 1986 accelerators::ZoomInternalDisplay(true); |
| 1956 EXPECT_EQ("1250x500", screen->GetPrimaryDisplay().size().ToString()); | 1987 EXPECT_EQ("1250x500", screen->GetPrimaryDisplay().size().ToString()); |
| 1957 EXPECT_EQ("1250x500", | 1988 EXPECT_EQ("1250x500", |
| 1958 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1989 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1959 | 1990 |
| 1960 // Both displays have the same physical height, with the first display | 1991 // Both displays have the same physical height, with the first display |
| 1961 // being 2x. | 1992 // being 2x. |
| 1962 UpdateDisplay("1000x800*2,300x800"); | 1993 UpdateDisplay("1000x800*2,300x800"); |
| 1963 info = display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); | 1994 info = display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); |
| 1964 EXPECT_EQ(2u, info.display_modes().size()); | 1995 EXPECT_EQ(2u, info.display_modes().size()); |
| 1965 EXPECT_EQ("1300x800", info.display_modes()[0].size.ToString()); | 1996 EXPECT_EQ("1300x800", info.display_modes()[0]->size().ToString()); |
| 1966 EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor); | 1997 EXPECT_EQ(2.0f, info.display_modes()[0]->device_scale_factor()); |
| 1967 EXPECT_EQ("1300x800", info.display_modes()[1].size.ToString()); | 1998 EXPECT_EQ("1300x800", info.display_modes()[1]->size().ToString()); |
| 1968 EXPECT_EQ(1.0f, info.display_modes()[1].device_scale_factor); | 1999 EXPECT_EQ(1.0f, info.display_modes()[1]->device_scale_factor()); |
| 1969 | 2000 |
| 1970 EXPECT_EQ("650x400", screen->GetPrimaryDisplay().size().ToString()); | 2001 EXPECT_EQ("650x400", screen->GetPrimaryDisplay().size().ToString()); |
| 1971 EXPECT_EQ("650x400", | 2002 EXPECT_EQ("650x400", |
| 1972 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 2003 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1973 accelerators::ZoomInternalDisplay(true); | 2004 accelerators::ZoomInternalDisplay(true); |
| 1974 EXPECT_EQ("1300x800", screen->GetPrimaryDisplay().size().ToString()); | 2005 EXPECT_EQ("1300x800", screen->GetPrimaryDisplay().size().ToString()); |
| 1975 EXPECT_EQ("1300x800", | 2006 EXPECT_EQ("1300x800", |
| 1976 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 2007 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1977 | 2008 |
| 1978 // Both displays have the same physical height, with the second display | 2009 // Both displays have the same physical height, with the second display |
| 1979 // being 2x. | 2010 // being 2x. |
| 1980 UpdateDisplay("1000x800,300x800*2"); | 2011 UpdateDisplay("1000x800,300x800*2"); |
| 1981 EXPECT_EQ(2u, info.display_modes().size()); | 2012 EXPECT_EQ(2u, info.display_modes().size()); |
| 1982 EXPECT_EQ("1300x800", info.display_modes()[0].size.ToString()); | 2013 EXPECT_EQ("1300x800", info.display_modes()[0]->size().ToString()); |
| 1983 EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor); | 2014 EXPECT_EQ(2.0f, info.display_modes()[0]->device_scale_factor()); |
| 1984 EXPECT_EQ("1300x800", info.display_modes()[1].size.ToString()); | 2015 EXPECT_EQ("1300x800", info.display_modes()[1]->size().ToString()); |
| 1985 EXPECT_EQ(1.0f, info.display_modes()[1].device_scale_factor); | 2016 EXPECT_EQ(1.0f, info.display_modes()[1]->device_scale_factor()); |
| 1986 | 2017 |
| 1987 EXPECT_EQ("1300x800", screen->GetPrimaryDisplay().size().ToString()); | 2018 EXPECT_EQ("1300x800", screen->GetPrimaryDisplay().size().ToString()); |
| 1988 EXPECT_EQ("1300x800", | 2019 EXPECT_EQ("1300x800", |
| 1989 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 2020 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1990 accelerators::ZoomInternalDisplay(false); | 2021 accelerators::ZoomInternalDisplay(false); |
| 1991 EXPECT_EQ("650x400", screen->GetPrimaryDisplay().size().ToString()); | 2022 EXPECT_EQ("650x400", screen->GetPrimaryDisplay().size().ToString()); |
| 1992 EXPECT_EQ("650x400", | 2023 EXPECT_EQ("650x400", |
| 1993 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 2024 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
| 1994 } | 2025 } |
| 1995 | 2026 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2085 | 2116 |
| 2086 display_info_list.clear(); | 2117 display_info_list.clear(); |
| 2087 display_info_list.push_back(external_display_info); | 2118 display_info_list.push_back(external_display_info); |
| 2088 display_manager()->OnNativeDisplaysChanged(display_info_list); | 2119 display_manager()->OnNativeDisplaysChanged(display_info_list); |
| 2089 EXPECT_EQ(1U, display_manager()->active_display_list().size()); | 2120 EXPECT_EQ(1U, display_manager()->active_display_list().size()); |
| 2090 | 2121 |
| 2091 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); | 2122 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); |
| 2092 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); | 2123 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); |
| 2093 | 2124 |
| 2094 const DisplayInfo& info = display_manager()->GetDisplayInfo(internal_id); | 2125 const DisplayInfo& info = display_manager()->GetDisplayInfo(internal_id); |
| 2095 DisplayMode mode; | |
| 2096 | 2126 |
| 2097 EXPECT_FALSE(GetDisplayModeForNextUIScale(info, true, &mode)); | 2127 EXPECT_FALSE(!!GetDisplayModeForNextUIScale(info, true)); |
| 2098 EXPECT_FALSE(GetDisplayModeForNextUIScale(info, false, &mode)); | 2128 EXPECT_FALSE(!!GetDisplayModeForNextUIScale(info, false)); |
| 2099 EXPECT_FALSE(SetDisplayUIScale(internal_id, 1.0f)); | 2129 EXPECT_FALSE(SetDisplayUIScale(internal_id, 1.0f)); |
| 2100 | 2130 |
| 2101 DisplayInfo invalid_info; | 2131 DisplayInfo invalid_info; |
| 2102 EXPECT_FALSE(GetDisplayModeForNextUIScale(invalid_info, true, &mode)); | 2132 EXPECT_FALSE(!!GetDisplayModeForNextUIScale(invalid_info, true)); |
| 2103 EXPECT_FALSE(GetDisplayModeForNextUIScale(invalid_info, false, &mode)); | 2133 EXPECT_FALSE(!!GetDisplayModeForNextUIScale(invalid_info, false)); |
| 2104 EXPECT_FALSE(SetDisplayUIScale(display::Display::kInvalidDisplayID, 1.0f)); | 2134 EXPECT_FALSE(SetDisplayUIScale(display::Display::kInvalidDisplayID, 1.0f)); |
| 2105 } | 2135 } |
| 2106 | 2136 |
| 2107 // Make sure that bad layout information is ignored and does not crash. | 2137 // Make sure that bad layout information is ignored and does not crash. |
| 2108 TEST_P(DisplayManagerTest, DontRegisterBadConfig) { | 2138 TEST_P(DisplayManagerTest, DontRegisterBadConfig) { |
| 2109 if (!SupportsMultipleDisplays()) | 2139 if (!SupportsMultipleDisplays()) |
| 2110 return; | 2140 return; |
| 2111 display::DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2); | 2141 display::DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2); |
| 2112 display::DisplayLayoutBuilder builder(1); | 2142 display::DisplayLayoutBuilder builder(1); |
| 2113 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0); | 2143 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0); |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2327 const display::DisplayLayout& stored = | 2357 const display::DisplayLayout& stored = |
| 2328 layout_store->GetRegisteredDisplayLayout(list); | 2358 layout_store->GetRegisteredDisplayLayout(list); |
| 2329 | 2359 |
| 2330 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); | 2360 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); |
| 2331 EXPECT_EQ(id2, stored.placement_list[0].display_id); | 2361 EXPECT_EQ(id2, stored.placement_list[0].display_id); |
| 2332 } | 2362 } |
| 2333 | 2363 |
| 2334 #endif // OS_CHROMEOS | 2364 #endif // OS_CHROMEOS |
| 2335 | 2365 |
| 2336 } // namespace ash | 2366 } // namespace ash |
| OLD | NEW |