| Index: ui/base/l10n/l10n_util_win_unittest.cc
|
| diff --git a/ui/base/l10n/l10n_util_win_unittest.cc b/ui/base/l10n/l10n_util_win_unittest.cc
|
| index 2f1da59247164f7734cf15ee4d6661993991e6ac..29ab718535d8323afa1279cca3aa05d334713c35 100644
|
| --- a/ui/base/l10n/l10n_util_win_unittest.cc
|
| +++ b/ui/base/l10n/l10n_util_win_unittest.cc
|
| @@ -6,9 +6,13 @@
|
|
|
| #include <windows.h>
|
|
|
| +#include "base/command_line.h"
|
| #include "base/win/win_util.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/platform_test.h"
|
| +#include "ui/display/display.h"
|
| +#include "ui/display/display_switches.h"
|
| +#include "ui/display/win/screen_win.h"
|
|
|
| typedef PlatformTest L10nUtilWinTest;
|
|
|
| @@ -34,3 +38,23 @@ TEST_F(L10nUtilWinTest, TestDPIScaling) {
|
| l10n_util::AdjustUIFontForDIP(1.8f, &lf);
|
| EXPECT_NEAR(size, lf.lfHeight, 1);
|
| }
|
| +
|
| +// Test for crbug.com/675933. Since font size is a Windows metric we need to
|
| +// normalize to DIPs based on the real device scale factor, not the forced one.
|
| +TEST_F(L10nUtilWinTest, TestForcedScaling) {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kForceDeviceScaleFactor, "4");
|
| + display::Display::ResetForceDeviceScaleFactorForTesting();
|
| +
|
| + NONCLIENTMETRICS_XP metrics;
|
| + base::win::GetNonClientMetrics(&metrics);
|
| + LOGFONT lf = metrics.lfMessageFont;
|
| +
|
| + // Set the font size to an arbitrary value and make sure it comes through
|
| + // correctly on the other end.
|
| + constexpr int test_font_size = 18;
|
| + lf.lfHeight = test_font_size;
|
| + l10n_util::AdjustUIFont(&lf);
|
| + EXPECT_EQ(test_font_size / display::win::ScreenWin::GetSystemScaleFactor(),
|
| + lf.lfHeight);
|
| +}
|
|
|