| OLD | NEW |
| 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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 } | 330 } |
| 331 | 331 |
| 332 TEST_F(ScreenWinTestSingleDisplay1x, GetSystemMetricsForHwnd) { | 332 TEST_F(ScreenWinTestSingleDisplay1x, GetSystemMetricsForHwnd) { |
| 333 HWND hwnd = GetFakeHwnd(); | 333 HWND hwnd = GetFakeHwnd(); |
| 334 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); | 334 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); |
| 335 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); | 335 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); |
| 336 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 336 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 337 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 337 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 338 } | 338 } |
| 339 | 339 |
| 340 TEST_F(ScreenWinTestSingleDisplay1x, GetSystemMetricsInDIP) { |
| 341 EXPECT_EQ(31, ScreenWin::GetSystemMetricsInDIP(31)); |
| 342 EXPECT_EQ(42, ScreenWin::GetSystemMetricsInDIP(42)); |
| 343 } |
| 344 |
| 340 TEST_F(ScreenWinTestSingleDisplay1x, GetScaleFactorForHWND) { | 345 TEST_F(ScreenWinTestSingleDisplay1x, GetScaleFactorForHWND) { |
| 341 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); | 346 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); |
| 342 } | 347 } |
| 343 | 348 |
| 344 TEST_F(ScreenWinTestSingleDisplay1x, GetDisplays) { | 349 TEST_F(ScreenWinTestSingleDisplay1x, GetDisplays) { |
| 345 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 350 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 346 ASSERT_EQ(1u, displays.size()); | 351 ASSERT_EQ(1u, displays.size()); |
| 347 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); | 352 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); |
| 348 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); | 353 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); |
| 349 } | 354 } |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 } | 497 } |
| 493 | 498 |
| 494 TEST_F(ScreenWinTestSingleDisplay1_25x, GetSystemMetricsForHwnd) { | 499 TEST_F(ScreenWinTestSingleDisplay1_25x, GetSystemMetricsForHwnd) { |
| 495 HWND hwnd = GetFakeHwnd(); | 500 HWND hwnd = GetFakeHwnd(); |
| 496 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); | 501 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); |
| 497 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); | 502 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); |
| 498 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 503 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 499 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 504 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 500 } | 505 } |
| 501 | 506 |
| 507 TEST_F(ScreenWinTestSingleDisplay1_25x, GetSystemMetricsInDIP) { |
| 508 EXPECT_EQ(25, ScreenWin::GetSystemMetricsInDIP(31)); |
| 509 EXPECT_EQ(34, ScreenWin::GetSystemMetricsInDIP(42)); |
| 510 } |
| 511 |
| 502 TEST_F(ScreenWinTestSingleDisplay1_25x, GetScaleFactorForHWND) { | 512 TEST_F(ScreenWinTestSingleDisplay1_25x, GetScaleFactorForHWND) { |
| 503 EXPECT_EQ(1.25, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); | 513 EXPECT_EQ(1.25, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); |
| 504 } | 514 } |
| 505 | 515 |
| 506 TEST_F(ScreenWinTestSingleDisplay1_25x, GetDisplays) { | 516 TEST_F(ScreenWinTestSingleDisplay1_25x, GetDisplays) { |
| 507 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 517 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 508 ASSERT_EQ(1u, displays.size()); | 518 ASSERT_EQ(1u, displays.size()); |
| 509 EXPECT_EQ(gfx::Rect(0, 0, 1536, 960), displays[0].bounds()); | 519 EXPECT_EQ(gfx::Rect(0, 0, 1536, 960), displays[0].bounds()); |
| 510 EXPECT_EQ(gfx::Rect(0, 0, 1536, 880), displays[0].work_area()); | 520 EXPECT_EQ(gfx::Rect(0, 0, 1536, 880), displays[0].work_area()); |
| 511 } | 521 } |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 643 } | 653 } |
| 644 | 654 |
| 645 TEST_F(ScreenWinTestSingleDisplay1_5x, GetSystemMetricsForHwnd) { | 655 TEST_F(ScreenWinTestSingleDisplay1_5x, GetSystemMetricsForHwnd) { |
| 646 HWND hwnd = GetFakeHwnd(); | 656 HWND hwnd = GetFakeHwnd(); |
| 647 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); | 657 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); |
| 648 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); | 658 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); |
| 649 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 659 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 650 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 660 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 651 } | 661 } |
| 652 | 662 |
| 663 TEST_F(ScreenWinTestSingleDisplay1_5x, GetSystemMetricsInDIP) { |
| 664 EXPECT_EQ(21, ScreenWin::GetSystemMetricsInDIP(31)); |
| 665 EXPECT_EQ(28, ScreenWin::GetSystemMetricsInDIP(42)); |
| 666 } |
| 667 |
| 653 TEST_F(ScreenWinTestSingleDisplay1_5x, GetScaleFactorForHWND) { | 668 TEST_F(ScreenWinTestSingleDisplay1_5x, GetScaleFactorForHWND) { |
| 654 EXPECT_EQ(1.5, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); | 669 EXPECT_EQ(1.5, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); |
| 655 } | 670 } |
| 656 | 671 |
| 657 TEST_F(ScreenWinTestSingleDisplay1_5x, GetDisplays) { | 672 TEST_F(ScreenWinTestSingleDisplay1_5x, GetDisplays) { |
| 658 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 673 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 659 ASSERT_EQ(1u, displays.size()); | 674 ASSERT_EQ(1u, displays.size()); |
| 660 EXPECT_EQ(gfx::Rect(0, 0, 1280, 800), displays[0].bounds()); | 675 EXPECT_EQ(gfx::Rect(0, 0, 1280, 800), displays[0].bounds()); |
| 661 EXPECT_EQ(gfx::Rect(0, 0, 1280, 734), displays[0].work_area()); | 676 EXPECT_EQ(gfx::Rect(0, 0, 1280, 734), displays[0].work_area()); |
| 662 } | 677 } |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 794 } | 809 } |
| 795 | 810 |
| 796 TEST_F(ScreenWinTestSingleDisplay2x, GetSystemMetricsForHwnd) { | 811 TEST_F(ScreenWinTestSingleDisplay2x, GetSystemMetricsForHwnd) { |
| 797 HWND hwnd = GetFakeHwnd(); | 812 HWND hwnd = GetFakeHwnd(); |
| 798 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); | 813 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(hwnd, 31)); |
| 799 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); | 814 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(hwnd, 42)); |
| 800 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 815 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 801 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 816 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 802 } | 817 } |
| 803 | 818 |
| 819 TEST_F(ScreenWinTestSingleDisplay2x, GetSystemMetricsInDIP) { |
| 820 EXPECT_EQ(16, ScreenWin::GetSystemMetricsInDIP(31)); |
| 821 EXPECT_EQ(21, ScreenWin::GetSystemMetricsInDIP(42)); |
| 822 } |
| 823 |
| 804 TEST_F(ScreenWinTestSingleDisplay2x, GetScaleFactorForHWND) { | 824 TEST_F(ScreenWinTestSingleDisplay2x, GetScaleFactorForHWND) { |
| 805 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); | 825 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd())); |
| 806 } | 826 } |
| 807 | 827 |
| 808 TEST_F(ScreenWinTestSingleDisplay2x, GetDisplays) { | 828 TEST_F(ScreenWinTestSingleDisplay2x, GetDisplays) { |
| 809 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 829 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 810 ASSERT_EQ(1u, displays.size()); | 830 ASSERT_EQ(1u, displays.size()); |
| 811 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); | 831 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); |
| 812 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); | 832 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); |
| 813 } | 833 } |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1009 HWND left_hwnd = GetLeftFakeHwnd(); | 1029 HWND left_hwnd = GetLeftFakeHwnd(); |
| 1010 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); | 1030 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); |
| 1011 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); | 1031 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); |
| 1012 HWND right_hwnd = GetRightFakeHwnd(); | 1032 HWND right_hwnd = GetRightFakeHwnd(); |
| 1013 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); | 1033 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); |
| 1014 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); | 1034 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); |
| 1015 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 1035 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 1016 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 1036 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 1017 } | 1037 } |
| 1018 | 1038 |
| 1039 TEST_F(ScreenWinTestTwoDisplays1x, GetSystemMetricsInDIP) { |
| 1040 EXPECT_EQ(31, ScreenWin::GetSystemMetricsInDIP(31)); |
| 1041 EXPECT_EQ(42, ScreenWin::GetSystemMetricsInDIP(42)); |
| 1042 } |
| 1043 |
| 1019 TEST_F(ScreenWinTestTwoDisplays1x, GetScaleFactorForHWND) { | 1044 TEST_F(ScreenWinTestTwoDisplays1x, GetScaleFactorForHWND) { |
| 1020 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); | 1045 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); |
| 1021 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); | 1046 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); |
| 1022 } | 1047 } |
| 1023 | 1048 |
| 1024 TEST_F(ScreenWinTestTwoDisplays1x, GetDisplays) { | 1049 TEST_F(ScreenWinTestTwoDisplays1x, GetDisplays) { |
| 1025 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 1050 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 1026 ASSERT_EQ(2u, displays.size()); | 1051 ASSERT_EQ(2u, displays.size()); |
| 1027 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); | 1052 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); |
| 1028 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); | 1053 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1273 HWND left_hwnd = GetLeftFakeHwnd(); | 1298 HWND left_hwnd = GetLeftFakeHwnd(); |
| 1274 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); | 1299 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); |
| 1275 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); | 1300 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); |
| 1276 HWND right_hwnd = GetRightFakeHwnd(); | 1301 HWND right_hwnd = GetRightFakeHwnd(); |
| 1277 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); | 1302 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); |
| 1278 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); | 1303 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); |
| 1279 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 1304 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 1280 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 1305 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 1281 } | 1306 } |
| 1282 | 1307 |
| 1308 TEST_F(ScreenWinTestTwoDisplays2x, GetSystemMetricsInDIP) { |
| 1309 EXPECT_EQ(16, ScreenWin::GetSystemMetricsInDIP(31)); |
| 1310 EXPECT_EQ(21, ScreenWin::GetSystemMetricsInDIP(42)); |
| 1311 } |
| 1312 |
| 1283 TEST_F(ScreenWinTestTwoDisplays2x, GetScaleFactorForHWND) { | 1313 TEST_F(ScreenWinTestTwoDisplays2x, GetScaleFactorForHWND) { |
| 1284 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); | 1314 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); |
| 1285 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); | 1315 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); |
| 1286 } | 1316 } |
| 1287 | 1317 |
| 1288 TEST_F(ScreenWinTestTwoDisplays2x, GetDisplays) { | 1318 TEST_F(ScreenWinTestTwoDisplays2x, GetDisplays) { |
| 1289 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 1319 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 1290 ASSERT_EQ(2u, displays.size()); | 1320 ASSERT_EQ(2u, displays.size()); |
| 1291 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); | 1321 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); |
| 1292 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); | 1322 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1645 TEST_F(ScreenWinTestManyDisplays1x, GetSystemMetricsForHwnd) { | 1675 TEST_F(ScreenWinTestManyDisplays1x, GetSystemMetricsForHwnd) { |
| 1646 for (size_t i = 0; i < 5u; ++i) { | 1676 for (size_t i = 0; i < 5u; ++i) { |
| 1647 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); | 1677 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); |
| 1648 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 31)); | 1678 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 31)); |
| 1649 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 42)); | 1679 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 42)); |
| 1650 } | 1680 } |
| 1651 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 1681 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 1652 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 1682 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 1653 } | 1683 } |
| 1654 | 1684 |
| 1685 TEST_F(ScreenWinTestManyDisplays1x, GetSystemMetricsInDIP) { |
| 1686 EXPECT_EQ(31, ScreenWin::GetSystemMetricsInDIP(31)); |
| 1687 EXPECT_EQ(42, ScreenWin::GetSystemMetricsInDIP(42)); |
| 1688 } |
| 1689 |
| 1655 TEST_F(ScreenWinTestManyDisplays1x, GetScaleFactorForHWND) { | 1690 TEST_F(ScreenWinTestManyDisplays1x, GetScaleFactorForHWND) { |
| 1656 for (size_t i = 0; i < 5u; ++i) { | 1691 for (size_t i = 0; i < 5u; ++i) { |
| 1657 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); | 1692 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); |
| 1658 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd(i))); | 1693 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd(i))); |
| 1659 } | 1694 } |
| 1660 } | 1695 } |
| 1661 | 1696 |
| 1662 TEST_F(ScreenWinTestManyDisplays1x, GetDisplays) { | 1697 TEST_F(ScreenWinTestManyDisplays1x, GetDisplays) { |
| 1663 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 1698 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 1664 ASSERT_EQ(5u, displays.size()); | 1699 ASSERT_EQ(5u, displays.size()); |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2078 TEST_F(ScreenWinTestManyDisplays2x, GetSystemMetricsForHwnd) { | 2113 TEST_F(ScreenWinTestManyDisplays2x, GetSystemMetricsForHwnd) { |
| 2079 for (size_t i = 0; i < 5u; ++i) { | 2114 for (size_t i = 0; i < 5u; ++i) { |
| 2080 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); | 2115 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); |
| 2081 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 31)); | 2116 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 31)); |
| 2082 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 42)); | 2117 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(GetFakeHwnd(i), 42)); |
| 2083 } | 2118 } |
| 2084 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 2119 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 2085 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 2120 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 2086 } | 2121 } |
| 2087 | 2122 |
| 2123 TEST_F(ScreenWinTestManyDisplays2x, GetSystemMetricsInDIP) { |
| 2124 EXPECT_EQ(16, ScreenWin::GetSystemMetricsInDIP(31)); |
| 2125 EXPECT_EQ(21, ScreenWin::GetSystemMetricsInDIP(42)); |
| 2126 } |
| 2127 |
| 2088 TEST_F(ScreenWinTestManyDisplays2x, GetScaleFactorForHWND) { | 2128 TEST_F(ScreenWinTestManyDisplays2x, GetScaleFactorForHWND) { |
| 2089 for (size_t i = 0; i < 5u; ++i) { | 2129 for (size_t i = 0; i < 5u; ++i) { |
| 2090 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); | 2130 SCOPED_TRACE(base::StringPrintf("i=%zu", i)); |
| 2091 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd(i))); | 2131 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetFakeHwnd(i))); |
| 2092 } | 2132 } |
| 2093 } | 2133 } |
| 2094 | 2134 |
| 2095 TEST_F(ScreenWinTestManyDisplays2x, GetDisplays) { | 2135 TEST_F(ScreenWinTestManyDisplays2x, GetDisplays) { |
| 2096 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 2136 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 2097 ASSERT_EQ(5u, displays.size()); | 2137 ASSERT_EQ(5u, displays.size()); |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2375 HWND left_hwnd = GetLeftFakeHwnd(); | 2415 HWND left_hwnd = GetLeftFakeHwnd(); |
| 2376 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); | 2416 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); |
| 2377 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); | 2417 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); |
| 2378 HWND right_hwnd = GetRightFakeHwnd(); | 2418 HWND right_hwnd = GetRightFakeHwnd(); |
| 2379 EXPECT_EQ(62, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); | 2419 EXPECT_EQ(62, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); |
| 2380 EXPECT_EQ(84, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); | 2420 EXPECT_EQ(84, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); |
| 2381 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 2421 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 2382 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 2422 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 2383 } | 2423 } |
| 2384 | 2424 |
| 2425 TEST_F(ScreenWinTestTwoDisplays1x2x, GetSystemMetricsInDIP) { |
| 2426 EXPECT_EQ(31, ScreenWin::GetSystemMetricsInDIP(31)); |
| 2427 EXPECT_EQ(42, ScreenWin::GetSystemMetricsInDIP(42)); |
| 2428 } |
| 2429 |
| 2385 TEST_F(ScreenWinTestTwoDisplays1x2x, GetScaleFactorForHWND) { | 2430 TEST_F(ScreenWinTestTwoDisplays1x2x, GetScaleFactorForHWND) { |
| 2386 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); | 2431 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); |
| 2387 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); | 2432 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); |
| 2388 } | 2433 } |
| 2389 | 2434 |
| 2390 TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplays) { | 2435 TEST_F(ScreenWinTestTwoDisplays1x2x, GetDisplays) { |
| 2391 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 2436 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 2392 ASSERT_EQ(2u, displays.size()); | 2437 ASSERT_EQ(2u, displays.size()); |
| 2393 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); | 2438 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1200), displays[0].bounds()); |
| 2394 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); | 2439 EXPECT_EQ(gfx::Rect(0, 0, 1920, 1100), displays[0].work_area()); |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2647 HWND left_hwnd = GetLeftFakeHwnd(); | 2692 HWND left_hwnd = GetLeftFakeHwnd(); |
| 2648 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); | 2693 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); |
| 2649 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); | 2694 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); |
| 2650 HWND right_hwnd = GetRightFakeHwnd(); | 2695 HWND right_hwnd = GetRightFakeHwnd(); |
| 2651 EXPECT_EQ(21, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); | 2696 EXPECT_EQ(21, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); |
| 2652 EXPECT_EQ(28, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); | 2697 EXPECT_EQ(28, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); |
| 2653 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 2698 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 2654 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 2699 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 2655 } | 2700 } |
| 2656 | 2701 |
| 2702 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetSystemMetricsInDIP) { |
| 2703 EXPECT_EQ(21, ScreenWin::GetSystemMetricsInDIP(31)); |
| 2704 EXPECT_EQ(28, ScreenWin::GetSystemMetricsInDIP(42)); |
| 2705 } |
| 2706 |
| 2657 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetScaleFactorForHWND) { | 2707 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetScaleFactorForHWND) { |
| 2658 EXPECT_EQ(1.5, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); | 2708 EXPECT_EQ(1.5, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); |
| 2659 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); | 2709 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); |
| 2660 } | 2710 } |
| 2661 | 2711 |
| 2662 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplays) { | 2712 TEST_F(ScreenWinTestTwoDisplays1_5x1x, GetDisplays) { |
| 2663 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 2713 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 2664 ASSERT_EQ(2u, displays.size()); | 2714 ASSERT_EQ(2u, displays.size()); |
| 2665 EXPECT_EQ(gfx::Rect(0, 0, 534, 400), displays[0].bounds()); | 2715 EXPECT_EQ(gfx::Rect(0, 0, 534, 400), displays[0].bounds()); |
| 2666 EXPECT_EQ(gfx::Rect(0, 0, 534, 367), displays[0].work_area()); | 2716 EXPECT_EQ(gfx::Rect(0, 0, 534, 367), displays[0].work_area()); |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2915 HWND left_hwnd = GetLeftFakeHwnd(); | 2965 HWND left_hwnd = GetLeftFakeHwnd(); |
| 2916 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); | 2966 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); |
| 2917 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); | 2967 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); |
| 2918 HWND right_hwnd = GetRightFakeHwnd(); | 2968 HWND right_hwnd = GetRightFakeHwnd(); |
| 2919 EXPECT_EQ(16, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); | 2969 EXPECT_EQ(16, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); |
| 2920 EXPECT_EQ(21, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); | 2970 EXPECT_EQ(21, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); |
| 2921 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 2971 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 2922 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 2972 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 2923 } | 2973 } |
| 2924 | 2974 |
| 2975 TEST_F(ScreenWinTestTwoDisplays2x1x, GetSystemMetricsInDIP) { |
| 2976 EXPECT_EQ(16, ScreenWin::GetSystemMetricsInDIP(31)); |
| 2977 EXPECT_EQ(21, ScreenWin::GetSystemMetricsInDIP(42)); |
| 2978 } |
| 2979 |
| 2925 TEST_F(ScreenWinTestTwoDisplays2x1x, GetScaleFactorForHWND) { | 2980 TEST_F(ScreenWinTestTwoDisplays2x1x, GetScaleFactorForHWND) { |
| 2926 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); | 2981 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); |
| 2927 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); | 2982 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); |
| 2928 } | 2983 } |
| 2929 | 2984 |
| 2930 TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplays) { | 2985 TEST_F(ScreenWinTestTwoDisplays2x1x, GetDisplays) { |
| 2931 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 2986 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 2932 ASSERT_EQ(2u, displays.size()); | 2987 ASSERT_EQ(2u, displays.size()); |
| 2933 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); | 2988 EXPECT_EQ(gfx::Rect(0, 0, 960, 600), displays[0].bounds()); |
| 2934 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); | 2989 EXPECT_EQ(gfx::Rect(0, 0, 960, 550), displays[0].work_area()); |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3188 HWND left_hwnd = GetLeftFakeHwnd(); | 3243 HWND left_hwnd = GetLeftFakeHwnd(); |
| 3189 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); | 3244 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 31)); |
| 3190 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); | 3245 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(left_hwnd, 42)); |
| 3191 HWND right_hwnd = GetRightFakeHwnd(); | 3246 HWND right_hwnd = GetRightFakeHwnd(); |
| 3192 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); | 3247 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 31)); |
| 3193 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); | 3248 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(right_hwnd, 42)); |
| 3194 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); | 3249 EXPECT_EQ(31, ScreenWin::GetSystemMetricsForHwnd(nullptr, 31)); |
| 3195 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); | 3250 EXPECT_EQ(42, ScreenWin::GetSystemMetricsForHwnd(nullptr, 42)); |
| 3196 } | 3251 } |
| 3197 | 3252 |
| 3253 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetSystemMetricsInDIP) { |
| 3254 EXPECT_EQ(16, ScreenWin::GetSystemMetricsInDIP(31)); |
| 3255 EXPECT_EQ(21, ScreenWin::GetSystemMetricsInDIP(42)); |
| 3256 } |
| 3257 |
| 3198 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetScaleFactorForHWND) { | 3258 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetScaleFactorForHWND) { |
| 3199 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); | 3259 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetLeftFakeHwnd())); |
| 3200 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); | 3260 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(GetRightFakeHwnd())); |
| 3201 } | 3261 } |
| 3202 | 3262 |
| 3203 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetDisplays) { | 3263 TEST_F(ScreenWinTestTwoDisplays2x1xVirtualized, GetDisplays) { |
| 3204 std::vector<Display> displays = GetScreen()->GetAllDisplays(); | 3264 std::vector<Display> displays = GetScreen()->GetAllDisplays(); |
| 3205 ASSERT_EQ(2u, displays.size()); | 3265 ASSERT_EQ(2u, displays.size()); |
| 3206 EXPECT_EQ(gfx::Rect(0, 0, 1600, 800), displays[0].bounds()); | 3266 EXPECT_EQ(gfx::Rect(0, 0, 1600, 800), displays[0].bounds()); |
| 3207 EXPECT_EQ(gfx::Rect(0, 0, 1600, 750), displays[0].work_area()); | 3267 EXPECT_EQ(gfx::Rect(0, 0, 1600, 750), displays[0].work_area()); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3367 gfx::Size size(42, 131); | 3427 gfx::Size size(42, 131); |
| 3368 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(nullptr, size)); | 3428 EXPECT_EQ(size, ScreenWin::DIPToScreenSize(nullptr, size)); |
| 3369 } | 3429 } |
| 3370 | 3430 |
| 3371 TEST_F(ScreenWinUninitializedForced1x, GetSystemMetricsForHwnd) { | 3431 TEST_F(ScreenWinUninitializedForced1x, GetSystemMetricsForHwnd) { |
| 3372 // GetSystemMetricsForHwnd falls back to the system's GetSystemMetrics, so | 3432 // GetSystemMetricsForHwnd falls back to the system's GetSystemMetrics, so |
| 3373 // this test is to make sure we don't crash. | 3433 // this test is to make sure we don't crash. |
| 3374 ScreenWin::GetSystemMetricsForHwnd(nullptr, SM_CXSIZEFRAME); | 3434 ScreenWin::GetSystemMetricsForHwnd(nullptr, SM_CXSIZEFRAME); |
| 3375 } | 3435 } |
| 3376 | 3436 |
| 3437 TEST_F(ScreenWinUninitializedForced1x, GetSystemMetricsInDIP) { |
| 3438 // GetSystemMetricsInDIP falls back to the system's GetSystemMetrics, so this |
| 3439 // test is to make sure we don't crash. |
| 3440 ScreenWin::GetSystemMetricsInDIP(SM_CXSIZEFRAME); |
| 3441 } |
| 3442 |
| 3377 TEST_F(ScreenWinUninitializedForced1x, GetScaleFactorForHWND) { | 3443 TEST_F(ScreenWinUninitializedForced1x, GetScaleFactorForHWND) { |
| 3378 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(nullptr)); | 3444 EXPECT_EQ(1.0, ScreenWin::GetScaleFactorForHWND(nullptr)); |
| 3379 } | 3445 } |
| 3380 | 3446 |
| 3381 namespace { | 3447 namespace { |
| 3382 | 3448 |
| 3383 // Forced 2x DPI for Other Tests without TestScreenWin. | 3449 // Forced 2x DPI for Other Tests without TestScreenWin. |
| 3384 class ScreenWinUninitializedForced2x : public testing::Test { | 3450 class ScreenWinUninitializedForced2x : public testing::Test { |
| 3385 public: | 3451 public: |
| 3386 ScreenWinUninitializedForced2x() = default; | 3452 ScreenWinUninitializedForced2x() = default; |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3473 EXPECT_EQ(gfx::Size(42, 132), | 3539 EXPECT_EQ(gfx::Size(42, 132), |
| 3474 ScreenWin::DIPToScreenSize(nullptr, gfx::Size(21, 66))); | 3540 ScreenWin::DIPToScreenSize(nullptr, gfx::Size(21, 66))); |
| 3475 } | 3541 } |
| 3476 | 3542 |
| 3477 TEST_F(ScreenWinUninitializedForced2x, GetSystemMetricsForHwnd) { | 3543 TEST_F(ScreenWinUninitializedForced2x, GetSystemMetricsForHwnd) { |
| 3478 // GetSystemMetricsForHwnd falls back to the system's GetSystemMetrics, so | 3544 // GetSystemMetricsForHwnd falls back to the system's GetSystemMetrics, so |
| 3479 // this test is to make sure we don't crash. | 3545 // this test is to make sure we don't crash. |
| 3480 ScreenWin::GetSystemMetricsForHwnd(nullptr, SM_CXSIZEFRAME); | 3546 ScreenWin::GetSystemMetricsForHwnd(nullptr, SM_CXSIZEFRAME); |
| 3481 } | 3547 } |
| 3482 | 3548 |
| 3549 TEST_F(ScreenWinUninitializedForced2x, GetSystemMetricsInDIP) { |
| 3550 // GetSystemMetricsForHwnd falls back to the system's GetSystemMetrics, so |
| 3551 // this test is to make sure we don't crash. |
| 3552 ScreenWin::GetSystemMetricsInDIP(SM_CXSIZEFRAME); |
| 3553 } |
| 3554 |
| 3483 TEST_F(ScreenWinUninitializedForced2x, GetScaleFactorForHWND) { | 3555 TEST_F(ScreenWinUninitializedForced2x, GetScaleFactorForHWND) { |
| 3484 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(nullptr)); | 3556 EXPECT_EQ(2.0, ScreenWin::GetScaleFactorForHWND(nullptr)); |
| 3485 } | 3557 } |
| 3486 | 3558 |
| 3487 } // namespace win | 3559 } // namespace win |
| 3488 } // namespace display | 3560 } // namespace display |
| OLD | NEW |