OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/mirror_window_controller.h" | 5 #include "ash/display/mirror_window_controller.h" |
6 | 6 |
7 #include "ash/display/window_tree_host_manager.h" | 7 #include "ash/display/window_tree_host_manager.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "ash/test/ash_test_base.h" | 9 #include "ash/test/ash_test_base.h" |
10 #include "ash/test/cursor_manager_test_api.h" | 10 #include "ash/test/cursor_manager_test_api.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 EXPECT_TRUE(test_api.GetCursorWindow()); | 70 EXPECT_TRUE(test_api.GetCursorWindow()); |
71 EXPECT_EQ("50,50 100x100", window->bounds().ToString()); | 71 EXPECT_EQ("50,50 100x100", window->bounds().ToString()); |
72 | 72 |
73 ui::test::EventGenerator generator(root); | 73 ui::test::EventGenerator generator(root); |
74 generator.MoveMouseTo(10, 10); | 74 generator.MoveMouseTo(10, 10); |
75 | 75 |
76 // Test if cursor movement is propertly reflected in mirror window. | 76 // Test if cursor movement is propertly reflected in mirror window. |
77 EXPECT_EQ("4,4", test_api.GetCursorHotPoint().ToString()); | 77 EXPECT_EQ("4,4", test_api.GetCursorHotPoint().ToString()); |
78 EXPECT_EQ("10,10", | 78 EXPECT_EQ("10,10", |
79 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 79 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
80 EXPECT_EQ(ui::kCursorNull, test_api.GetCurrentCursorType()); | 80 EXPECT_EQ(ui::CursorType::kNull, test_api.GetCurrentCursorType()); |
81 EXPECT_TRUE(test_api.GetCursorWindow()->IsVisible()); | 81 EXPECT_TRUE(test_api.GetCursorWindow()->IsVisible()); |
82 | 82 |
83 // Test if cursor type change is propertly reflected in mirror window. | 83 // Test if cursor type change is propertly reflected in mirror window. |
84 generator.MoveMouseTo(100, 100); | 84 generator.MoveMouseTo(100, 100); |
85 EXPECT_EQ("100,100", | 85 EXPECT_EQ("100,100", |
86 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 86 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
87 EXPECT_EQ(ui::kCursorNorthResize, test_api.GetCurrentCursorType()); | 87 EXPECT_EQ(ui::CursorType::kNorthResize, test_api.GetCurrentCursorType()); |
88 | 88 |
89 // Test if visibility change is propertly reflected in mirror window. | 89 // Test if visibility change is propertly reflected in mirror window. |
90 // A key event hides cursor. | 90 // A key event hides cursor. |
91 generator.PressKey(ui::VKEY_A, 0); | 91 generator.PressKey(ui::VKEY_A, 0); |
92 generator.ReleaseKey(ui::VKEY_A, 0); | 92 generator.ReleaseKey(ui::VKEY_A, 0); |
93 EXPECT_FALSE(test_api.GetCursorWindow()->IsVisible()); | 93 EXPECT_FALSE(test_api.GetCursorWindow()->IsVisible()); |
94 | 94 |
95 // Mouse event makes it visible again. | 95 // Mouse event makes it visible again. |
96 generator.MoveMouseTo(300, 300); | 96 generator.MoveMouseTo(300, 300); |
97 EXPECT_EQ("300,300", | 97 EXPECT_EQ("300,300", |
98 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 98 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
99 EXPECT_EQ(ui::kCursorNull, test_api.GetCurrentCursorType()); | 99 EXPECT_EQ(ui::CursorType::kNull, test_api.GetCurrentCursorType()); |
100 EXPECT_TRUE(test_api.GetCursorWindow()->IsVisible()); | 100 EXPECT_TRUE(test_api.GetCursorWindow()->IsVisible()); |
101 } | 101 } |
102 | 102 |
103 TEST_F(MirrorWindowControllerTest, MirrorCursorRotate) { | 103 TEST_F(MirrorWindowControllerTest, MirrorCursorRotate) { |
104 test::MirrorWindowTestApi test_api; | 104 test::MirrorWindowTestApi test_api; |
105 aura::test::TestWindowDelegate test_window_delegate; | 105 aura::test::TestWindowDelegate test_window_delegate; |
106 test_window_delegate.set_window_component(HTTOP); | 106 test_window_delegate.set_window_component(HTTOP); |
107 | 107 |
108 display_manager()->SetMultiDisplayMode(display::DisplayManager::MIRRORING); | 108 display_manager()->SetMultiDisplayMode(display::DisplayManager::MIRRORING); |
109 UpdateDisplay("400x400,400x400"); | 109 UpdateDisplay("400x400,400x400"); |
110 aura::Window* root = Shell::Get()->GetPrimaryRootWindow(); | 110 aura::Window* root = Shell::Get()->GetPrimaryRootWindow(); |
111 std::unique_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate( | 111 std::unique_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate( |
112 &test_window_delegate, 0, gfx::Rect(50, 50, 100, 100), root)); | 112 &test_window_delegate, 0, gfx::Rect(50, 50, 100, 100), root)); |
113 window->Show(); | 113 window->Show(); |
114 window->SetName("foo"); | 114 window->SetName("foo"); |
115 | 115 |
116 EXPECT_TRUE(test_api.GetCursorWindow()); | 116 EXPECT_TRUE(test_api.GetCursorWindow()); |
117 EXPECT_EQ("50,50 100x100", window->bounds().ToString()); | 117 EXPECT_EQ("50,50 100x100", window->bounds().ToString()); |
118 | 118 |
119 ui::test::EventGenerator generator(root); | 119 ui::test::EventGenerator generator(root); |
120 generator.MoveMouseToInHost(100, 100); | 120 generator.MoveMouseToInHost(100, 100); |
121 | 121 |
122 // Test if cursor movement is propertly reflected in mirror window. | 122 // Test if cursor movement is propertly reflected in mirror window. |
123 EXPECT_EQ("11,12", test_api.GetCursorHotPoint().ToString()); | 123 EXPECT_EQ("11,12", test_api.GetCursorHotPoint().ToString()); |
124 EXPECT_EQ("100,100", | 124 EXPECT_EQ("100,100", |
125 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 125 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
126 EXPECT_EQ(ui::kCursorNorthResize, test_api.GetCurrentCursorType()); | 126 EXPECT_EQ(ui::CursorType::kNorthResize, test_api.GetCurrentCursorType()); |
127 | 127 |
128 UpdateDisplay("400x400/r,400x400"); // 90 degrees. | 128 UpdateDisplay("400x400/r,400x400"); // 90 degrees. |
129 generator.MoveMouseToInHost(300, 100); | 129 generator.MoveMouseToInHost(300, 100); |
130 EXPECT_EQ(ui::kCursorNorthResize, test_api.GetCurrentCursorType()); | 130 EXPECT_EQ(ui::CursorType::kNorthResize, test_api.GetCurrentCursorType()); |
131 // The size of cursor image is 25x25, so the rotated hot point must | 131 // The size of cursor image is 25x25, so the rotated hot point must |
132 // be (25-12, 11). | 132 // be (25-12, 11). |
133 EXPECT_EQ("13,11", test_api.GetCursorHotPoint().ToString()); | 133 EXPECT_EQ("13,11", test_api.GetCursorHotPoint().ToString()); |
134 EXPECT_EQ("300,100", | 134 EXPECT_EQ("300,100", |
135 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 135 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
136 | 136 |
137 UpdateDisplay("400x400/u,400x400"); // 180 degrees. | 137 UpdateDisplay("400x400/u,400x400"); // 180 degrees. |
138 generator.MoveMouseToInHost(300, 300); | 138 generator.MoveMouseToInHost(300, 300); |
139 EXPECT_EQ(ui::kCursorNorthResize, test_api.GetCurrentCursorType()); | 139 EXPECT_EQ(ui::CursorType::kNorthResize, test_api.GetCurrentCursorType()); |
140 // Rotated hot point must be (25-11, 25-12). | 140 // Rotated hot point must be (25-11, 25-12). |
141 EXPECT_EQ("14,13", test_api.GetCursorHotPoint().ToString()); | 141 EXPECT_EQ("14,13", test_api.GetCursorHotPoint().ToString()); |
142 EXPECT_EQ("300,300", | 142 EXPECT_EQ("300,300", |
143 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 143 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
144 | 144 |
145 UpdateDisplay("400x400/l,400x400"); // 270 degrees. | 145 UpdateDisplay("400x400/l,400x400"); // 270 degrees. |
146 generator.MoveMouseToInHost(100, 300); | 146 generator.MoveMouseToInHost(100, 300); |
147 EXPECT_EQ(ui::kCursorNorthResize, test_api.GetCurrentCursorType()); | 147 EXPECT_EQ(ui::CursorType::kNorthResize, test_api.GetCurrentCursorType()); |
148 // Rotated hot point must be (12, 25-11). | 148 // Rotated hot point must be (12, 25-11). |
149 EXPECT_EQ("12,14", test_api.GetCursorHotPoint().ToString()); | 149 EXPECT_EQ("12,14", test_api.GetCursorHotPoint().ToString()); |
150 EXPECT_EQ("100,300", | 150 EXPECT_EQ("100,300", |
151 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 151 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
152 } | 152 } |
153 | 153 |
154 // Make sure that the mirror cursor's location is same as | 154 // Make sure that the mirror cursor's location is same as |
155 // the source display's host location in the mirror root window's | 155 // the source display's host location in the mirror root window's |
156 // coordinates. | 156 // coordinates. |
157 TEST_F(MirrorWindowControllerTest, MirrorCursorLocations) { | 157 TEST_F(MirrorWindowControllerTest, MirrorCursorLocations) { |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 // because the cursor's previous position is out of bounds. | 218 // because the cursor's previous position is out of bounds. |
219 // Check real cursor's position and properties. | 219 // Check real cursor's position and properties. |
220 EXPECT_EQ("100,100", env->last_mouse_location().ToString()); | 220 EXPECT_EQ("100,100", env->last_mouse_location().ToString()); |
221 EXPECT_EQ(2.0f, cursor_test_api.GetCurrentCursor().device_scale_factor()); | 221 EXPECT_EQ(2.0f, cursor_test_api.GetCurrentCursor().device_scale_factor()); |
222 EXPECT_EQ(display::Display::ROTATE_90, | 222 EXPECT_EQ(display::Display::ROTATE_90, |
223 cursor_test_api.GetCurrentCursorRotation()); | 223 cursor_test_api.GetCurrentCursorRotation()); |
224 | 224 |
225 // Check mirrored cursor's location. | 225 // Check mirrored cursor's location. |
226 test::MirrorWindowTestApi test_api; | 226 test::MirrorWindowTestApi test_api; |
227 // The hot point location depends on the specific cursor. | 227 // The hot point location depends on the specific cursor. |
228 EXPECT_EQ(ui::kCursorNull, test_api.GetCurrentCursorType()); | 228 EXPECT_EQ(ui::CursorType::kNull, test_api.GetCurrentCursorType()); |
229 // Rotated hot point must be (25-7, 7). | 229 // Rotated hot point must be (25-7, 7). |
230 EXPECT_EQ("18,7", test_api.GetCursorHotPoint().ToString()); | 230 EXPECT_EQ("18,7", test_api.GetCursorHotPoint().ToString()); |
231 // New coordinates are not (200,200) because (200,200) is not the center of | 231 // New coordinates are not (200,200) because (200,200) is not the center of |
232 // the display. | 232 // the display. |
233 EXPECT_EQ("199,200", | 233 EXPECT_EQ("199,200", |
234 test_api.GetCursorHotPointLocationInRootWindow().ToString()); | 234 test_api.GetCursorHotPointLocationInRootWindow().ToString()); |
235 } | 235 } |
236 | 236 |
237 // Make sure that the compositor based mirroring can switch | 237 // Make sure that the compositor based mirroring can switch |
238 // from/to dock mode. | 238 // from/to dock mode. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 } | 281 } |
282 | 282 |
283 TEST_F(MirrorOnBootTest, MirrorOnBoot) { | 283 TEST_F(MirrorOnBootTest, MirrorOnBoot) { |
284 EXPECT_TRUE(display_manager()->IsInMirrorMode()); | 284 EXPECT_TRUE(display_manager()->IsInMirrorMode()); |
285 RunAllPendingInMessageLoop(); | 285 RunAllPendingInMessageLoop(); |
286 test::MirrorWindowTestApi test_api; | 286 test::MirrorWindowTestApi test_api; |
287 EXPECT_TRUE(test_api.GetHost()); | 287 EXPECT_TRUE(test_api.GetHost()); |
288 } | 288 } |
289 | 289 |
290 } // namespace ash | 290 } // namespace ash |
OLD | NEW |