Index: ui/display/win/screen_win_unittest.cc |
diff --git a/ui/display/win/screen_win_unittest.cc b/ui/display/win/screen_win_unittest.cc |
index 521f6af2047822397a6b9eb0fd0329dcd84d45c0..a20d2b1bdb33164f598cc2aed37ce09290ff7987 100644 |
--- a/ui/display/win/screen_win_unittest.cc |
+++ b/ui/display/win/screen_win_unittest.cc |
@@ -20,10 +20,11 @@ |
#include "ui/display/screen.h" |
#include "ui/display/test/display_test_util.h" |
#include "ui/display/win/display_info.h" |
-#include "ui/display/win/dpi.h" |
#include "ui/display/win/screen_win_display.h" |
#include "ui/display/win/test/screen_util_win.h" |
+#include "ui/gfx/geometry/point.h" |
#include "ui/gfx/geometry/rect.h" |
+#include "ui/gfx/geometry/size.h" |
namespace display { |
namespace win { |
@@ -194,7 +195,6 @@ class ScreenWinTest : public testing::Test { |
void SetUp() override { |
testing::Test::SetUp(); |
- SetDefaultDeviceScaleFactor(1.0); |
screen_win_initializer_.reset(new TestScreenWinManager()); |
SetUpScreen(screen_win_initializer_.get()); |
screen_win_initializer_->InitializeScreenWin(); |
@@ -202,7 +202,6 @@ class ScreenWinTest : public testing::Test { |
void TearDown() override { |
screen_win_initializer_.reset(); |
- SetDefaultDeviceScaleFactor(1.0); |
testing::Test::TearDown(); |
} |
@@ -379,9 +378,7 @@ class ScreenWinTestSingleDisplay1_25x : public ScreenWinTest { |
ScreenWinTestSingleDisplay1_25x() = default; |
void SetUpScreen(TestScreenWinInitializer* initializer) override { |
- SetDefaultDeviceScaleFactor(1.25); |
- // Add Monitor of Scale Factor 1.0 since display::GetDPIScale performs the |
- // clamping and not ScreenWin. |
+ // Add Monitor of Scale Factor 1.0 since 1.25 is clamped to 1.0. |
initializer->AddMonitor(gfx::Rect(0, 0, 1920, 1200), |
gfx::Rect(0, 0, 1920, 1100), |
L"primary", |
@@ -526,7 +523,6 @@ class ScreenWinTestSingleDisplay1_5x : public ScreenWinTest { |
ScreenWinTestSingleDisplay1_5x() = default; |
void SetUpScreen(TestScreenWinInitializer* initializer) override { |
- SetDefaultDeviceScaleFactor(1.5); |
initializer->AddMonitor(gfx::Rect(0, 0, 1920, 1200), |
gfx::Rect(0, 0, 1920, 1100), |
L"primary", |
@@ -586,7 +582,7 @@ TEST_F(ScreenWinTestSingleDisplay1_5x, ScreenToDIPRects) { |
HWND hwnd = GetFakeHwnd(); |
EXPECT_EQ(gfx::Rect(0, 0, 34, 67), |
ScreenWin::ScreenToDIPRect(hwnd, gfx::Rect(0, 0, 50, 100))); |
- EXPECT_EQ(gfx::Rect(168, 330, 28, 35), |
+ EXPECT_EQ(gfx::Rect(168, 330, 28, 36), |
ScreenWin::ScreenToDIPRect(hwnd, gfx::Rect(253, 496, 41, 52))); |
} |
@@ -602,7 +598,7 @@ TEST_F(ScreenWinTestSingleDisplay1_5x, ClientToDIPRects) { |
HWND hwnd = GetFakeHwnd(); |
EXPECT_EQ(gfx::Rect(0, 0, 34, 67), |
ScreenWin::ClientToDIPRect(hwnd, gfx::Rect(0, 0, 50, 100))); |
- EXPECT_EQ(gfx::Rect(168, 330, 28, 35), |
+ EXPECT_EQ(gfx::Rect(168, 330, 28, 36), |
ScreenWin::ClientToDIPRect(hwnd, gfx::Rect(253, 496, 41, 52))); |
} |
@@ -666,7 +662,6 @@ class ScreenWinTestSingleDisplay2x : public ScreenWinTest { |
ScreenWinTestSingleDisplay2x() = default; |
void SetUpScreen(TestScreenWinInitializer* initializer) override { |
- SetDefaultDeviceScaleFactor(2.0); |
initializer->AddMonitor(gfx::Rect(0, 0, 1920, 1200), |
gfx::Rect(0, 0, 1920, 1100), |
L"primary", |
@@ -1041,7 +1036,6 @@ class ScreenWinTestTwoDisplays2x : public ScreenWinTest { |
ScreenWinTestTwoDisplays2x() = default; |
void SetUpScreen(TestScreenWinInitializer* initializer) override { |
- SetDefaultDeviceScaleFactor(2.0); |
initializer->AddMonitor(gfx::Rect(0, 0, 1920, 1200), |
gfx::Rect(0, 0, 1920, 1100), |
L"primary", |
@@ -1684,7 +1678,6 @@ class ScreenWinTestManyDisplays2x : public ScreenWinTest { |
ScreenWinTestManyDisplays2x() = default; |
void SetUpScreen(TestScreenWinInitializer* initializer) override { |
- SetDefaultDeviceScaleFactor(2.0); |
initializer->AddMonitor(gfx::Rect(0, 0, 640, 480), |
gfx::Rect(0, 0, 640, 380), |
L"primary0", |
@@ -1938,7 +1931,7 @@ TEST_F(ScreenWinTestManyDisplays2x, ClientToDIPRects) { |
gfx::Rect client_screen_origin(0, 0, 50, 100); |
gfx::Rect client_dip_origin(0, 0, 25, 50); |
gfx::Rect client_screen_middle(253, 495, 41, 52); |
- gfx::Rect client_dip_middle(126, 247, 21, 26); |
+ gfx::Rect client_dip_middle(126, 247, 21, 27); |
ASSERT_EQ(5, GetScreen()->GetNumDisplays()); |
for (size_t i = 0; i < 5u; ++i) { |
SCOPED_TRACE(base::StringPrintf("i=%zu", i)); |
@@ -2082,6 +2075,769 @@ TEST_F(ScreenWinTestManyDisplays2x, GetPrimaryDisplay) { |
namespace { |
+// Two Displays of 1.0 (Left) and 2.0 (Right) Device Scale Factor. |
+class ScreenWinTestTwoDisplays1x2x : public ScreenWinTest { |
+ public: |
+ ScreenWinTestTwoDisplays1x2x() = default; |
+ |
+ void SetUpScreen(TestScreenWinInitializer* initializer) override { |
+ initializer->AddMonitor(gfx::Rect(0, 0, 1920, 1200), |
+ gfx::Rect(0, 0, 1920, 1100), |
+ L"primary", |
+ 1.0); |
+ initializer->AddMonitor(gfx::Rect(1920, 0, 800, 600), |
+ gfx::Rect(1920, 0, 800, 600), |
+ L"secondary", |
+ 2.0); |
+ fake_hwnd_left_ = initializer->CreateFakeHwnd(gfx::Rect(0, 0, 1920, 1100)); |
+ fake_hwnd_right_ = |
+ initializer->CreateFakeHwnd(gfx::Rect(1920, 0, 800, 600)); |
+ } |
+ |
+ HWND GetLeftFakeHwnd() { |
+ return fake_hwnd_left_; |
+ } |
+ |
+ HWND GetRightFakeHwnd() { |
+ return fake_hwnd_right_; |
+ } |
+ |
+ private: |
+ HWND fake_hwnd_left_ = nullptr; |
+ HWND fake_hwnd_right_ = nullptr; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ScreenWinTestTwoDisplays1x2x); |
+}; |
+ |
+} // namespace |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, ScreenToDIPPoints) { |
+ EXPECT_EQ(gfx::Point(0, 0), ScreenWin::ScreenToDIPPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(1919, 1199))); |
+ |
+ EXPECT_EQ(gfx::Point(1920, 0), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(1920, 0))); |
+ EXPECT_EQ(gfx::Point(2152, 175), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(2384, 351))); |
+ EXPECT_EQ(gfx::Point(2319, 299), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(2719, 599))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, DIPToScreenPoints) { |
+ EXPECT_EQ(gfx::Point(0, 0), ScreenWin::DIPToScreenPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(1919, 1199))); |
+ |
+ EXPECT_EQ(gfx::Point(1920, 0), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(1920, 0))); |
+ EXPECT_EQ(gfx::Point(2384, 350), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(2152, 175))); |
+ EXPECT_EQ(gfx::Point(2718, 598), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(2319, 299))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, ClientToDIPPoints) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(1919, 1199))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(182, 347), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(959, 599), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(1919, 1199))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, DIPToClientPoints) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(1919, 1199))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(364, 694), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(182, 347))); |
+ EXPECT_EQ(gfx::Point(1918, 1198), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(959, 599))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, ScreenToDIPRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::ScreenToDIPRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(253, 496, 41, 52), |
+ ScreenWin::ScreenToDIPRect(left_hwnd, gfx::Rect(253, 496, 41, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(1920, 0, 100, 150), |
+ ScreenWin::ScreenToDIPRect(right_hwnd, |
+ gfx::Rect(1920, 0, 200, 300))); |
+ EXPECT_EQ(gfx::Rect(1960, 248, 50, 100), |
+ ScreenWin::ScreenToDIPRect(right_hwnd, |
+ gfx::Rect(2000, 496, 100, 200))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, DIPToScreenRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::DIPToScreenRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(252, 496, 42, 52), |
+ ScreenWin::DIPToScreenRect(left_hwnd, gfx::Rect(252, 496, 42, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(1920, 0, 200, 300), |
+ ScreenWin::DIPToScreenRect(right_hwnd, |
+ gfx::Rect(1920, 0, 100, 150))); |
+ EXPECT_EQ(gfx::Rect(2000, 496, 100, 200), |
+ ScreenWin::DIPToScreenRect(right_hwnd, |
+ gfx::Rect(1960, 248, 50, 100))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, ClientToDIPRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::ClientToDIPRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(253, 496, 41, 52), |
+ ScreenWin::ClientToDIPRect(left_hwnd, gfx::Rect(253, 496, 41, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 25, 50), |
+ ScreenWin::ClientToDIPRect(right_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(126, 248, 21, 26), |
+ ScreenWin::ClientToDIPRect(right_hwnd, |
+ gfx::Rect(253, 496, 41, 52))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, DIPToClientRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::DIPToClientRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(252, 496, 42, 52), |
+ ScreenWin::DIPToClientRect(left_hwnd, gfx::Rect(252, 496, 42, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::DIPToClientRect(right_hwnd, gfx::Rect(0, 0, 25, 50))); |
+ EXPECT_EQ(gfx::Rect(252, 496, 42, 52), |
+ ScreenWin::DIPToClientRect(right_hwnd, |
+ gfx::Rect(126, 248, 21, 26))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, ScreenToDIPSize) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 131), |
+ ScreenWin::ScreenToDIPSize(left_hwnd, gfx::Size(42, 131))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(21, 66), |
+ ScreenWin::ScreenToDIPSize(right_hwnd, gfx::Size(42, 131))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, DIPToScreenSize) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(21, 66), |
+ ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 132), |
+ ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(21, 66))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplays) { |
+ std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
+ ASSERT_EQ(2u, displays.size()); |
+ EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); |
+ EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); |
+ EXPECT_EQ(gfx::Rect(1920, 0, 400, 300), displays[1].bounds()); |
+ EXPECT_EQ(gfx::Rect(1920, 0, 400, 300), displays[1].work_area()); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, GetNumDisplays) { |
+ EXPECT_EQ(2, GetScreen()->GetNumDisplays()); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplayNearestWindowPrimaryDisplay) { |
+ Screen* screen = GetScreen(); |
+ EXPECT_EQ(screen->GetPrimaryDisplay(), |
+ screen->GetDisplayNearestWindow(nullptr)); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplayNearestWindow) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ gfx::NativeWindow left_window = GetNativeWindowFromHWND(GetLeftFakeHwnd()); |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestWindow(left_window)); |
+ |
+ gfx::NativeWindow right_window = GetNativeWindowFromHWND(GetRightFakeHwnd()); |
+ EXPECT_EQ(right_display, screen->GetDisplayNearestWindow(right_window)); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplayNearestPoint) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestPoint(gfx::Point(250, 952))); |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(1919, 1199))); |
+ |
+ EXPECT_EQ(right_display, screen->GetDisplayNearestPoint(gfx::Point(1920, 0))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(2000, 200))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(2319, 299))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplayMatching) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayMatching(gfx::Rect(0, 0, 100, 100))); |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayMatching(gfx::Rect(1819, 1099, 100, 100))); |
+ |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayMatching(gfx::Rect(1920, 0, 100, 100))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayMatching(gfx::Rect(2619, 499, 100, 100))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1x2x, GetPrimaryDisplay) { |
+ Screen* screen = GetScreen(); |
+ EXPECT_EQ(gfx::Point(0, 0), screen->GetPrimaryDisplay().bounds().origin()); |
+} |
+ |
+namespace { |
+ |
+// Two Displays of 1.5 (Left) and 1.0 (Right) Device Scale Factor. |
+class ScreenWinTestTwoDisplays1_5x1x : public ScreenWinTest { |
+ public: |
+ ScreenWinTestTwoDisplays1_5x1x() = default; |
+ |
+ void SetUpScreen(TestScreenWinInitializer* initializer) override { |
+ initializer->AddMonitor(gfx::Rect(0, 0, 800, 600), |
+ gfx::Rect(0, 0, 800, 550), |
+ L"primary", |
+ 1.5); |
+ initializer->AddMonitor(gfx::Rect(800, 120, 640, 480), |
+ gfx::Rect(800, 120, 640, 480), |
+ L"secondary", |
+ 1.0); |
+ fake_hwnd_left_ = initializer->CreateFakeHwnd(gfx::Rect(0, 0, 800, 550)); |
+ fake_hwnd_right_ = |
+ initializer->CreateFakeHwnd(gfx::Rect(800, 120, 640, 480)); |
+ } |
+ |
+ HWND GetLeftFakeHwnd() { |
+ return fake_hwnd_left_; |
+ } |
+ |
+ HWND GetRightFakeHwnd() { |
+ return fake_hwnd_right_; |
+ } |
+ |
+ private: |
+ HWND fake_hwnd_left_ = nullptr; |
+ HWND fake_hwnd_right_ = nullptr; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ScreenWinTestTwoDisplays1_5x1x); |
+}; |
+ |
+} // namespace |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, ScreenToDIPPoints) { |
+ EXPECT_EQ(gfx::Point(0, 0), ScreenWin::ScreenToDIPPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(243, 301), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(365, 452))); |
+ EXPECT_EQ(gfx::Point(532, 399), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(799, 599))); |
+ |
+ EXPECT_EQ(gfx::Point(534, -80), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(800, 120))); |
+ EXPECT_EQ(gfx::Point(860, 151), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(1126, 351))); |
+ EXPECT_EQ(gfx::Point(1173, 399), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(1439, 599))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, DIPToScreenPoints) { |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(364, 451), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(243, 301))); |
+ EXPECT_EQ(gfx::Point(798, 598), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(532, 399))); |
+ |
+ EXPECT_EQ(gfx::Point(800, 120), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(534, -80))); |
+ EXPECT_EQ(gfx::Point(1126, 351), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(860, 151))); |
+ EXPECT_EQ(gfx::Point(1439, 599), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(1173, 399))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, ClientToDIPPoints) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(243, 462), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1279, 799), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(1919, 1199))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(1919, 1199))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, DIPToClientPoints) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(364, 693), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(243, 462))); |
+ EXPECT_EQ(gfx::Point(1918, 1198), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(1279, 799))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(1919, 1199))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, ScreenToDIPRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 34, 67), |
+ ScreenWin::ScreenToDIPRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(168, 330, 28, 36), |
+ ScreenWin::ScreenToDIPRect(left_hwnd, gfx::Rect(253, 496, 41, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(534, -80, 200, 300), |
+ ScreenWin::ScreenToDIPRect(right_hwnd, |
+ gfx::Rect(800, 120, 200, 300))); |
+ EXPECT_EQ(gfx::Rect(987, 296, 100, 200), |
+ ScreenWin::ScreenToDIPRect(right_hwnd, |
+ gfx::Rect(1253, 496, 100, 200))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, DIPToScreenRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 51, 101), |
+ ScreenWin::DIPToScreenRect(left_hwnd, gfx::Rect(0, 0, 34, 67))); |
+ EXPECT_EQ(gfx::Rect(252, 495, 42, 54), |
+ ScreenWin::DIPToScreenRect(left_hwnd, gfx::Rect(168, 330, 28, 36))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(800, 120, 200, 300), |
+ ScreenWin::DIPToScreenRect(right_hwnd, |
+ gfx::Rect(534, -80, 200, 300))); |
+ EXPECT_EQ(gfx::Rect(1253, 496, 100, 200), |
+ ScreenWin::DIPToScreenRect(right_hwnd, |
+ gfx::Rect(987, 296, 100, 200))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, ClientToDIPRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 34, 67), |
+ ScreenWin::ClientToDIPRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(168, 330, 28, 36), |
+ ScreenWin::ClientToDIPRect(left_hwnd, gfx::Rect(253, 496, 41, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::ClientToDIPRect(right_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(253, 496, 41, 52), |
+ ScreenWin::ClientToDIPRect(right_hwnd, |
+ gfx::Rect(253, 496, 41, 52))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, DIPToClientRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 51, 101), |
+ ScreenWin::DIPToClientRect(left_hwnd, gfx::Rect(0, 0, 34, 67))); |
+ EXPECT_EQ(gfx::Rect(252, 495, 42, 54), |
+ ScreenWin::DIPToClientRect(left_hwnd, gfx::Rect(168, 330, 28, 36))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::DIPToClientRect(right_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(253, 496, 41, 52), |
+ ScreenWin::DIPToClientRect(right_hwnd, |
+ gfx::Rect(253, 496, 41, 52))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, ScreenToDIPSize) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(28, 88), |
+ ScreenWin::ScreenToDIPSize(left_hwnd, gfx::Size(42, 131))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 131), |
+ ScreenWin::ScreenToDIPSize(right_hwnd, gfx::Size(42, 131))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, DIPToScreenSize) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 131), |
+ ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(28, 87))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 131), |
+ ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(42, 131))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplays) { |
+ std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
+ ASSERT_EQ(2u, displays.size()); |
+ EXPECT_EQ(gfx::Rect(0, 0, 534, 400), displays[0].bounds()); |
+ EXPECT_EQ(gfx::Rect(0, 0, 534, 367), displays[0].work_area()); |
+ EXPECT_EQ(gfx::Rect(534, -80, 640, 480), displays[1].bounds()); |
+ EXPECT_EQ(gfx::Rect(534, -80, 640, 480), displays[1].work_area()); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplayNearestWindowPrimaryDisplay) { |
+ Screen* screen = GetScreen(); |
+ EXPECT_EQ(screen->GetPrimaryDisplay(), |
+ screen->GetDisplayNearestWindow(nullptr)); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplayNearestWindow) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ gfx::NativeWindow left_window = GetNativeWindowFromHWND(GetLeftFakeHwnd()); |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestWindow(left_window)); |
+ |
+ gfx::NativeWindow right_window = GetNativeWindowFromHWND(GetRightFakeHwnd()); |
+ EXPECT_EQ(right_display, screen->GetDisplayNearestWindow(right_window)); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplayNearestPoint) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestPoint(gfx::Point(125, 253))); |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(533, 399))); |
+ |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(534, -80))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(1000, 200))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(1173, 399))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplayMatching) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayMatching(gfx::Rect(0, 0, 100, 100))); |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayMatching(gfx::Rect(699, 499, 100, 100))); |
+ |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayMatching(gfx::Rect(800, 120, 100, 100))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayMatching(gfx::Rect(1339, 499, 100, 100))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetPrimaryDisplay) { |
+ Screen* screen = GetScreen(); |
+ EXPECT_EQ(gfx::Point(0, 0), screen->GetPrimaryDisplay().bounds().origin()); |
+} |
+ |
+namespace { |
+ |
+// Two Displays of 2.0 (Left) and 1.0 (Right) Device Scale Factor. |
+class ScreenWinTestTwoDisplays2x1x : public ScreenWinTest { |
+ public: |
+ ScreenWinTestTwoDisplays2x1x() = default; |
+ |
+ void SetUpScreen(TestScreenWinInitializer* initializer) override { |
+ initializer->AddMonitor(gfx::Rect(0, 0, 1920, 1200), |
+ gfx::Rect(0, 0, 1920, 1100), |
+ L"primary", |
+ 2.0); |
+ initializer->AddMonitor(gfx::Rect(1920, 0, 800, 600), |
+ gfx::Rect(1920, 0, 800, 600), |
+ L"secondary", |
+ 1.0); |
+ fake_hwnd_left_ = initializer->CreateFakeHwnd(gfx::Rect(0, 0, 1920, 1100)); |
+ fake_hwnd_right_ = |
+ initializer->CreateFakeHwnd(gfx::Rect(1920, 0, 800, 600)); |
+ } |
+ |
+ HWND GetLeftFakeHwnd() { |
+ return fake_hwnd_left_; |
+ } |
+ |
+ HWND GetRightFakeHwnd() { |
+ return fake_hwnd_right_; |
+ } |
+ |
+ private: |
+ HWND fake_hwnd_left_ = nullptr; |
+ HWND fake_hwnd_right_ = nullptr; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ScreenWinTestTwoDisplays2x1x); |
+}; |
+ |
+} // namespace |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, ScreenToDIPPoints) { |
+ EXPECT_EQ(gfx::Point(0, 0), ScreenWin::ScreenToDIPPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(182, 347), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(959, 599), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(1919, 1199))); |
+ |
+ EXPECT_EQ(gfx::Point(960, 0), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(1920, 0))); |
+ EXPECT_EQ(gfx::Point(1424, 351), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(2384, 351))); |
+ EXPECT_EQ(gfx::Point(1759, 599), |
+ ScreenWin::ScreenToDIPPoint(gfx::Point(2719, 599))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, DIPToScreenPoints) { |
+ EXPECT_EQ(gfx::Point(0, 0), ScreenWin::DIPToScreenPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(364, 694), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(182, 347))); |
+ EXPECT_EQ(gfx::Point(1918, 1198), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(959, 599))); |
+ |
+ EXPECT_EQ(gfx::Point(1920, 0), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(960, 0))); |
+ EXPECT_EQ(gfx::Point(2384, 351), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(1424, 351))); |
+ EXPECT_EQ(gfx::Point(2719, 599), |
+ ScreenWin::DIPToScreenPoint(gfx::Point(1759, 599))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, ClientToDIPPoints) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(182, 347), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(959, 599), |
+ ScreenWin::ClientToDIPPoint(left_hwnd, gfx::Point(1919, 1199))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::ClientToDIPPoint(right_hwnd, gfx::Point(1919, 1199))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, DIPToClientPoints) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(364, 694), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(182, 347))); |
+ EXPECT_EQ(gfx::Point(1918, 1198), |
+ ScreenWin::DIPToClientPoint(left_hwnd, gfx::Point(959, 599))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Point(0, 0), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(0, 0))); |
+ EXPECT_EQ(gfx::Point(365, 694), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(365, 694))); |
+ EXPECT_EQ(gfx::Point(1919, 1199), |
+ ScreenWin::DIPToClientPoint(right_hwnd, gfx::Point(1919, 1199))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, ScreenToDIPRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 25, 50), |
+ ScreenWin::ScreenToDIPRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(126, 248, 21, 26), |
+ ScreenWin::ScreenToDIPRect(left_hwnd, gfx::Rect(253, 496, 41, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(960, 0, 200, 300), |
+ ScreenWin::ScreenToDIPRect(right_hwnd, |
+ gfx::Rect(1920, 0, 200, 300))); |
+ EXPECT_EQ(gfx::Rect(1040, 496, 100, 200), |
+ ScreenWin::ScreenToDIPRect(right_hwnd, |
+ gfx::Rect(2000, 496, 100, 200))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, DIPToScreenRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::DIPToScreenRect(left_hwnd, gfx::Rect(0, 0, 25, 50))); |
+ EXPECT_EQ(gfx::Rect(252, 496, 42, 52), |
+ ScreenWin::DIPToScreenRect(left_hwnd, gfx::Rect(126, 248, 21, 26))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(1920, 0, 200, 300), |
+ ScreenWin::DIPToScreenRect(right_hwnd, |
+ gfx::Rect(960, 0, 200, 300))); |
+ EXPECT_EQ(gfx::Rect(2000, 496, 100, 200), |
+ ScreenWin::DIPToScreenRect(right_hwnd, |
+ gfx::Rect(1040, 496, 100, 200))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, ClientToDIPRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 25, 50), |
+ ScreenWin::ClientToDIPRect(left_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(126, 248, 21, 26), |
+ ScreenWin::ClientToDIPRect(left_hwnd, gfx::Rect(253, 496, 41, 52))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::ClientToDIPRect(right_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(253, 496, 41, 52), |
+ ScreenWin::ClientToDIPRect(right_hwnd, |
+ gfx::Rect(253, 496, 41, 52))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, DIPToClientRects) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::DIPToClientRect(left_hwnd, gfx::Rect(0, 0, 25, 50))); |
+ EXPECT_EQ(gfx::Rect(252, 496, 42, 52), |
+ ScreenWin::DIPToClientRect(left_hwnd, gfx::Rect(126, 248, 21, 26))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Rect(0, 0, 50, 100), |
+ ScreenWin::DIPToClientRect(right_hwnd, gfx::Rect(0, 0, 50, 100))); |
+ EXPECT_EQ(gfx::Rect(253, 496, 41, 52), |
+ ScreenWin::DIPToClientRect(right_hwnd, |
+ gfx::Rect(253, 496, 41, 52))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, ScreenToDIPSize) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(21, 66), |
+ ScreenWin::ScreenToDIPSize(left_hwnd, gfx::Size(42, 131))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 131), |
+ ScreenWin::ScreenToDIPSize(right_hwnd, gfx::Size(42, 131))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, DIPToScreenSize) { |
+ HWND left_hwnd = GetLeftFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 132), |
+ ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66))); |
+ |
+ HWND right_hwnd = GetRightFakeHwnd(); |
+ EXPECT_EQ(gfx::Size(42, 131), |
+ ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(42, 131))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplays) { |
+ std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
+ ASSERT_EQ(2u, displays.size()); |
+ EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); |
+ EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); |
+ EXPECT_EQ(gfx::Rect(960, 0, 800, 600), displays[1].bounds()); |
+ EXPECT_EQ(gfx::Rect(960, 0, 800, 600), displays[1].work_area()); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, GetNumDisplays) { |
+ EXPECT_EQ(2, GetScreen()->GetNumDisplays()); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplayNearestWindowPrimaryDisplay) { |
+ Screen* screen = GetScreen(); |
+ EXPECT_EQ(screen->GetPrimaryDisplay(), |
+ screen->GetDisplayNearestWindow(nullptr)); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplayNearestWindow) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ gfx::NativeWindow left_window = GetNativeWindowFromHWND(GetLeftFakeHwnd()); |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestWindow(left_window)); |
+ |
+ gfx::NativeWindow right_window = GetNativeWindowFromHWND(GetRightFakeHwnd()); |
+ EXPECT_EQ(right_display, screen->GetDisplayNearestWindow(right_window)); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplayNearestPoint) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestPoint(gfx::Point(0, 0))); |
+ EXPECT_EQ(left_display, screen->GetDisplayNearestPoint(gfx::Point(250, 300))); |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(959, 599))); |
+ |
+ EXPECT_EQ(right_display, screen->GetDisplayNearestPoint(gfx::Point(960, 0))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(1500, 400))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayNearestPoint(gfx::Point(1659, 599))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplayMatching) { |
+ Screen* screen = GetScreen(); |
+ const Display left_display = screen->GetAllDisplays()[0]; |
+ const Display right_display = screen->GetAllDisplays()[1]; |
+ |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayMatching(gfx::Rect(0, 0, 100, 100))); |
+ EXPECT_EQ(left_display, |
+ screen->GetDisplayMatching(gfx::Rect(1819, 1099, 100, 100))); |
+ |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayMatching(gfx::Rect(1920, 0, 100, 100))); |
+ EXPECT_EQ(right_display, |
+ screen->GetDisplayMatching(gfx::Rect(2619, 499, 100, 100))); |
+} |
+ |
+TEST_F(ScreenWinTestTwoDisplays2x1x, GetPrimaryDisplay) { |
+ Screen* screen = GetScreen(); |
+ EXPECT_EQ(gfx::Point(0, 0), screen->GetPrimaryDisplay().bounds().origin()); |
+} |
+ |
+namespace { |
+ |
// Two Displays of 2.0 (Left) and 1.0 (Right) Device Scale Factor under |
// Windows DPI Virtualization. Note that the displays do not form a euclidean |
// space. |
@@ -2090,7 +2846,6 @@ class ScreenWinTestTwoDisplays2x1xVirtualized : public ScreenWinTest { |
ScreenWinTestTwoDisplays2x1xVirtualized() = default; |
void SetUpScreen(TestScreenWinInitializer* initializer) override { |
- SetDefaultDeviceScaleFactor(2.0); |
initializer->AddMonitor(gfx::Rect(0, 0, 3200, 1600), |
gfx::Rect(0, 0, 3200, 1500), |
L"primary", |