Index: ash/display/display_manager_unittest.cc |
diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc |
index 55ccd03a6c856ea2364c4d1c5fba4cc4e62d90d6..2d3fc3e185920c9ce9196ec2f3398dbc1d5b649f 100644 |
--- a/ash/display/display_manager_unittest.cc |
+++ b/ash/display/display_manager_unittest.cc |
@@ -736,13 +736,19 @@ TEST_F(DisplayManagerTest, DontRememberBestResolution) { |
display_manager()->OnNativeDisplaysChanged(display_info_list); |
DisplayMode mode; |
+ DisplayMode expected_mode; |
+ expected_mode.size = gfx::Size(1000, 500); |
EXPECT_FALSE( |
display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
// Unsupported resolution. |
display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 4000)); |
EXPECT_FALSE( |
display_manager()->GetSelectedModeForDisplayId(display_id, &mode)); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
// Supported resolution. |
display_manager()->SetDisplayResolution(display_id, gfx::Size(800, 300)); |
@@ -751,6 +757,9 @@ TEST_F(DisplayManagerTest, DontRememberBestResolution) { |
EXPECT_EQ("800x300", mode.size.ToString()); |
EXPECT_EQ(59.0f, mode.refresh_rate); |
EXPECT_FALSE(mode.native); |
+ expected_mode.size = gfx::Size(800, 300); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
// Best resolution. |
display_manager()->SetDisplayResolution(display_id, gfx::Size(1000, 500)); |
@@ -759,6 +768,9 @@ TEST_F(DisplayManagerTest, DontRememberBestResolution) { |
EXPECT_EQ("1000x500", mode.size.ToString()); |
EXPECT_EQ(58.0f, mode.refresh_rate); |
EXPECT_TRUE(mode.native); |
+ expected_mode.size = gfx::Size(1000, 500); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
} |
TEST_F(DisplayManagerTest, ResolutionFallback) { |
@@ -965,6 +977,88 @@ TEST_F(DisplayManagerTest, UIScale) { |
EXPECT_EQ("1280x850", display.bounds().size().ToString()); |
} |
+TEST_F(DisplayManagerTest, UIScaleWithDisplayMode) { |
+ int display_id = 1000; |
+ |
+ // Setup the display modes with UI-scale. |
+ DisplayInfo native_display_info = |
+ CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1280, 800)); |
+ std::vector<DisplayMode> display_modes; |
+ const DisplayMode base_mode(gfx::Size(1280, 800), 60.0f, false, false); |
+ std::vector<float> scales = |
+ DisplayManager::GetScalesForDisplay(native_display_info); |
+ for (size_t i = 0; i < scales.size(); i++) { |
+ DisplayMode mode = base_mode; |
+ mode.ui_scale = scales[i]; |
+ mode.native = (scales[i] == 1.0f); |
+ display_modes.push_back(mode); |
+ } |
+ native_display_info.set_display_modes(display_modes); |
+ std::vector<DisplayInfo> display_info_list; |
+ display_info_list.push_back(native_display_info); |
+ display_manager()->OnNativeDisplaysChanged(display_info_list); |
+ |
+ DisplayMode expected_mode = base_mode; |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ |
+ display_manager()->SetDisplayUIScale(display_id, 1.125f); |
+ EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.8f); |
+ EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.75f); |
+ EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.625f); |
+ EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ |
+ gfx::Display::SetInternalDisplayId(display_id); |
+ |
+ display_manager()->SetDisplayUIScale(display_id, 1.5f); |
+ EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 1.25f); |
+ EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 1.125f); |
+ EXPECT_EQ(1.125f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ expected_mode.ui_scale = 1.125f; |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.8f); |
+ EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ expected_mode.ui_scale = 0.8f; |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.75f); |
+ EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.625f); |
+ EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ expected_mode.ui_scale = 0.625f; |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.6f); |
+ EXPECT_EQ(0.625f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+ display_manager()->SetDisplayUIScale(display_id, 0.5f); |
+ EXPECT_EQ(0.5f, GetDisplayInfoAt(0).configured_ui_scale()); |
+ expected_mode.ui_scale = 0.5f; |
+ EXPECT_TRUE(expected_mode.IsEquivalent( |
+ display_manager()->GetActiveModeForDisplayId(display_id))); |
+} |
+ |
TEST_F(DisplayManagerTest, UIScaleUpgradeToHighDPI) { |
int64 display_id = Shell::GetScreen()->GetPrimaryDisplay().id(); |
gfx::Display::SetInternalDisplayId(display_id); |