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

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

Issue 2426103004: Specify a default display UI scale to reset the zoom to (Closed)
Patch Set: Working test Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/display/display_manager.cc ('k') | ash/display/root_window_transformers_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/display/display_manager.h" 5 #include "ash/display/display_manager.h"
6 6
7 #include "ash/accelerators/accelerator_commands_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 1118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 post_rotation_info.GetActiveRotation()); 1129 post_rotation_info.GetActiveRotation());
1130 } 1130 }
1131 1131
1132 // TODO(msw): Broken on Windows. http://crbug.com/584038 1132 // TODO(msw): Broken on Windows. http://crbug.com/584038
1133 #if defined(OS_CHROMEOS) 1133 #if defined(OS_CHROMEOS)
1134 TEST_P(DisplayManagerTest, UIScale) { 1134 TEST_P(DisplayManagerTest, UIScale) {
1135 test::ScopedDisable125DSFForUIScaling disable; 1135 test::ScopedDisable125DSFForUIScaling disable;
1136 1136
1137 UpdateDisplay("1280x800"); 1137 UpdateDisplay("1280x800");
1138 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); 1138 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id();
1139 display_manager()->SetDisplayUIScale(display_id, 1.125f); 1139 test::DisplayManagerTestApi(display_manager())
1140 .SetDisplayUIScale(display_id, 1.125f);
1140 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); 1141 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale());
1141 display_manager()->SetDisplayUIScale(display_id, 0.8f); 1142 test::DisplayManagerTestApi(display_manager())
1143 .SetDisplayUIScale(display_id, 0.8f);
1142 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1144 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1143 display_manager()->SetDisplayUIScale(display_id, 0.75f); 1145 test::DisplayManagerTestApi(display_manager())
1146 .SetDisplayUIScale(display_id, 0.75f);
1144 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1147 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1145 display_manager()->SetDisplayUIScale(display_id, 0.625f); 1148 test::DisplayManagerTestApi(display_manager())
1149 .SetDisplayUIScale(display_id, 0.625f);
1146 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1150 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1147 1151
1148 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); 1152 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id);
1149 1153
1150 display_manager()->SetDisplayUIScale(display_id, 1.5f); 1154 test::DisplayManagerTestApi(display_manager())
1155 .SetDisplayUIScale(display_id, 1.5f);
1151 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1156 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1152 display_manager()->SetDisplayUIScale(display_id, 1.25f); 1157 test::DisplayManagerTestApi(display_manager())
1158 .SetDisplayUIScale(display_id, 1.25f);
1153 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1159 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1154 display_manager()->SetDisplayUIScale(display_id, 1.125f); 1160 test::DisplayManagerTestApi(display_manager())
1161 .SetDisplayUIScale(display_id, 1.125f);
1155 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); 1162 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale());
1156 display_manager()->SetDisplayUIScale(display_id, 0.8f); 1163 test::DisplayManagerTestApi(display_manager())
1164 .SetDisplayUIScale(display_id, 0.8f);
1157 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); 1165 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale());
1158 display_manager()->SetDisplayUIScale(display_id, 0.75f); 1166 test::DisplayManagerTestApi(display_manager())
1167 .SetDisplayUIScale(display_id, 0.75f);
1159 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); 1168 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale());
1160 display_manager()->SetDisplayUIScale(display_id, 0.625f); 1169 test::DisplayManagerTestApi(display_manager())
1170 .SetDisplayUIScale(display_id, 0.625f);
1161 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); 1171 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale());
1162 display_manager()->SetDisplayUIScale(display_id, 0.6f); 1172 test::DisplayManagerTestApi(display_manager())
1173 .SetDisplayUIScale(display_id, 0.6f);
1163 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); 1174 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale());
1164 display_manager()->SetDisplayUIScale(display_id, 0.5f); 1175 test::DisplayManagerTestApi(display_manager())
1176 .SetDisplayUIScale(display_id, 0.5f);
1165 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); 1177 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale());
1166 1178
1167 UpdateDisplay("1366x768"); 1179 UpdateDisplay("1366x768");
1168 display_manager()->SetDisplayUIScale(display_id, 1.5f); 1180 test::DisplayManagerTestApi(display_manager())
1181 .SetDisplayUIScale(display_id, 1.5f);
1169 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1182 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1170 display_manager()->SetDisplayUIScale(display_id, 1.25f); 1183 test::DisplayManagerTestApi(display_manager())
1184 .SetDisplayUIScale(display_id, 1.25f);
1171 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1185 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1172 display_manager()->SetDisplayUIScale(display_id, 1.125f); 1186 test::DisplayManagerTestApi(display_manager())
1187 .SetDisplayUIScale(display_id, 1.125f);
1173 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); 1188 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale());
1174 display_manager()->SetDisplayUIScale(display_id, 0.8f); 1189 test::DisplayManagerTestApi(display_manager())
1190 .SetDisplayUIScale(display_id, 0.8f);
1175 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); 1191 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale());
1176 display_manager()->SetDisplayUIScale(display_id, 0.75f); 1192 test::DisplayManagerTestApi(display_manager())
1193 .SetDisplayUIScale(display_id, 0.75f);
1177 EXPECT_EQ(0.75f, GetDisplayInfoAt(0).configured_ui_scale()); 1194 EXPECT_EQ(0.75f, GetDisplayInfoAt(0).configured_ui_scale());
1178 display_manager()->SetDisplayUIScale(display_id, 0.6f); 1195 test::DisplayManagerTestApi(display_manager())
1196 .SetDisplayUIScale(display_id, 0.6f);
1179 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale()); 1197 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale());
1180 display_manager()->SetDisplayUIScale(display_id, 0.625f); 1198 test::DisplayManagerTestApi(display_manager())
1199 .SetDisplayUIScale(display_id, 0.625f);
1181 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale()); 1200 EXPECT_EQ(0.6f, GetDisplayInfoAt(0).configured_ui_scale());
1182 display_manager()->SetDisplayUIScale(display_id, 0.5f); 1201 test::DisplayManagerTestApi(display_manager())
1202 .SetDisplayUIScale(display_id, 0.5f);
1183 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); 1203 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale());
1184 1204
1185 UpdateDisplay("1280x850*2"); 1205 UpdateDisplay("1280x850*2");
1186 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1206 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1187 display_manager()->SetDisplayUIScale(display_id, 1.5f); 1207 test::DisplayManagerTestApi(display_manager())
1208 .SetDisplayUIScale(display_id, 1.5f);
1188 EXPECT_EQ(1.5f, GetDisplayInfoAt(0).configured_ui_scale()); 1209 EXPECT_EQ(1.5f, GetDisplayInfoAt(0).configured_ui_scale());
1189 display_manager()->SetDisplayUIScale(display_id, 1.25f); 1210 test::DisplayManagerTestApi(display_manager())
1211 .SetDisplayUIScale(display_id, 1.25f);
1190 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); 1212 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale());
1191 display_manager()->SetDisplayUIScale(display_id, 1.125f); 1213 test::DisplayManagerTestApi(display_manager())
1214 .SetDisplayUIScale(display_id, 1.125f);
1192 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); 1215 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale());
1193 display_manager()->SetDisplayUIScale(display_id, 1.0f); 1216 test::DisplayManagerTestApi(display_manager())
1217 .SetDisplayUIScale(display_id, 1.0f);
1194 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1218 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1195 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); 1219 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay();
1196 EXPECT_EQ(2.0f, display.device_scale_factor()); 1220 EXPECT_EQ(2.0f, display.device_scale_factor());
1197 EXPECT_EQ("640x425", display.bounds().size().ToString()); 1221 EXPECT_EQ("640x425", display.bounds().size().ToString());
1198 1222
1199 display_manager()->SetDisplayUIScale(display_id, 0.8f); 1223 test::DisplayManagerTestApi(display_manager())
1224 .SetDisplayUIScale(display_id, 0.8f);
1200 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); 1225 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale());
1201 display_manager()->SetDisplayUIScale(display_id, 0.75f); 1226 test::DisplayManagerTestApi(display_manager())
1227 .SetDisplayUIScale(display_id, 0.75f);
1202 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); 1228 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale());
1203 display_manager()->SetDisplayUIScale(display_id, 0.625f); 1229 test::DisplayManagerTestApi(display_manager())
1230 .SetDisplayUIScale(display_id, 0.625f);
1204 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); 1231 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale());
1205 display_manager()->SetDisplayUIScale(display_id, 0.6f); 1232 test::DisplayManagerTestApi(display_manager())
1233 .SetDisplayUIScale(display_id, 0.6f);
1206 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); 1234 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale());
1207 display_manager()->SetDisplayUIScale(display_id, 0.5f); 1235 test::DisplayManagerTestApi(display_manager())
1236 .SetDisplayUIScale(display_id, 0.5f);
1208 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); 1237 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale());
1209 1238
1210 display_manager()->SetDisplayUIScale(display_id, 2.0f); 1239 test::DisplayManagerTestApi(display_manager())
1240 .SetDisplayUIScale(display_id, 2.0f);
1211 EXPECT_EQ(2.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1241 EXPECT_EQ(2.0f, GetDisplayInfoAt(0).configured_ui_scale());
1212 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); 1242 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1213 display = display::Screen::GetScreen()->GetPrimaryDisplay(); 1243 display = display::Screen::GetScreen()->GetPrimaryDisplay();
1214 EXPECT_EQ(1.0f, display.device_scale_factor()); 1244 EXPECT_EQ(1.0f, display.device_scale_factor());
1215 EXPECT_EQ("1280x850", display.bounds().size().ToString()); 1245 EXPECT_EQ("1280x850", display.bounds().size().ToString());
1216 1246
1217 // 1.25 ui scaling on 1.25 DSF device should use 1.0 DSF 1247 // 1.25 ui scaling on 1.25 DSF device should use 1.0 DSF
1218 // on screen. 1248 // on screen.
1219 UpdateDisplay("1280x850*1.25"); 1249 UpdateDisplay("1280x850*1.25");
1220 display_manager()->SetDisplayUIScale(display_id, 1.25f); 1250 test::DisplayManagerTestApi(display_manager())
1251 .SetDisplayUIScale(display_id, 1.25f);
1221 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); 1252 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale());
1222 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); 1253 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1223 display = display::Screen::GetScreen()->GetPrimaryDisplay(); 1254 display = display::Screen::GetScreen()->GetPrimaryDisplay();
1224 EXPECT_EQ(1.0f, display.device_scale_factor()); 1255 EXPECT_EQ(1.0f, display.device_scale_factor());
1225 EXPECT_EQ("1280x850", display.bounds().size().ToString()); 1256 EXPECT_EQ("1280x850", display.bounds().size().ToString());
1226 } 1257 }
1227 #endif // defined(OS_CHROMEOS) 1258 #endif // defined(OS_CHROMEOS)
1228 1259
1229 TEST_P(DisplayManagerTest, UIScaleWithDisplayMode) { 1260 TEST_P(DisplayManagerTest, UIScaleWithDisplayMode) {
1230 int display_id = 1000; 1261 int display_id = 1000;
(...skipping 11 matching lines...) Expand all
1242 std::vector<display::ManagedDisplayInfo> display_info_list; 1273 std::vector<display::ManagedDisplayInfo> display_info_list;
1243 display_info_list.push_back(native_display_info); 1274 display_info_list.push_back(native_display_info);
1244 display_manager()->OnNativeDisplaysChanged(display_info_list); 1275 display_manager()->OnNativeDisplaysChanged(display_info_list);
1245 1276
1246 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode; 1277 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode;
1247 EXPECT_TRUE(expected_mode->IsEquivalent( 1278 EXPECT_TRUE(expected_mode->IsEquivalent(
1248 display_manager()->GetActiveModeForDisplayId(display_id))); 1279 display_manager()->GetActiveModeForDisplayId(display_id)));
1249 1280
1250 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); 1281 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id);
1251 1282
1252 display_manager()->SetDisplayUIScale(display_id, 1.5f); 1283 test::DisplayManagerTestApi(display_manager())
1284 .SetDisplayUIScale(display_id, 1.5f);
1253 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1285 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1254 EXPECT_TRUE(expected_mode->IsEquivalent( 1286 EXPECT_TRUE(expected_mode->IsEquivalent(
1255 display_manager()->GetActiveModeForDisplayId(display_id))); 1287 display_manager()->GetActiveModeForDisplayId(display_id)));
1256 display_manager()->SetDisplayUIScale(display_id, 1.25f); 1288 test::DisplayManagerTestApi(display_manager())
1289 .SetDisplayUIScale(display_id, 1.25f);
1257 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); 1290 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale());
1258 EXPECT_TRUE(expected_mode->IsEquivalent( 1291 EXPECT_TRUE(expected_mode->IsEquivalent(
1259 display_manager()->GetActiveModeForDisplayId(display_id))); 1292 display_manager()->GetActiveModeForDisplayId(display_id)));
1260 display_manager()->SetDisplayUIScale(display_id, 1.125f); 1293 test::DisplayManagerTestApi(display_manager())
1294 .SetDisplayUIScale(display_id, 1.125f);
1261 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); 1295 EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale());
1262 1296
1263 expected_mode = new display::ManagedDisplayMode( 1297 expected_mode = new display::ManagedDisplayMode(
1264 expected_mode->size(), expected_mode->refresh_rate(), 1298 expected_mode->size(), expected_mode->refresh_rate(),
1265 expected_mode->is_interlaced(), expected_mode->native(), 1299 expected_mode->is_interlaced(), expected_mode->native(),
1266 1.125f /* ui_scale */, expected_mode->device_scale_factor()); 1300 1.125f /* ui_scale */, expected_mode->device_scale_factor());
1267 1301
1268 EXPECT_TRUE(expected_mode->IsEquivalent( 1302 EXPECT_TRUE(expected_mode->IsEquivalent(
1269 display_manager()->GetActiveModeForDisplayId(display_id))); 1303 display_manager()->GetActiveModeForDisplayId(display_id)));
1270 display_manager()->SetDisplayUIScale(display_id, 0.8f); 1304 test::DisplayManagerTestApi(display_manager())
1305 .SetDisplayUIScale(display_id, 0.8f);
1271 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); 1306 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale());
1272 1307
1273 expected_mode = new display::ManagedDisplayMode( 1308 expected_mode = new display::ManagedDisplayMode(
1274 expected_mode->size(), expected_mode->refresh_rate(), 1309 expected_mode->size(), expected_mode->refresh_rate(),
1275 expected_mode->is_interlaced(), expected_mode->native(), 1310 expected_mode->is_interlaced(), expected_mode->native(),
1276 0.8f /* ui_scale */, expected_mode->device_scale_factor()); 1311 0.8f /* ui_scale */, expected_mode->device_scale_factor());
1277 1312
1278 EXPECT_TRUE(expected_mode->IsEquivalent( 1313 EXPECT_TRUE(expected_mode->IsEquivalent(
1279 display_manager()->GetActiveModeForDisplayId(display_id))); 1314 display_manager()->GetActiveModeForDisplayId(display_id)));
1280 display_manager()->SetDisplayUIScale(display_id, 0.75f); 1315 test::DisplayManagerTestApi(display_manager())
1316 .SetDisplayUIScale(display_id, 0.75f);
1281 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); 1317 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale());
1282 EXPECT_TRUE(expected_mode->IsEquivalent( 1318 EXPECT_TRUE(expected_mode->IsEquivalent(
1283 display_manager()->GetActiveModeForDisplayId(display_id))); 1319 display_manager()->GetActiveModeForDisplayId(display_id)));
1284 display_manager()->SetDisplayUIScale(display_id, 0.625f); 1320 test::DisplayManagerTestApi(display_manager())
1321 .SetDisplayUIScale(display_id, 0.625f);
1285 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); 1322 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale());
1286 1323
1287 expected_mode = new display::ManagedDisplayMode( 1324 expected_mode = new display::ManagedDisplayMode(
1288 expected_mode->size(), expected_mode->refresh_rate(), 1325 expected_mode->size(), expected_mode->refresh_rate(),
1289 expected_mode->is_interlaced(), expected_mode->native(), 1326 expected_mode->is_interlaced(), expected_mode->native(),
1290 0.625f /* ui_scale */, expected_mode->device_scale_factor()); 1327 0.625f /* ui_scale */, expected_mode->device_scale_factor());
1291 1328
1292 EXPECT_TRUE(expected_mode->IsEquivalent( 1329 EXPECT_TRUE(expected_mode->IsEquivalent(
1293 display_manager()->GetActiveModeForDisplayId(display_id))); 1330 display_manager()->GetActiveModeForDisplayId(display_id)));
1294 display_manager()->SetDisplayUIScale(display_id, 0.6f); 1331 test::DisplayManagerTestApi(display_manager())
1332 .SetDisplayUIScale(display_id, 0.6f);
1295 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); 1333 EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale());
1296 EXPECT_TRUE(expected_mode->IsEquivalent( 1334 EXPECT_TRUE(expected_mode->IsEquivalent(
1297 display_manager()->GetActiveModeForDisplayId(display_id))); 1335 display_manager()->GetActiveModeForDisplayId(display_id)));
1298 display_manager()->SetDisplayUIScale(display_id, 0.5f); 1336 test::DisplayManagerTestApi(display_manager())
1337 .SetDisplayUIScale(display_id, 0.5f);
1299 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); 1338 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale());
1300 1339
1301 expected_mode = new display::ManagedDisplayMode( 1340 expected_mode = new display::ManagedDisplayMode(
1302 expected_mode->size(), expected_mode->refresh_rate(), 1341 expected_mode->size(), expected_mode->refresh_rate(),
1303 expected_mode->is_interlaced(), expected_mode->native(), 1342 expected_mode->is_interlaced(), expected_mode->native(),
1304 0.5f /* ui_scale */, expected_mode->device_scale_factor()); 1343 0.5f /* ui_scale */, expected_mode->device_scale_factor());
1305 1344
1306 EXPECT_TRUE(expected_mode->IsEquivalent( 1345 EXPECT_TRUE(expected_mode->IsEquivalent(
1307 display_manager()->GetActiveModeForDisplayId(display_id))); 1346 display_manager()->GetActiveModeForDisplayId(display_id)));
1308 } 1347 }
1309 1348
1349 // Tests that ResetInternalDisplayZoom() resets to the default 0.8f UI scale
1350 // defined for the 1.25x displays.
1351 TEST_P(DisplayManagerTest, ResetInternalDisplayZoomFor1_25x) {
1352 // Setup the display modes with UI-scale.
1353 const scoped_refptr<display::ManagedDisplayMode> base_mode(
1354 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f,
1355 false /* is_interlaced */,
1356 true /* native */, 1.0f /* ui_scale */,
1357 1.25f /* device_scale_factor */));
1358 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list =
1359 CreateInternalManagedDisplayModeList(base_mode);
1360
1361 const int display_id = 1000;
1362 display::ManagedDisplayInfo native_display_info =
1363 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080));
1364 native_display_info.set_device_scale_factor(1.25f);
1365 native_display_info.SetManagedDisplayModes(mode_list);
1366
1367 std::vector<display::ManagedDisplayInfo> display_info_list;
1368 display_info_list.push_back(native_display_info);
1369 display_manager()->OnNativeDisplaysChanged(display_info_list);
1370
1371 scoped_refptr<display::ManagedDisplayMode> expected_mode = base_mode;
1372 EXPECT_TRUE(expected_mode->IsEquivalent(
1373 display_manager()->GetActiveModeForDisplayId(display_id)));
1374
1375 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id);
1376
1377 test::DisplayManagerTestApi(display_manager())
1378 .SetDisplayUIScale(display_id, 0.5f);
1379 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor());
1380 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1381 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale());
1382 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString());
1383
1384 // Reset the internal display zoom and expect the UI scale to go to the
1385 // default 0.8f.
1386 display_manager()->ResetInternalDisplayZoom();
1387 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor());
1388 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1389 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale());
1390 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString());
1391 }
1392
1310 // TODO(msw): Broken on Windows. http://crbug.com/584038 1393 // TODO(msw): Broken on Windows. http://crbug.com/584038
1311 #if defined(OS_CHROMEOS) 1394 #if defined(OS_CHROMEOS)
1312 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { 1395 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) {
1313 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); 1396 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id();
1314 1397
1315 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id); 1398 test::ScopedSetInternalDisplayId set_internal(display_manager(), display_id);
1316 UpdateDisplay("1920x1080*1.25"); 1399 UpdateDisplay("1920x1080*1.25");
1317 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); 1400 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor());
1318 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); 1401 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1319 1402
1320 display_manager()->SetDisplayUIScale(display_id, 0.8f); 1403 test::DisplayManagerTestApi(display_manager())
1404 .SetDisplayUIScale(display_id, 0.8f);
1321 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); 1405 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor());
1322 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); 1406 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1323 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); 1407 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString());
1324 1408
1325 display_manager()->SetDisplayUIScale(display_id, 0.5f); 1409 test::DisplayManagerTestApi(display_manager())
1410 .SetDisplayUIScale(display_id, 0.5f);
1326 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); 1411 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor());
1327 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); 1412 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1328 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); 1413 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString());
1329 1414
1330 display_manager()->SetDisplayUIScale(display_id, 1.25f); 1415 test::DisplayManagerTestApi(display_manager())
1416 .SetDisplayUIScale(display_id, 1.25f);
1331 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); 1417 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor());
1332 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale()); 1418 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale());
1333 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString()); 1419 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString());
1334 } 1420 }
1335 #endif // defined(OS_CHROMEOS) 1421 #endif // defined(OS_CHROMEOS)
1336 1422
1337 // TODO(msw): Broken on Windows. http://crbug.com/584038 1423 // TODO(msw): Broken on Windows. http://crbug.com/584038
1338 #if defined(OS_CHROMEOS) 1424 #if defined(OS_CHROMEOS)
1339 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScaling) { 1425 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScaling) {
1340 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); 1426 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id();
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
2147 display_info_list.clear(); 2233 display_info_list.clear();
2148 display_info_list.push_back(external_display_info); 2234 display_info_list.push_back(external_display_info);
2149 display_manager()->OnNativeDisplaysChanged(display_info_list); 2235 display_manager()->OnNativeDisplaysChanged(display_info_list);
2150 EXPECT_EQ(1U, display_manager()->active_display_list().size()); 2236 EXPECT_EQ(1U, display_manager()->active_display_list().size());
2151 2237
2152 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); 2238 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id));
2153 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); 2239 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id));
2154 2240
2155 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(true)); 2241 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(true));
2156 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(false)); 2242 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(false));
2157 EXPECT_FALSE(display_manager()->SetDisplayUIScale(internal_id, 1.0f)); 2243 EXPECT_FALSE(test::DisplayManagerTestApi(display_manager())
2244 .SetDisplayUIScale(internal_id, 1.0f));
2158 } 2245 }
2159 2246
2160 // Make sure that bad layout information is ignored and does not crash. 2247 // Make sure that bad layout information is ignored and does not crash.
2161 TEST_P(DisplayManagerTest, DontRegisterBadConfig) { 2248 TEST_P(DisplayManagerTest, DontRegisterBadConfig) {
2162 if (!SupportsMultipleDisplays()) 2249 if (!SupportsMultipleDisplays())
2163 return; 2250 return;
2164 display::DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2); 2251 display::DisplayIdList list = ash::test::CreateDisplayIdList2(1, 2);
2165 display::DisplayLayoutBuilder builder(1); 2252 display::DisplayLayoutBuilder builder(1);
2166 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0); 2253 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0);
2167 builder.AddDisplayPlacement(3, 1, display::DisplayPlacement::BOTTOM, 0); 2254 builder.AddDisplayPlacement(3, 1, display::DisplayPlacement::BOTTOM, 0);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
2264 } 2351 }
2265 2352
2266 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200Internal) { 2353 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200Internal) {
2267 FontTestHelper helper(2.0f, FontTestHelper::INTERNAL); 2354 FontTestHelper helper(2.0f, FontTestHelper::INTERNAL);
2268 ASSERT_DOUBLE_EQ( 2355 ASSERT_DOUBLE_EQ(
2269 2.0f, 2356 2.0f,
2270 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); 2357 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor());
2271 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); 2358 EXPECT_TRUE(IsTextSubpixelPositioningEnabled());
2272 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); 2359 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams());
2273 2360
2274 helper.display_manager()->SetDisplayUIScale( 2361 test::DisplayManagerTestApi(helper.display_manager())
2275 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 2.0f); 2362 .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(),
2363 2.0f);
2276 2364
2277 ASSERT_DOUBLE_EQ( 2365 ASSERT_DOUBLE_EQ(
2278 1.0f, 2366 1.0f,
2279 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); 2367 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor());
2280 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); 2368 EXPECT_FALSE(IsTextSubpixelPositioningEnabled());
2281 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); 2369 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams());
2282 } 2370 }
2283 2371
2284 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100External) { 2372 TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100External) {
2285 FontTestHelper helper(1.0f, FontTestHelper::EXTERNAL); 2373 FontTestHelper helper(1.0f, FontTestHelper::EXTERNAL);
(...skipping 24 matching lines...) Expand all
2310 2398
2311 TEST_F(DisplayManagerFontTest, 2399 TEST_F(DisplayManagerFontTest,
2312 TextSubpixelPositioningWithDsf125InternalWithScaling) { 2400 TextSubpixelPositioningWithDsf125InternalWithScaling) {
2313 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); 2401 FontTestHelper helper(1.25f, FontTestHelper::INTERNAL);
2314 ASSERT_DOUBLE_EQ( 2402 ASSERT_DOUBLE_EQ(
2315 1.0f, 2403 1.0f,
2316 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); 2404 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor());
2317 EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); 2405 EXPECT_FALSE(IsTextSubpixelPositioningEnabled());
2318 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); 2406 EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams());
2319 2407
2320 helper.display_manager()->SetDisplayUIScale( 2408 test::DisplayManagerTestApi(helper.display_manager())
2321 display::Screen::GetScreen()->GetPrimaryDisplay().id(), 0.8f); 2409 .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(),
2410 0.8f);
2322 2411
2323 ASSERT_DOUBLE_EQ( 2412 ASSERT_DOUBLE_EQ(
2324 1.25f, 2413 1.25f,
2325 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); 2414 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor());
2326 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); 2415 EXPECT_TRUE(IsTextSubpixelPositioningEnabled());
2327 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); 2416 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams());
2328 } 2417 }
2329 2418
2330 TEST_P(DisplayManagerTest, CheckInitializationOfRotationProperty) { 2419 TEST_P(DisplayManagerTest, CheckInitializationOfRotationProperty) {
2331 int64_t id = display_manager()->GetDisplayAt(0).id(); 2420 int64_t id = display_manager()->GetDisplayAt(0).id();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2381 const display::DisplayLayout& stored = 2470 const display::DisplayLayout& stored =
2382 layout_store->GetRegisteredDisplayLayout(list); 2471 layout_store->GetRegisteredDisplayLayout(list);
2383 2472
2384 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); 2473 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id);
2385 EXPECT_EQ(id2, stored.placement_list[0].display_id); 2474 EXPECT_EQ(id2, stored.placement_list[0].display_id);
2386 } 2475 }
2387 2476
2388 #endif // OS_CHROMEOS 2477 #endif // OS_CHROMEOS
2389 2478
2390 } // namespace ash 2479 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_manager.cc ('k') | ash/display/root_window_transformers_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698