| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/display/display_controller.h" | 5 #include "ash/display/display_controller.h" |
| 6 | 6 |
| 7 #include "ash/ash_switches.h" | 7 #include "ash/ash_switches.h" |
| 8 #include "ash/display/display_info.h" | 8 #include "ash/display/display_info.h" |
| 9 #include "ash/display/display_layout_store.h" | 9 #include "ash/display/display_layout_store.h" |
| 10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); | 502 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); |
| 503 EXPECT_EQ("-300,500 400x400", GetSecondaryDisplay().bounds().ToString()); | 503 EXPECT_EQ("-300,500 400x400", GetSecondaryDisplay().bounds().ToString()); |
| 504 | 504 |
| 505 UpdateDisplay("500x500"); | 505 UpdateDisplay("500x500"); |
| 506 EXPECT_LE(1, observer.GetFocusChangedCountAndReset()); | 506 EXPECT_LE(1, observer.GetFocusChangedCountAndReset()); |
| 507 EXPECT_LE(1, observer.GetActivationChangedCountAndReset()); | 507 EXPECT_LE(1, observer.GetActivationChangedCountAndReset()); |
| 508 } | 508 } |
| 509 | 509 |
| 510 namespace { | 510 namespace { |
| 511 | 511 |
| 512 internal::DisplayInfo CreateDisplayInfo(int64 id, | 512 DisplayInfo CreateDisplayInfo(int64 id, |
| 513 const gfx::Rect& bounds, | 513 const gfx::Rect& bounds, |
| 514 float device_scale_factor) { | 514 float device_scale_factor) { |
| 515 internal::DisplayInfo info(id, "", false); | 515 DisplayInfo info(id, "", false); |
| 516 info.SetBounds(bounds); | 516 info.SetBounds(bounds); |
| 517 info.set_device_scale_factor(device_scale_factor); | 517 info.set_device_scale_factor(device_scale_factor); |
| 518 return info; | 518 return info; |
| 519 } | 519 } |
| 520 | 520 |
| 521 } // namespace | 521 } // namespace |
| 522 | 522 |
| 523 TEST_F(DisplayControllerTest, MirrorToDockedWithFullscreen) { | 523 TEST_F(DisplayControllerTest, MirrorToDockedWithFullscreen) { |
| 524 // Creates windows to catch activation change event. | 524 // Creates windows to catch activation change event. |
| 525 scoped_ptr<aura::Window> w1(CreateTestWindowInShellWithId(1)); | 525 scoped_ptr<aura::Window> w1(CreateTestWindowInShellWithId(1)); |
| 526 w1->Focus(); | 526 w1->Focus(); |
| 527 | 527 |
| 528 // Docked mode. | 528 // Docked mode. |
| 529 internal::DisplayManager* display_manager = | 529 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 530 Shell::GetInstance()->display_manager(); | |
| 531 | 530 |
| 532 const internal::DisplayInfo internal_display_info = | 531 const DisplayInfo internal_display_info = |
| 533 CreateDisplayInfo(1, gfx::Rect(0, 0, 500, 500), 2.0f); | 532 CreateDisplayInfo(1, gfx::Rect(0, 0, 500, 500), 2.0f); |
| 534 const internal::DisplayInfo external_display_info = | 533 const DisplayInfo external_display_info = |
| 535 CreateDisplayInfo(2, gfx::Rect(0, 0, 500, 500), 1.0f); | 534 CreateDisplayInfo(2, gfx::Rect(0, 0, 500, 500), 1.0f); |
| 536 | 535 |
| 537 std::vector<internal::DisplayInfo> display_info_list; | 536 std::vector<DisplayInfo> display_info_list; |
| 538 // Mirror. | 537 // Mirror. |
| 539 display_info_list.push_back(internal_display_info); | 538 display_info_list.push_back(internal_display_info); |
| 540 display_info_list.push_back(external_display_info); | 539 display_info_list.push_back(external_display_info); |
| 541 display_manager->OnNativeDisplaysChanged(display_info_list); | 540 display_manager->OnNativeDisplaysChanged(display_info_list); |
| 542 const int64 internal_display_id = | 541 const int64 internal_display_id = |
| 543 test::DisplayManagerTestApi(display_manager). | 542 test::DisplayManagerTestApi(display_manager). |
| 544 SetFirstDisplayAsInternalDisplay(); | 543 SetFirstDisplayAsInternalDisplay(); |
| 545 EXPECT_EQ(1, internal_display_id); | 544 EXPECT_EQ(1, internal_display_id); |
| 546 EXPECT_EQ(2U, display_manager->num_connected_displays()); | 545 EXPECT_EQ(2U, display_manager->num_connected_displays()); |
| 547 EXPECT_EQ(1U, display_manager->GetNumDisplays()); | 546 EXPECT_EQ(1U, display_manager->GetNumDisplays()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 576 scoped_ptr<aura::Window> w1(CreateTestWindowInShellWithId(1)); | 575 scoped_ptr<aura::Window> w1(CreateTestWindowInShellWithId(1)); |
| 577 w1->Focus(); | 576 w1->Focus(); |
| 578 | 577 |
| 579 TestObserver observer; | 578 TestObserver observer; |
| 580 SetDefaultDisplayLayout(DisplayLayout::BOTTOM); | 579 SetDefaultDisplayLayout(DisplayLayout::BOTTOM); |
| 581 UpdateDisplay("200x200,300x300"); // layout, resize and add. | 580 UpdateDisplay("200x200,300x300"); // layout, resize and add. |
| 582 EXPECT_EQ(1, observer.CountAndReset()); | 581 EXPECT_EQ(1, observer.CountAndReset()); |
| 583 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset()); | 582 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset()); |
| 584 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset()); | 583 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset()); |
| 585 | 584 |
| 586 internal::DisplayManager* display_manager = | 585 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 587 Shell::GetInstance()->display_manager(); | |
| 588 gfx::Insets insets(5, 5, 5, 5); | 586 gfx::Insets insets(5, 5, 5, 5); |
| 589 display_manager->UpdateWorkAreaOfDisplay( | 587 display_manager->UpdateWorkAreaOfDisplay( |
| 590 ScreenUtil::GetSecondaryDisplay().id(), insets); | 588 ScreenUtil::GetSecondaryDisplay().id(), insets); |
| 591 | 589 |
| 592 EXPECT_EQ("0,0 200x200", GetPrimaryDisplay().bounds().ToString()); | 590 EXPECT_EQ("0,0 200x200", GetPrimaryDisplay().bounds().ToString()); |
| 593 EXPECT_EQ("0,200 300x300", GetSecondaryDisplay().bounds().ToString()); | 591 EXPECT_EQ("0,200 300x300", GetSecondaryDisplay().bounds().ToString()); |
| 594 EXPECT_EQ("5,205 290x290", GetSecondaryDisplay().work_area().ToString()); | 592 EXPECT_EQ("5,205 290x290", GetSecondaryDisplay().work_area().ToString()); |
| 595 | 593 |
| 596 UpdateDisplay("400x400,200x200"); | 594 UpdateDisplay("400x400,200x200"); |
| 597 EXPECT_EQ(1, observer.CountAndReset()); // two resizes | 595 EXPECT_EQ(1, observer.CountAndReset()); // two resizes |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 659 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset()); | 657 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset()); |
| 660 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset()); | 658 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset()); |
| 661 } | 659 } |
| 662 | 660 |
| 663 TEST_F(DisplayControllerTest, SwapPrimary) { | 661 TEST_F(DisplayControllerTest, SwapPrimary) { |
| 664 if (!SupportsMultipleDisplays()) | 662 if (!SupportsMultipleDisplays()) |
| 665 return; | 663 return; |
| 666 | 664 |
| 667 DisplayController* display_controller = | 665 DisplayController* display_controller = |
| 668 Shell::GetInstance()->display_controller(); | 666 Shell::GetInstance()->display_controller(); |
| 669 internal::DisplayManager* display_manager = | 667 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 670 Shell::GetInstance()->display_manager(); | |
| 671 | 668 |
| 672 UpdateDisplay("200x200,300x300"); | 669 UpdateDisplay("200x200,300x300"); |
| 673 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); | 670 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 674 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); | 671 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); |
| 675 | 672 |
| 676 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); | 673 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); |
| 677 display_manager->SetLayoutForCurrentDisplays(display_layout); | 674 display_manager->SetLayoutForCurrentDisplays(display_layout); |
| 678 | 675 |
| 679 EXPECT_NE(primary_display.id(), secondary_display.id()); | 676 EXPECT_NE(primary_display.id(), secondary_display.id()); |
| 680 aura::Window* primary_root = | 677 aura::Window* primary_root = |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 EXPECT_FALSE(tracker.Contains(secondary_root)); | 747 EXPECT_FALSE(tracker.Contains(secondary_root)); |
| 751 EXPECT_TRUE(primary_root->Contains(shelf_window)); | 748 EXPECT_TRUE(primary_root->Contains(shelf_window)); |
| 752 } | 749 } |
| 753 | 750 |
| 754 TEST_F(DisplayControllerTest, FindNearestDisplay) { | 751 TEST_F(DisplayControllerTest, FindNearestDisplay) { |
| 755 if (!SupportsMultipleDisplays()) | 752 if (!SupportsMultipleDisplays()) |
| 756 return; | 753 return; |
| 757 | 754 |
| 758 DisplayController* display_controller = | 755 DisplayController* display_controller = |
| 759 Shell::GetInstance()->display_controller(); | 756 Shell::GetInstance()->display_controller(); |
| 760 internal::DisplayManager* display_manager = | 757 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 761 Shell::GetInstance()->display_manager(); | |
| 762 | 758 |
| 763 UpdateDisplay("200x200,300x300"); | 759 UpdateDisplay("200x200,300x300"); |
| 764 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); | 760 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); |
| 765 display_manager->SetLayoutForCurrentDisplays(display_layout); | 761 display_manager->SetLayoutForCurrentDisplays(display_layout); |
| 766 | 762 |
| 767 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); | 763 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 768 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); | 764 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); |
| 769 EXPECT_NE(primary_display.id(), secondary_display.id()); | 765 EXPECT_NE(primary_display.id(), secondary_display.id()); |
| 770 aura::Window* primary_root = | 766 aura::Window* primary_root = |
| 771 display_controller->GetRootWindowForDisplayId(primary_display.id()); | 767 display_controller->GetRootWindowForDisplayId(primary_display.id()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 796 | 792 |
| 797 TEST_F(DisplayControllerTest, SwapPrimaryForLegacyShelfLayout) { | 793 TEST_F(DisplayControllerTest, SwapPrimaryForLegacyShelfLayout) { |
| 798 if (!SupportsMultipleDisplays()) | 794 if (!SupportsMultipleDisplays()) |
| 799 return; | 795 return; |
| 800 | 796 |
| 801 CommandLine::ForCurrentProcess()->AppendSwitch( | 797 CommandLine::ForCurrentProcess()->AppendSwitch( |
| 802 switches::kAshDisableAlternateShelfLayout); | 798 switches::kAshDisableAlternateShelfLayout); |
| 803 | 799 |
| 804 DisplayController* display_controller = | 800 DisplayController* display_controller = |
| 805 Shell::GetInstance()->display_controller(); | 801 Shell::GetInstance()->display_controller(); |
| 806 internal::DisplayManager* display_manager = | 802 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 807 Shell::GetInstance()->display_manager(); | |
| 808 | 803 |
| 809 UpdateDisplay("200x200,300x300"); | 804 UpdateDisplay("200x200,300x300"); |
| 810 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); | 805 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 811 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); | 806 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); |
| 812 | 807 |
| 813 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); | 808 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); |
| 814 display_manager->SetLayoutForCurrentDisplays(display_layout); | 809 display_manager->SetLayoutForCurrentDisplays(display_layout); |
| 815 | 810 |
| 816 EXPECT_NE(primary_display.id(), secondary_display.id()); | 811 EXPECT_NE(primary_display.id(), secondary_display.id()); |
| 817 aura::Window* primary_root = | 812 aura::Window* primary_root = |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 EXPECT_FALSE(tracker.Contains(secondary_root)); | 882 EXPECT_FALSE(tracker.Contains(secondary_root)); |
| 888 EXPECT_TRUE(primary_root->Contains(shelf_window)); | 883 EXPECT_TRUE(primary_root->Contains(shelf_window)); |
| 889 } | 884 } |
| 890 | 885 |
| 891 TEST_F(DisplayControllerTest, SwapPrimaryById) { | 886 TEST_F(DisplayControllerTest, SwapPrimaryById) { |
| 892 if (!SupportsMultipleDisplays()) | 887 if (!SupportsMultipleDisplays()) |
| 893 return; | 888 return; |
| 894 | 889 |
| 895 DisplayController* display_controller = | 890 DisplayController* display_controller = |
| 896 Shell::GetInstance()->display_controller(); | 891 Shell::GetInstance()->display_controller(); |
| 897 internal::DisplayManager* display_manager = | 892 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 898 Shell::GetInstance()->display_manager(); | |
| 899 | 893 |
| 900 UpdateDisplay("200x200,300x300"); | 894 UpdateDisplay("200x200,300x300"); |
| 901 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); | 895 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 902 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); | 896 gfx::Display secondary_display = ScreenUtil::GetSecondaryDisplay(); |
| 903 | 897 |
| 904 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); | 898 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); |
| 905 display_manager->SetLayoutForCurrentDisplays(display_layout); | 899 display_manager->SetLayoutForCurrentDisplays(display_layout); |
| 906 | 900 |
| 907 EXPECT_NE(primary_display.id(), secondary_display.id()); | 901 EXPECT_NE(primary_display.id(), secondary_display.id()); |
| 908 aura::Window* primary_root = | 902 aura::Window* primary_root = |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 959 Shell::GetScreen()->GetDisplayNearestPoint( | 953 Shell::GetScreen()->GetDisplayNearestPoint( |
| 960 gfx::Point(-100, -100)).id()); | 954 gfx::Point(-100, -100)).id()); |
| 961 EXPECT_EQ(primary_display.id(), | 955 EXPECT_EQ(primary_display.id(), |
| 962 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); | 956 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); |
| 963 EXPECT_TRUE(tracker.Contains(primary_root)); | 957 EXPECT_TRUE(tracker.Contains(primary_root)); |
| 964 EXPECT_FALSE(tracker.Contains(secondary_root)); | 958 EXPECT_FALSE(tracker.Contains(secondary_root)); |
| 965 EXPECT_TRUE(primary_root->Contains(shelf_window)); | 959 EXPECT_TRUE(primary_root->Contains(shelf_window)); |
| 966 | 960 |
| 967 // Adding 2nd display with the same ID. The 2nd display should become primary | 961 // Adding 2nd display with the same ID. The 2nd display should become primary |
| 968 // since secondary id is still stored as desirable_primary_id. | 962 // since secondary id is still stored as desirable_primary_id. |
| 969 std::vector<internal::DisplayInfo> display_info_list; | 963 std::vector<DisplayInfo> display_info_list; |
| 970 display_info_list.push_back( | 964 display_info_list.push_back( |
| 971 display_manager->GetDisplayInfo(primary_display.id())); | 965 display_manager->GetDisplayInfo(primary_display.id())); |
| 972 display_info_list.push_back( | 966 display_info_list.push_back( |
| 973 display_manager->GetDisplayInfo(secondary_display.id())); | 967 display_manager->GetDisplayInfo(secondary_display.id())); |
| 974 display_manager->OnNativeDisplaysChanged(display_info_list); | 968 display_manager->OnNativeDisplaysChanged(display_info_list); |
| 975 | 969 |
| 976 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); | 970 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); |
| 977 EXPECT_EQ(secondary_display.id(), | 971 EXPECT_EQ(secondary_display.id(), |
| 978 Shell::GetScreen()->GetPrimaryDisplay().id()); | 972 Shell::GetScreen()->GetPrimaryDisplay().id()); |
| 979 EXPECT_EQ(primary_display.id(), ScreenUtil::GetSecondaryDisplay().id()); | 973 EXPECT_EQ(primary_display.id(), ScreenUtil::GetSecondaryDisplay().id()); |
| 980 EXPECT_EQ( | 974 EXPECT_EQ( |
| 981 primary_root, | 975 primary_root, |
| 982 display_controller->GetRootWindowForDisplayId(secondary_display.id())); | 976 display_controller->GetRootWindowForDisplayId(secondary_display.id())); |
| 983 EXPECT_NE( | 977 EXPECT_NE( |
| 984 primary_root, | 978 primary_root, |
| 985 display_controller->GetRootWindowForDisplayId(primary_display.id())); | 979 display_controller->GetRootWindowForDisplayId(primary_display.id())); |
| 986 EXPECT_TRUE(primary_root->Contains(shelf_window)); | 980 EXPECT_TRUE(primary_root->Contains(shelf_window)); |
| 987 | 981 |
| 988 // Deleting 2nd display and adding 2nd display with a different ID. The 2nd | 982 // Deleting 2nd display and adding 2nd display with a different ID. The 2nd |
| 989 // display shouldn't become primary. | 983 // display shouldn't become primary. |
| 990 UpdateDisplay("200x200"); | 984 UpdateDisplay("200x200"); |
| 991 internal::DisplayInfo third_display_info( | 985 DisplayInfo third_display_info( |
| 992 secondary_display.id() + 1, std::string(), false); | 986 secondary_display.id() + 1, std::string(), false); |
| 993 third_display_info.SetBounds(secondary_display.bounds()); | 987 third_display_info.SetBounds(secondary_display.bounds()); |
| 994 ASSERT_NE(primary_display.id(), third_display_info.id()); | 988 ASSERT_NE(primary_display.id(), third_display_info.id()); |
| 995 | 989 |
| 996 const internal::DisplayInfo& primary_display_info = | 990 const DisplayInfo& primary_display_info = |
| 997 display_manager->GetDisplayInfo(primary_display.id()); | 991 display_manager->GetDisplayInfo(primary_display.id()); |
| 998 std::vector<internal::DisplayInfo> display_info_list2; | 992 std::vector<DisplayInfo> display_info_list2; |
| 999 display_info_list2.push_back(primary_display_info); | 993 display_info_list2.push_back(primary_display_info); |
| 1000 display_info_list2.push_back(third_display_info); | 994 display_info_list2.push_back(third_display_info); |
| 1001 display_manager->OnNativeDisplaysChanged(display_info_list2); | 995 display_manager->OnNativeDisplaysChanged(display_info_list2); |
| 1002 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); | 996 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); |
| 1003 EXPECT_EQ(primary_display.id(), | 997 EXPECT_EQ(primary_display.id(), |
| 1004 Shell::GetScreen()->GetPrimaryDisplay().id()); | 998 Shell::GetScreen()->GetPrimaryDisplay().id()); |
| 1005 EXPECT_EQ(third_display_info.id(), ScreenUtil::GetSecondaryDisplay().id()); | 999 EXPECT_EQ(third_display_info.id(), ScreenUtil::GetSecondaryDisplay().id()); |
| 1006 EXPECT_EQ( | 1000 EXPECT_EQ( |
| 1007 primary_root, | 1001 primary_root, |
| 1008 display_controller->GetRootWindowForDisplayId(primary_display.id())); | 1002 display_controller->GetRootWindowForDisplayId(primary_display.id())); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1114 GetRootTransform().TransformPoint(&point); | 1108 GetRootTransform().TransformPoint(&point); |
| 1115 EXPECT_EQ("15,10", point.ToString()); | 1109 EXPECT_EQ("15,10", point.ToString()); |
| 1116 | 1110 |
| 1117 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 1111 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 1118 } | 1112 } |
| 1119 | 1113 |
| 1120 TEST_F(DisplayControllerTest, Rotate) { | 1114 TEST_F(DisplayControllerTest, Rotate) { |
| 1121 if (!SupportsMultipleDisplays()) | 1115 if (!SupportsMultipleDisplays()) |
| 1122 return; | 1116 return; |
| 1123 | 1117 |
| 1124 internal::DisplayManager* display_manager = | 1118 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 1125 Shell::GetInstance()->display_manager(); | |
| 1126 TestEventHandler event_handler; | 1119 TestEventHandler event_handler; |
| 1127 Shell::GetInstance()->AddPreTargetHandler(&event_handler); | 1120 Shell::GetInstance()->AddPreTargetHandler(&event_handler); |
| 1128 | 1121 |
| 1129 UpdateDisplay("120x200,300x400*2"); | 1122 UpdateDisplay("120x200,300x400*2"); |
| 1130 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); | 1123 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); |
| 1131 int64 display2_id = ScreenUtil::GetSecondaryDisplay().id(); | 1124 int64 display2_id = ScreenUtil::GetSecondaryDisplay().id(); |
| 1132 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); | 1125 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); |
| 1133 aura::test::EventGenerator generator1(root_windows[0]); | 1126 aura::test::EventGenerator generator1(root_windows[0]); |
| 1134 | 1127 |
| 1135 EXPECT_EQ("120x200", root_windows[0]->bounds().size().ToString()); | 1128 EXPECT_EQ("120x200", root_windows[0]->bounds().size().ToString()); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 EXPECT_EQ("0,0 450x300", display1.bounds().ToString()); | 1198 EXPECT_EQ("0,0 450x300", display1.bounds().ToString()); |
| 1206 EXPECT_EQ("0,0 450x300", root_windows[0]->bounds().ToString()); | 1199 EXPECT_EQ("0,0 450x300", root_windows[0]->bounds().ToString()); |
| 1207 EXPECT_EQ("450,0 500x300", display2.bounds().ToString()); | 1200 EXPECT_EQ("450,0 500x300", display2.bounds().ToString()); |
| 1208 EXPECT_EQ(1.5f, GetStoredUIScale(display1.id())); | 1201 EXPECT_EQ(1.5f, GetStoredUIScale(display1.id())); |
| 1209 EXPECT_EQ(1.0f, GetStoredUIScale(display2.id())); | 1202 EXPECT_EQ(1.0f, GetStoredUIScale(display2.id())); |
| 1210 | 1203 |
| 1211 aura::test::EventGenerator generator(root_windows[0]); | 1204 aura::test::EventGenerator generator(root_windows[0]); |
| 1212 generator.MoveMouseToInHost(599, 200); | 1205 generator.MoveMouseToInHost(599, 200); |
| 1213 EXPECT_EQ("449,150", event_handler.GetLocationAndReset()); | 1206 EXPECT_EQ("449,150", event_handler.GetLocationAndReset()); |
| 1214 | 1207 |
| 1215 internal::DisplayManager* display_manager = | 1208 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 1216 Shell::GetInstance()->display_manager(); | |
| 1217 display_manager->SetDisplayUIScale(display1.id(), 1.25f); | 1209 display_manager->SetDisplayUIScale(display1.id(), 1.25f); |
| 1218 display1 = Shell::GetScreen()->GetPrimaryDisplay(); | 1210 display1 = Shell::GetScreen()->GetPrimaryDisplay(); |
| 1219 display2 = ScreenUtil::GetSecondaryDisplay(); | 1211 display2 = ScreenUtil::GetSecondaryDisplay(); |
| 1220 EXPECT_EQ("0,0 375x250", display1.bounds().ToString()); | 1212 EXPECT_EQ("0,0 375x250", display1.bounds().ToString()); |
| 1221 EXPECT_EQ("0,0 375x250", root_windows[0]->bounds().ToString()); | 1213 EXPECT_EQ("0,0 375x250", root_windows[0]->bounds().ToString()); |
| 1222 EXPECT_EQ("375,0 500x300", display2.bounds().ToString()); | 1214 EXPECT_EQ("375,0 500x300", display2.bounds().ToString()); |
| 1223 EXPECT_EQ(1.25f, GetStoredUIScale(display1.id())); | 1215 EXPECT_EQ(1.25f, GetStoredUIScale(display1.id())); |
| 1224 EXPECT_EQ(1.0f, GetStoredUIScale(display2.id())); | 1216 EXPECT_EQ(1.0f, GetStoredUIScale(display2.id())); |
| 1225 | 1217 |
| 1226 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 1218 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1313 generator.MoveMouseToInHost(599, 399); | 1305 generator.MoveMouseToInHost(599, 399); |
| 1314 EXPECT_EQ("0,449", event_handler.GetLocationAndReset()); | 1306 EXPECT_EQ("0,449", event_handler.GetLocationAndReset()); |
| 1315 generator.MoveMouseToInHost(0, 399); | 1307 generator.MoveMouseToInHost(0, 399); |
| 1316 EXPECT_EQ("0,0", event_handler.GetLocationAndReset()); | 1308 EXPECT_EQ("0,0", event_handler.GetLocationAndReset()); |
| 1317 | 1309 |
| 1318 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 1310 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 1319 } | 1311 } |
| 1320 | 1312 |
| 1321 namespace { | 1313 namespace { |
| 1322 | 1314 |
| 1323 internal::DisplayInfo CreateDisplayInfo(int64 id, | 1315 DisplayInfo CreateDisplayInfo(int64 id, |
| 1324 int y, | 1316 int y, |
| 1325 gfx::Display::Rotation rotation) { | 1317 gfx::Display::Rotation rotation) { |
| 1326 internal::DisplayInfo info(id, "", false); | 1318 DisplayInfo info(id, "", false); |
| 1327 info.SetBounds(gfx::Rect(0, y, 500, 500)); | 1319 info.SetBounds(gfx::Rect(0, y, 500, 500)); |
| 1328 info.set_rotation(rotation); | 1320 info.set_rotation(rotation); |
| 1329 return info; | 1321 return info; |
| 1330 } | 1322 } |
| 1331 | 1323 |
| 1332 } // namespace | 1324 } // namespace |
| 1333 | 1325 |
| 1334 // Make sure that the compositor based mirroring can switch | 1326 // Make sure that the compositor based mirroring can switch |
| 1335 // from/to dock mode. | 1327 // from/to dock mode. |
| 1336 TEST_F(DisplayControllerTest, DockToSingle) { | 1328 TEST_F(DisplayControllerTest, DockToSingle) { |
| 1337 if (!SupportsMultipleDisplays()) | 1329 if (!SupportsMultipleDisplays()) |
| 1338 return; | 1330 return; |
| 1339 | 1331 |
| 1340 internal::DisplayManager* display_manager = | 1332 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 1341 Shell::GetInstance()->display_manager(); | |
| 1342 | 1333 |
| 1343 const int64 internal_id = 1; | 1334 const int64 internal_id = 1; |
| 1344 | 1335 |
| 1345 const internal::DisplayInfo internal_display_info = | 1336 const DisplayInfo internal_display_info = |
| 1346 CreateDisplayInfo(internal_id, 0, gfx::Display::ROTATE_0); | 1337 CreateDisplayInfo(internal_id, 0, gfx::Display::ROTATE_0); |
| 1347 const internal::DisplayInfo external_display_info = | 1338 const DisplayInfo external_display_info = |
| 1348 CreateDisplayInfo(2, 1, gfx::Display::ROTATE_90); | 1339 CreateDisplayInfo(2, 1, gfx::Display::ROTATE_90); |
| 1349 | 1340 |
| 1350 std::vector<internal::DisplayInfo> display_info_list; | 1341 std::vector<DisplayInfo> display_info_list; |
| 1351 // Extended | 1342 // Extended |
| 1352 display_info_list.push_back(internal_display_info); | 1343 display_info_list.push_back(internal_display_info); |
| 1353 display_info_list.push_back(external_display_info); | 1344 display_info_list.push_back(external_display_info); |
| 1354 display_manager->OnNativeDisplaysChanged(display_info_list); | 1345 display_manager->OnNativeDisplaysChanged(display_info_list); |
| 1355 const int64 internal_display_id = | 1346 const int64 internal_display_id = |
| 1356 test::DisplayManagerTestApi(display_manager). | 1347 test::DisplayManagerTestApi(display_manager). |
| 1357 SetFirstDisplayAsInternalDisplay(); | 1348 SetFirstDisplayAsInternalDisplay(); |
| 1358 EXPECT_EQ(internal_id, internal_display_id); | 1349 EXPECT_EQ(internal_id, internal_display_id); |
| 1359 EXPECT_EQ(2U, display_manager->GetNumDisplays()); | 1350 EXPECT_EQ(2U, display_manager->GetNumDisplays()); |
| 1360 | 1351 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1395 EXPECT_EQ("aura_root_x", GetXWindowName(secondary->GetHost())); | 1386 EXPECT_EQ("aura_root_x", GetXWindowName(secondary->GetHost())); |
| 1396 | 1387 |
| 1397 // Switching back to single display. | 1388 // Switching back to single display. |
| 1398 UpdateDisplay("300x400"); | 1389 UpdateDisplay("300x400"); |
| 1399 EXPECT_EQ("aura_root_0", GetXWindowName( | 1390 EXPECT_EQ("aura_root_0", GetXWindowName( |
| 1400 Shell::GetPrimaryRootWindow()->GetHost())); | 1391 Shell::GetPrimaryRootWindow()->GetHost())); |
| 1401 } | 1392 } |
| 1402 #endif | 1393 #endif |
| 1403 | 1394 |
| 1404 } // namespace ash | 1395 } // namespace ash |
| OLD | NEW |