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

Side by Side Diff: ui/display/win/screen_win_unittest.cc

Issue 2110313002: Add ScreenWin::GetSystemMetricsForHwnd (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR Feedback Created 4 years, 5 months 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 | « ui/display/win/screen_win.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "ui/display/win/screen_win.h" 5 #include "ui/display/win/screen_win.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <inttypes.h> 8 #include <inttypes.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 10
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 } 114 }
115 } 115 }
116 NOTREACHED(); 116 NOTREACHED();
117 return monitor_infos_[0]; 117 return monitor_infos_[0];
118 } 118 }
119 119
120 HWND GetRootWindow(HWND hwnd) const override { 120 HWND GetRootWindow(HWND hwnd) const override {
121 return hwnd; 121 return hwnd;
122 } 122 }
123 123
124 int GetSystemMetrics(int metric) const override {
125 return metric;
126 }
127
124 std::vector<MONITORINFOEX> monitor_infos_; 128 std::vector<MONITORINFOEX> monitor_infos_;
125 std::unordered_map<HWND, gfx::Rect> hwnd_map_; 129 std::unordered_map<HWND, gfx::Rect> hwnd_map_;
126 130
127 DISALLOW_COPY_AND_ASSIGN(TestScreenWin); 131 DISALLOW_COPY_AND_ASSIGN(TestScreenWin);
128 }; 132 };
129 133
130 Screen* GetScreen() { 134 Screen* GetScreen() {
131 return Screen::GetScreen(); 135 return Screen::GetScreen();
132 } 136 }
133 137
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 gfx::Size size(42, 131); 322 gfx::Size size(42, 131);
319 EXPECT_EQ(size, ScreenWin::ScreenToDIPSize(hwnd, size)); 323 EXPECT_EQ(size, ScreenWin::ScreenToDIPSize(hwnd, size));
320 } 324 }
321 325
322 TEST_F(ScreenWinTestSingleDisplay1x, DIPToScreenSize) { 326 TEST_F(ScreenWinTestSingleDisplay1x, DIPToScreenSize) {
323 HWND hwnd = GetFakeHwnd(); 327 HWND hwnd = GetFakeHwnd();
324 gfx::Size size(42, 131); 328 gfx::Size size(42, 131);
325 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(hwnd, size)); 329 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(hwnd, size));
326 } 330 }
327 331
332 TEST_F(ScreenWinTestSingleDisplay1x, GetSystemMetricsForHwnd) {
333 HWND hwnd = GetFakeHwnd();
334 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31));
335 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42));
336 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
337 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
338 }
339
328 TEST_F(ScreenWinTestSingleDisplay1x, GetDisplays) { 340 TEST_F(ScreenWinTestSingleDisplay1x, GetDisplays) {
329 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 341 std::vector<Display> displays = GetScreen()->GetAllDisplays();
330 ASSERT_EQ(1u, displays.size()); 342 ASSERT_EQ(1u, displays.size());
331 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); 343 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds());
332 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); 344 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area());
333 } 345 }
334 346
335 TEST_F(ScreenWinTestSingleDisplay1x, GetNumDisplays) { 347 TEST_F(ScreenWinTestSingleDisplay1x, GetNumDisplays) {
336 EXPECT_EQ(1, GetScreen()->GetNumDisplays()); 348 EXPECT_EQ(1, GetScreen()->GetNumDisplays());
337 } 349 }
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 gfx::Size size(42, 131); 485 gfx::Size size(42, 131);
474 EXPECT_EQ(size, ScreenWin::ScreenToDIPSize(hwnd, size)); 486 EXPECT_EQ(size, ScreenWin::ScreenToDIPSize(hwnd, size));
475 } 487 }
476 488
477 TEST_F(ScreenWinTestSingleDisplay1_25x, DIPToScreenSize) { 489 TEST_F(ScreenWinTestSingleDisplay1_25x, DIPToScreenSize) {
478 HWND hwnd = GetFakeHwnd(); 490 HWND hwnd = GetFakeHwnd();
479 gfx::Size size(42, 131); 491 gfx::Size size(42, 131);
480 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(hwnd, size)); 492 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(hwnd, size));
481 } 493 }
482 494
495 TEST_F(ScreenWinTestSingleDisplay1_25x, GetSystemMetricsForHwnd) {
496 HWND hwnd = GetFakeHwnd();
497 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31));
498 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42));
499 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
500 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
501 }
502
483 TEST_F(ScreenWinTestSingleDisplay1_25x, GetDisplays) { 503 TEST_F(ScreenWinTestSingleDisplay1_25x, GetDisplays) {
484 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 504 std::vector<Display> displays = GetScreen()->GetAllDisplays();
485 ASSERT_EQ(1u, displays.size()); 505 ASSERT_EQ(1u, displays.size());
486 // On Windows, scale factors of 1.25 or lower are clamped to 1.0. 506 // On Windows, scale factors of 1.25 or lower are clamped to 1.0.
487 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); 507 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds());
488 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); 508 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area());
489 } 509 }
490 510
491 TEST_F(ScreenWinTestSingleDisplay1_25x, GetDisplayNearestWindow) { 511 TEST_F(ScreenWinTestSingleDisplay1_25x, GetDisplayNearestWindow) {
492 Screen* screen = GetScreen(); 512 Screen* screen = GetScreen();
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 TEST_F(ScreenWinTestSingleDisplay1_5x, ScreenToDIPSize) { 633 TEST_F(ScreenWinTestSingleDisplay1_5x, ScreenToDIPSize) {
614 EXPECT_EQ(gfx::Size(28, 88), 634 EXPECT_EQ(gfx::Size(28, 88),
615 ScreenWin::ScreenToDIPSize(GetFakeHwnd(), gfx::Size(42, 131))); 635 ScreenWin::ScreenToDIPSize(GetFakeHwnd(), gfx::Size(42, 131)));
616 } 636 }
617 637
618 TEST_F(ScreenWinTestSingleDisplay1_5x, DIPToScreenSize) { 638 TEST_F(ScreenWinTestSingleDisplay1_5x, DIPToScreenSize) {
619 EXPECT_EQ(gfx::Size(42, 132), 639 EXPECT_EQ(gfx::Size(42, 132),
620 ScreenWin::DIPToScreenSize(GetFakeHwnd(), gfx::Size(28, 88))); 640 ScreenWin::DIPToScreenSize(GetFakeHwnd(), gfx::Size(28, 88)));
621 } 641 }
622 642
643 TEST_F(ScreenWinTestSingleDisplay1_5x, GetSystemMetricsForHwnd) {
644 HWND hwnd = GetFakeHwnd();
645 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31));
646 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42));
647 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
648 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
649 }
650
623 TEST_F(ScreenWinTestSingleDisplay1_5x, GetDisplays) { 651 TEST_F(ScreenWinTestSingleDisplay1_5x, GetDisplays) {
624 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 652 std::vector<Display> displays = GetScreen()->GetAllDisplays();
625 ASSERT_EQ(1u, displays.size()); 653 ASSERT_EQ(1u, displays.size());
626 EXPECT_EQ(gfx::Rect(0, 0, 1280, 800), displays[0].bounds()); 654 EXPECT_EQ(gfx::Rect(0, 0, 1280, 800), displays[0].bounds());
627 EXPECT_EQ(gfx::Rect(0, 0, 1280, 734), displays[0].work_area()); 655 EXPECT_EQ(gfx::Rect(0, 0, 1280, 734), displays[0].work_area());
628 } 656 }
629 657
630 TEST_F(ScreenWinTestSingleDisplay1_5x, GetDisplayNearestWindow) { 658 TEST_F(ScreenWinTestSingleDisplay1_5x, GetDisplayNearestWindow) {
631 Screen* screen = GetScreen(); 659 Screen* screen = GetScreen();
632 gfx::NativeWindow native_window = GetNativeWindowFromHWND(GetFakeHwnd()); 660 gfx::NativeWindow native_window = GetNativeWindowFromHWND(GetFakeHwnd());
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 TEST_F(ScreenWinTestSingleDisplay2x, ScreenToDIPSize) { 780 TEST_F(ScreenWinTestSingleDisplay2x, ScreenToDIPSize) {
753 EXPECT_EQ(gfx::Size(21, 66), 781 EXPECT_EQ(gfx::Size(21, 66),
754 ScreenWin::ScreenToDIPSize(GetFakeHwnd(), gfx::Size(42, 131))); 782 ScreenWin::ScreenToDIPSize(GetFakeHwnd(), gfx::Size(42, 131)));
755 } 783 }
756 784
757 TEST_F(ScreenWinTestSingleDisplay2x, DIPToScreenSize) { 785 TEST_F(ScreenWinTestSingleDisplay2x, DIPToScreenSize) {
758 EXPECT_EQ(gfx::Size(42, 132), 786 EXPECT_EQ(gfx::Size(42, 132),
759 ScreenWin::DIPToScreenSize(GetFakeHwnd(), gfx::Size(21, 66))); 787 ScreenWin::DIPToScreenSize(GetFakeHwnd(), gfx::Size(21, 66)));
760 } 788 }
761 789
790 TEST_F(ScreenWinTestSingleDisplay2x, GetSystemMetricsForHwnd) {
791 HWND hwnd = GetFakeHwnd();
792 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31));
793 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42));
794 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
795 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
796 }
797
762 TEST_F(ScreenWinTestSingleDisplay2x, GetDisplays) { 798 TEST_F(ScreenWinTestSingleDisplay2x, GetDisplays) {
763 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 799 std::vector<Display> displays = GetScreen()->GetAllDisplays();
764 ASSERT_EQ(1u, displays.size()); 800 ASSERT_EQ(1u, displays.size());
765 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); 801 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds());
766 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); 802 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area());
767 } 803 }
768 804
769 TEST_F(ScreenWinTestSingleDisplay2x, GetDisplayNearestWindow) { 805 TEST_F(ScreenWinTestSingleDisplay2x, GetDisplayNearestWindow) {
770 Screen* screen = GetScreen(); 806 Screen* screen = GetScreen();
771 gfx::NativeWindow native_window = GetNativeWindowFromHWND(GetFakeHwnd()); 807 gfx::NativeWindow native_window = GetNativeWindowFromHWND(GetFakeHwnd());
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 988
953 TEST_F(ScreenWinTestTwoDisplays1x, DIPToScreenSize) { 989 TEST_F(ScreenWinTestTwoDisplays1x, DIPToScreenSize) {
954 HWND left_hwnd = GetLeftFakeHwnd(); 990 HWND left_hwnd = GetLeftFakeHwnd();
955 gfx::Size size(42, 131); 991 gfx::Size size(42, 131);
956 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(left_hwnd, size)); 992 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(left_hwnd, size));
957 993
958 HWND right_hwnd = GetRightFakeHwnd(); 994 HWND right_hwnd = GetRightFakeHwnd();
959 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(right_hwnd, size)); 995 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(right_hwnd, size));
960 } 996 }
961 997
998 TEST_F(ScreenWinTestTwoDisplays1x, GetSystemMetricsForHwnd) {
999 HWND left_hwnd = GetLeftFakeHwnd();
1000 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31));
1001 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42));
1002 HWND right_hwnd = GetRightFakeHwnd();
1003 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31));
1004 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42));
1005 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
1006 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
1007 }
1008
962 TEST_F(ScreenWinTestTwoDisplays1x, GetDisplays) { 1009 TEST_F(ScreenWinTestTwoDisplays1x, GetDisplays) {
963 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 1010 std::vector<Display> displays = GetScreen()->GetAllDisplays();
964 ASSERT_EQ(2u, displays.size()); 1011 ASSERT_EQ(2u, displays.size());
965 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); 1012 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds());
966 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); 1013 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area());
967 EXPECT_EQ(gfx::Rect(1920, 0, 800, 600), displays[1].bounds()); 1014 EXPECT_EQ(gfx::Rect(1920, 0, 800, 600), displays[1].bounds());
968 EXPECT_EQ(gfx::Rect(1920, 0, 800, 600), displays[1].work_area()); 1015 EXPECT_EQ(gfx::Rect(1920, 0, 800, 600), displays[1].work_area());
969 } 1016 }
970 1017
971 TEST_F(ScreenWinTestTwoDisplays1x, GetNumDisplays) { 1018 TEST_F(ScreenWinTestTwoDisplays1x, GetNumDisplays) {
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1200 TEST_F(ScreenWinTestTwoDisplays2x, DIPToScreenSize) { 1247 TEST_F(ScreenWinTestTwoDisplays2x, DIPToScreenSize) {
1201 HWND left_hwnd = GetLeftFakeHwnd(); 1248 HWND left_hwnd = GetLeftFakeHwnd();
1202 EXPECT_EQ(gfx::Size(42, 132), 1249 EXPECT_EQ(gfx::Size(42, 132),
1203 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66))); 1250 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66)));
1204 1251
1205 HWND right_hwnd = GetRightFakeHwnd(); 1252 HWND right_hwnd = GetRightFakeHwnd();
1206 EXPECT_EQ(gfx::Size(42, 132), 1253 EXPECT_EQ(gfx::Size(42, 132),
1207 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(21, 66))); 1254 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(21, 66)));
1208 } 1255 }
1209 1256
1257 TEST_F(ScreenWinTestTwoDisplays2x, GetSystemMetricsForHwnd) {
1258 HWND left_hwnd = GetLeftFakeHwnd();
1259 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31));
1260 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42));
1261 HWND right_hwnd = GetRightFakeHwnd();
1262 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31));
1263 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42));
1264 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
1265 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
1266 }
1267
1210 TEST_F(ScreenWinTestTwoDisplays2x, GetDisplays) { 1268 TEST_F(ScreenWinTestTwoDisplays2x, GetDisplays) {
1211 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 1269 std::vector<Display> displays = GetScreen()->GetAllDisplays();
1212 ASSERT_EQ(2u, displays.size()); 1270 ASSERT_EQ(2u, displays.size());
1213 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); 1271 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds());
1214 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); 1272 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area());
1215 EXPECT_EQ(gfx::Rect(960, 0, 400, 300), displays[1].bounds()); 1273 EXPECT_EQ(gfx::Rect(960, 0, 400, 300), displays[1].bounds());
1216 EXPECT_EQ(gfx::Rect(960, 0, 400, 300), displays[1].work_area()); 1274 EXPECT_EQ(gfx::Rect(960, 0, 400, 300), displays[1].work_area());
1217 } 1275 }
1218 1276
1219 TEST_F(ScreenWinTestTwoDisplays2x, GetDisplayNearestWindowPrimaryDisplay) { 1277 TEST_F(ScreenWinTestTwoDisplays2x, GetDisplayNearestWindowPrimaryDisplay) {
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 1615
1558 TEST_F(ScreenWinTestManyDisplays1x, DIPToScreenSize) { 1616 TEST_F(ScreenWinTestManyDisplays1x, DIPToScreenSize) {
1559 gfx::Size size(42, 131); 1617 gfx::Size size(42, 131);
1560 ASSERT_EQ(5, GetScreen()->GetNumDisplays()); 1618 ASSERT_EQ(5, GetScreen()->GetNumDisplays());
1561 for (size_t i = 0; i < 5u; ++i) { 1619 for (size_t i = 0; i < 5u; ++i) {
1562 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); 1620 SCOPED_TRACE(base::StringPrintf("i=%zu", i));
1563 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(GetFakeHwnd(i), size)); 1621 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(GetFakeHwnd(i), size));
1564 } 1622 }
1565 } 1623 }
1566 1624
1625 TEST_F(ScreenWinTestManyDisplays1x, GetSystemMetricsForHwnd) {
1626 for (size_t i = 0; i < 5u; ++i) {
1627 SCOPED_TRACE(base::StringPrintf("i=%zu", i));
1628 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 31));
1629 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 42));
1630 }
1631 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
1632 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
1633 }
1634
1567 TEST_F(ScreenWinTestManyDisplays1x, GetDisplays) { 1635 TEST_F(ScreenWinTestManyDisplays1x, GetDisplays) {
1568 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 1636 std::vector<Display> displays = GetScreen()->GetAllDisplays();
1569 ASSERT_EQ(5u, displays.size()); 1637 ASSERT_EQ(5u, displays.size());
1570 EXPECT_EQ(gfx::Rect(0, 0, 640, 480), displays[0].bounds()); 1638 EXPECT_EQ(gfx::Rect(0, 0, 640, 480), displays[0].bounds());
1571 EXPECT_EQ(gfx::Rect(0, 0, 640, 380), displays[0].work_area()); 1639 EXPECT_EQ(gfx::Rect(0, 0, 640, 380), displays[0].work_area());
1572 EXPECT_EQ(gfx::Rect(640, 0, 1024, 768), displays[1].bounds()); 1640 EXPECT_EQ(gfx::Rect(640, 0, 1024, 768), displays[1].bounds());
1573 EXPECT_EQ(gfx::Rect(640, 0, 1024, 768), displays[1].work_area()); 1641 EXPECT_EQ(gfx::Rect(640, 0, 1024, 768), displays[1].work_area());
1574 EXPECT_EQ(gfx::Rect(0, 480, 640, 300), displays[2].bounds()); 1642 EXPECT_EQ(gfx::Rect(0, 480, 640, 300), displays[2].bounds());
1575 EXPECT_EQ(gfx::Rect(0, 480, 640, 300), displays[2].work_area()); 1643 EXPECT_EQ(gfx::Rect(0, 480, 640, 300), displays[2].work_area());
1576 EXPECT_EQ(gfx::Rect(1664, 768, 400, 400), displays[3].bounds()); 1644 EXPECT_EQ(gfx::Rect(1664, 768, 400, 400), displays[3].bounds());
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
1973 gfx::Size dip_size(21, 66); 2041 gfx::Size dip_size(21, 66);
1974 gfx::Size screen_size(42, 132); 2042 gfx::Size screen_size(42, 132);
1975 ASSERT_EQ(5, GetScreen()->GetNumDisplays()); 2043 ASSERT_EQ(5, GetScreen()->GetNumDisplays());
1976 for (size_t i = 0; i < 5u; ++i) { 2044 for (size_t i = 0; i < 5u; ++i) {
1977 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); 2045 SCOPED_TRACE(base::StringPrintf("i=%zu", i));
1978 EXPECT_EQ(screen_size, 2046 EXPECT_EQ(screen_size,
1979 ScreenWin::DIPToScreenSize(GetFakeHwnd(i), dip_size)); 2047 ScreenWin::DIPToScreenSize(GetFakeHwnd(i), dip_size));
1980 } 2048 }
1981 } 2049 }
1982 2050
2051 TEST_F(ScreenWinTestManyDisplays2x, GetSystemMetricsForHwnd) {
2052 for (size_t i = 0; i < 5u; ++i) {
2053 SCOPED_TRACE(base::StringPrintf("i=%zu", i));
2054 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 31));
2055 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 42));
2056 }
2057 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
2058 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
2059 }
2060
1983 TEST_F(ScreenWinTestManyDisplays2x, GetDisplays) { 2061 TEST_F(ScreenWinTestManyDisplays2x, GetDisplays) {
1984 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 2062 std::vector<Display> displays = GetScreen()->GetAllDisplays();
1985 ASSERT_EQ(5u, displays.size()); 2063 ASSERT_EQ(5u, displays.size());
1986 EXPECT_EQ(gfx::Rect(0, 0, 320, 240), displays[0].bounds()); 2064 EXPECT_EQ(gfx::Rect(0, 0, 320, 240), displays[0].bounds());
1987 EXPECT_EQ(gfx::Rect(0, 0, 320, 190), displays[0].work_area()); 2065 EXPECT_EQ(gfx::Rect(0, 0, 320, 190), displays[0].work_area());
1988 EXPECT_EQ(gfx::Rect(320, 0, 512, 384), displays[1].bounds()); 2066 EXPECT_EQ(gfx::Rect(320, 0, 512, 384), displays[1].bounds());
1989 EXPECT_EQ(gfx::Rect(320, 0, 512, 384), displays[1].work_area()); 2067 EXPECT_EQ(gfx::Rect(320, 0, 512, 384), displays[1].work_area());
1990 EXPECT_EQ(gfx::Rect(0, 240, 320, 150), displays[2].bounds()); 2068 EXPECT_EQ(gfx::Rect(0, 240, 320, 150), displays[2].bounds());
1991 EXPECT_EQ(gfx::Rect(0, 240, 320, 150), displays[2].work_area()); 2069 EXPECT_EQ(gfx::Rect(0, 240, 320, 150), displays[2].work_area());
1992 EXPECT_EQ(gfx::Rect(832, 384, 200, 200), displays[3].bounds()); 2070 EXPECT_EQ(gfx::Rect(832, 384, 200, 200), displays[3].bounds());
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
2252 TEST_F(ScreenWinTestTwoDisplays1x2x, DIPToScreenSize) { 2330 TEST_F(ScreenWinTestTwoDisplays1x2x, DIPToScreenSize) {
2253 HWND left_hwnd = GetLeftFakeHwnd(); 2331 HWND left_hwnd = GetLeftFakeHwnd();
2254 EXPECT_EQ(gfx::Size(21, 66), 2332 EXPECT_EQ(gfx::Size(21, 66),
2255 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66))); 2333 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66)));
2256 2334
2257 HWND right_hwnd = GetRightFakeHwnd(); 2335 HWND right_hwnd = GetRightFakeHwnd();
2258 EXPECT_EQ(gfx::Size(42, 132), 2336 EXPECT_EQ(gfx::Size(42, 132),
2259 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(21, 66))); 2337 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(21, 66)));
2260 } 2338 }
2261 2339
2340 TEST_F(ScreenWinTestTwoDisplays1x2x, GetSystemMetricsForHwnd) {
2341 HWND left_hwnd = GetLeftFakeHwnd();
2342 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31));
2343 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42));
2344 HWND right_hwnd = GetRightFakeHwnd();
2345 EXPECT_EQ(62, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31));
2346 EXPECT_EQ(84, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42));
2347 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
2348 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
2349 }
2350
2262 TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplays) { 2351 TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplays) {
2263 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 2352 std::vector<Display> displays = GetScreen()->GetAllDisplays();
2264 ASSERT_EQ(2u, displays.size()); 2353 ASSERT_EQ(2u, displays.size());
2265 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); 2354 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds());
2266 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); 2355 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area());
2267 EXPECT_EQ(gfx::Rect(1920, 0, 400, 300), displays[1].bounds()); 2356 EXPECT_EQ(gfx::Rect(1920, 0, 400, 300), displays[1].bounds());
2268 EXPECT_EQ(gfx::Rect(1920, 0, 400, 300), displays[1].work_area()); 2357 EXPECT_EQ(gfx::Rect(1920, 0, 400, 300), displays[1].work_area());
2269 } 2358 }
2270 2359
2271 TEST_F(ScreenWinTestTwoDisplays1x2x, GetNumDisplays) { 2360 TEST_F(ScreenWinTestTwoDisplays1x2x, GetNumDisplays) {
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
2508 TEST_F(ScreenWinTestTwoDisplays1_5x1x, DIPToScreenSize) { 2597 TEST_F(ScreenWinTestTwoDisplays1_5x1x, DIPToScreenSize) {
2509 HWND left_hwnd = GetLeftFakeHwnd(); 2598 HWND left_hwnd = GetLeftFakeHwnd();
2510 EXPECT_EQ(gfx::Size(42, 131), 2599 EXPECT_EQ(gfx::Size(42, 131),
2511 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(28, 87))); 2600 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(28, 87)));
2512 2601
2513 HWND right_hwnd = GetRightFakeHwnd(); 2602 HWND right_hwnd = GetRightFakeHwnd();
2514 EXPECT_EQ(gfx::Size(42, 131), 2603 EXPECT_EQ(gfx::Size(42, 131),
2515 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(42, 131))); 2604 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(42, 131)));
2516 } 2605 }
2517 2606
2607 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetSystemMetricsForHwnd) {
2608 HWND left_hwnd = GetLeftFakeHwnd();
2609 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31));
2610 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42));
2611 HWND right_hwnd = GetRightFakeHwnd();
2612 EXPECT_EQ(21, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31));
2613 EXPECT_EQ(28, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42));
2614 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
2615 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
2616 }
2617
2518 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplays) { 2618 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplays) {
2519 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 2619 std::vector<Display> displays = GetScreen()->GetAllDisplays();
2520 ASSERT_EQ(2u, displays.size()); 2620 ASSERT_EQ(2u, displays.size());
2521 EXPECT_EQ(gfx::Rect(0, 0, 534, 400), displays[0].bounds()); 2621 EXPECT_EQ(gfx::Rect(0, 0, 534, 400), displays[0].bounds());
2522 EXPECT_EQ(gfx::Rect(0, 0, 534, 367), displays[0].work_area()); 2622 EXPECT_EQ(gfx::Rect(0, 0, 534, 367), displays[0].work_area());
2523 EXPECT_EQ(gfx::Rect(534, -80, 640, 480), displays[1].bounds()); 2623 EXPECT_EQ(gfx::Rect(534, -80, 640, 480), displays[1].bounds());
2524 EXPECT_EQ(gfx::Rect(534, -80, 640, 480), displays[1].work_area()); 2624 EXPECT_EQ(gfx::Rect(534, -80, 640, 480), displays[1].work_area());
2525 } 2625 }
2526 2626
2527 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplayNearestWindowPrimaryDisplay) { 2627 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplayNearestWindowPrimaryDisplay) {
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
2760 TEST_F(ScreenWinTestTwoDisplays2x1x, DIPToScreenSize) { 2860 TEST_F(ScreenWinTestTwoDisplays2x1x, DIPToScreenSize) {
2761 HWND left_hwnd = GetLeftFakeHwnd(); 2861 HWND left_hwnd = GetLeftFakeHwnd();
2762 EXPECT_EQ(gfx::Size(42, 132), 2862 EXPECT_EQ(gfx::Size(42, 132),
2763 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66))); 2863 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66)));
2764 2864
2765 HWND right_hwnd = GetRightFakeHwnd(); 2865 HWND right_hwnd = GetRightFakeHwnd();
2766 EXPECT_EQ(gfx::Size(42, 131), 2866 EXPECT_EQ(gfx::Size(42, 131),
2767 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(42, 131))); 2867 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(42, 131)));
2768 } 2868 }
2769 2869
2870 TEST_F(ScreenWinTestTwoDisplays2x1x, GetSystemMetricsForHwnd) {
2871 HWND left_hwnd = GetLeftFakeHwnd();
2872 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31));
2873 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42));
2874 HWND right_hwnd = GetRightFakeHwnd();
2875 EXPECT_EQ(16, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31));
2876 EXPECT_EQ(21, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42));
2877 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
2878 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
2879 }
2880
2770 TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplays) { 2881 TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplays) {
2771 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 2882 std::vector<Display> displays = GetScreen()->GetAllDisplays();
2772 ASSERT_EQ(2u, displays.size()); 2883 ASSERT_EQ(2u, displays.size());
2773 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); 2884 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds());
2774 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); 2885 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area());
2775 EXPECT_EQ(gfx::Rect(960, 0, 800, 600), displays[1].bounds()); 2886 EXPECT_EQ(gfx::Rect(960, 0, 800, 600), displays[1].bounds());
2776 EXPECT_EQ(gfx::Rect(960, 0, 800, 600), displays[1].work_area()); 2887 EXPECT_EQ(gfx::Rect(960, 0, 800, 600), displays[1].work_area());
2777 } 2888 }
2778 2889
2779 TEST_F(ScreenWinTestTwoDisplays2x1x, GetNumDisplays) { 2890 TEST_F(ScreenWinTestTwoDisplays2x1x, GetNumDisplays) {
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
3017 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, DIPToScreenSize) { 3128 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, DIPToScreenSize) {
3018 HWND left_hwnd = GetLeftFakeHwnd(); 3129 HWND left_hwnd = GetLeftFakeHwnd();
3019 EXPECT_EQ(gfx::Size(42, 132), 3130 EXPECT_EQ(gfx::Size(42, 132),
3020 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66))); 3131 ScreenWin::DIPToScreenSize(left_hwnd, gfx::Size(21, 66)));
3021 3132
3022 HWND right_hwnd = GetRightFakeHwnd(); 3133 HWND right_hwnd = GetRightFakeHwnd();
3023 EXPECT_EQ(gfx::Size(42, 132), 3134 EXPECT_EQ(gfx::Size(42, 132),
3024 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(21, 66))); 3135 ScreenWin::DIPToScreenSize(right_hwnd, gfx::Size(21, 66)));
3025 } 3136 }
3026 3137
3138 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetSystemMetricsForHwnd) {
3139 HWND left_hwnd = GetLeftFakeHwnd();
3140 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31));
3141 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42));
3142 HWND right_hwnd = GetRightFakeHwnd();
3143 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31));
3144 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42));
3145 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31));
3146 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42));
3147 }
3148
3027 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetDisplays) { 3149 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetDisplays) {
3028 std::vector<Display> displays = GetScreen()->GetAllDisplays(); 3150 std::vector<Display> displays = GetScreen()->GetAllDisplays();
3029 ASSERT_EQ(2u, displays.size()); 3151 ASSERT_EQ(2u, displays.size());
3030 EXPECT_EQ(gfx::Rect(0, 0, 1600, 800), displays[0].bounds()); 3152 EXPECT_EQ(gfx::Rect(0, 0, 1600, 800), displays[0].bounds());
3031 EXPECT_EQ(gfx::Rect(0, 0, 1600, 750), displays[0].work_area()); 3153 EXPECT_EQ(gfx::Rect(0, 0, 1600, 750), displays[0].work_area());
3032 EXPECT_EQ(gfx::Rect(3200, 0, 1920, 1200), displays[1].bounds()); 3154 EXPECT_EQ(gfx::Rect(3200, 0, 1920, 1200), displays[1].bounds());
3033 EXPECT_EQ(gfx::Rect(3200, 0, 1920, 1200), displays[1].work_area()); 3155 EXPECT_EQ(gfx::Rect(3200, 0, 1920, 1200), displays[1].work_area());
3034 } 3156 }
3035 3157
3036 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetNumDisplays) { 3158 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetNumDisplays) {
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
3185 TEST_F(ScreenWinUninitializedForced1x, ScreenToDIPSize) { 3307 TEST_F(ScreenWinUninitializedForced1x, ScreenToDIPSize) {
3186 gfx::Size size(42, 131); 3308 gfx::Size size(42, 131);
3187 EXPECT_EQ(size, ScreenWin::ScreenToDIPSize(nullptr, size)); 3309 EXPECT_EQ(size, ScreenWin::ScreenToDIPSize(nullptr, size));
3188 } 3310 }
3189 3311
3190 TEST_F(ScreenWinUninitializedForced1x, DIPToScreenSize) { 3312 TEST_F(ScreenWinUninitializedForced1x, DIPToScreenSize) {
3191 gfx::Size size(42, 131); 3313 gfx::Size size(42, 131);
3192 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(nullptr, size)); 3314 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(nullptr, size));
3193 } 3315 }
3194 3316
3317 TEST_F(ScreenWinUninitializedForced1x, GetSystemMetricsForHwnd) {
3318 // GetSystemMetricsForHwnd falls back to the system's GetSystemMetrics, so
3319 // this test is to make sure we don't crash.
3320 ScreenWin::GetSystemMetricsForHwnd(nullptr, SM_CXSIZEFRAME);
3321 }
3322
3195 namespace { 3323 namespace {
3196 3324
3197 // Forced 2x DPI for Other Tests without TestScreenWin. 3325 // Forced 2x DPI for Other Tests without TestScreenWin.
3198 class ScreenWinUninitializedForced2x : public testing::Test { 3326 class ScreenWinUninitializedForced2x : public testing::Test {
3199 public: 3327 public:
3200 ScreenWinUninitializedForced2x() = default; 3328 ScreenWinUninitializedForced2x() = default;
3201 3329
3202 void SetUp() override { 3330 void SetUp() override {
3203 testing::Test::SetUp(); 3331 testing::Test::SetUp();
3204 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( 3332 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
3281 TEST_F(ScreenWinUninitializedForced2x, ScreenToDIPSize) { 3409 TEST_F(ScreenWinUninitializedForced2x, ScreenToDIPSize) {
3282 EXPECT_EQ(gfx::Size(21, 66), 3410 EXPECT_EQ(gfx::Size(21, 66),
3283 ScreenWin::ScreenToDIPSize(nullptr, gfx::Size(42, 131))); 3411 ScreenWin::ScreenToDIPSize(nullptr, gfx::Size(42, 131)));
3284 } 3412 }
3285 3413
3286 TEST_F(ScreenWinUninitializedForced2x, DIPToScreenSize) { 3414 TEST_F(ScreenWinUninitializedForced2x, DIPToScreenSize) {
3287 EXPECT_EQ(gfx::Size(42, 132), 3415 EXPECT_EQ(gfx::Size(42, 132),
3288 ScreenWin::DIPToScreenSize(nullptr, gfx::Size(21, 66))); 3416 ScreenWin::DIPToScreenSize(nullptr, gfx::Size(21, 66)));
3289 } 3417 }
3290 3418
3419 TEST_F(ScreenWinUninitializedForced2x, GetSystemMetricsForHwnd) {
3420 // GetSystemMetricsForHwnd falls back to the system's GetSystemMetrics, so
3421 // this test is to make sure we don't crash.
3422 ScreenWin::GetSystemMetricsForHwnd(nullptr, SM_CXSIZEFRAME);
3423 }
3424
3291 } // namespace win 3425 } // namespace win
3292 } // namespace display 3426 } // namespace display
OLDNEW
« no previous file with comments | « ui/display/win/screen_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698