Index: ash/test/display_manager_test_api.cc |
diff --git a/ash/test/display_manager_test_api.cc b/ash/test/display_manager_test_api.cc |
index 1c101b17c5a92ae8de467903d6c955a29d5a0cda..d9455bdb06d112fd9707664c17689906baa6c487 100644 |
--- a/ash/test/display_manager_test_api.cc |
+++ b/ash/test/display_manager_test_api.cc |
@@ -44,6 +44,21 @@ DisplayInfoList CreateDisplayInfoListFromString( |
return display_info_list; |
} |
+scoped_refptr<display::ManagedDisplayMode> GetDisplayModeForUIScale( |
+ const display::ManagedDisplayInfo& info, |
+ float ui_scale) { |
+ const display::ManagedDisplayInfo::ManagedDisplayModeList& modes = |
+ info.display_modes(); |
+ auto iter = std::find_if( |
+ modes.begin(), modes.end(), |
+ [ui_scale](const scoped_refptr<display::ManagedDisplayMode>& mode) { |
+ return mode->ui_scale() == ui_scale; |
+ }); |
+ if (iter == modes.end()) |
+ return scoped_refptr<display::ManagedDisplayMode>(); |
+ return *iter; |
+} |
+ |
} // namespace |
DisplayManagerTestApi::DisplayManagerTestApi(DisplayManager* display_manager) |
@@ -113,6 +128,21 @@ DisplayManagerTestApi::GetInternalManagedDisplayInfo(int64_t display_id) { |
return display_manager_->display_info_[display_id]; |
} |
+bool DisplayManagerTestApi::SetDisplayUIScale(int64_t id, float ui_scale) { |
+ if (!display_manager_->IsActiveDisplayId(id) || |
+ !display::Display::IsInternalDisplayId(id)) { |
+ return false; |
+ } |
+ const display::ManagedDisplayInfo& info = |
+ display_manager_->GetDisplayInfo(id); |
+ |
+ scoped_refptr<display::ManagedDisplayMode> mode = |
+ GetDisplayModeForUIScale(info, ui_scale); |
+ if (!mode) |
+ return false; |
+ return display_manager_->SetDisplayMode(id, mode); |
+} |
+ |
ScopedDisable125DSFForUIScaling::ScopedDisable125DSFForUIScaling() { |
display::ManagedDisplayInfo::SetUse125DSFForUIScalingForTest(false); |
} |