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/screen_position_controller.h" | 5 #include "ash/display/screen_position_controller.h" |
6 | 6 |
7 #include "ash/display/display_manager.h" | 7 #include "ash/display/display_manager.h" |
8 #include "ash/screen_util.h" | 8 #include "ash/screen_util.h" |
9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
10 #include "ash/shell_window_ids.h" | 10 #include "ash/shell_window_ids.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 EXPECT_EQ("200x200", | 107 EXPECT_EQ("200x200", |
108 root_windows[0]->GetHost()->GetBounds().size().ToString()); | 108 root_windows[0]->GetHost()->GetBounds().size().ToString()); |
109 EXPECT_EQ("100,500", | 109 EXPECT_EQ("100,500", |
110 root_windows[1]->GetHost()->GetBounds().origin().ToString()); | 110 root_windows[1]->GetHost()->GetBounds().origin().ToString()); |
111 EXPECT_EQ("200x200", | 111 EXPECT_EQ("200x200", |
112 root_windows[1]->GetHost()->GetBounds().size().ToString()); | 112 root_windows[1]->GetHost()->GetBounds().size().ToString()); |
113 | 113 |
114 const gfx::Point window_pos(100, 100); | 114 const gfx::Point window_pos(100, 100); |
115 window_->SetBoundsInScreen( | 115 window_->SetBoundsInScreen( |
116 gfx::Rect(window_pos, gfx::Size(100, 100)), | 116 gfx::Rect(window_pos, gfx::Size(100, 100)), |
117 Shell::GetScreen()->GetDisplayNearestPoint(window_pos)); | 117 gfx::Screen::GetScreen()->GetDisplayNearestPoint(window_pos)); |
118 SetSecondaryDisplayLayout(DisplayLayout::RIGHT); | 118 SetSecondaryDisplayLayout(DisplayLayout::RIGHT); |
119 // The point is on the primary root window. | 119 // The point is on the primary root window. |
120 EXPECT_EQ("50,50", ConvertHostPointToScreen(50, 50)); | 120 EXPECT_EQ("50,50", ConvertHostPointToScreen(50, 50)); |
121 // The point is out of the all root windows. | 121 // The point is out of the all root windows. |
122 EXPECT_EQ("250,250", ConvertHostPointToScreen(250, 250)); | 122 EXPECT_EQ("250,250", ConvertHostPointToScreen(250, 250)); |
123 // The point is on the secondary display. | 123 // The point is on the secondary display. |
124 EXPECT_EQ("250,0", ConvertHostPointToScreen(50, 400)); | 124 EXPECT_EQ("250,0", ConvertHostPointToScreen(50, 400)); |
125 | 125 |
126 SetSecondaryDisplayLayout(DisplayLayout::BOTTOM); | 126 SetSecondaryDisplayLayout(DisplayLayout::BOTTOM); |
127 // The point is on the primary root window. | 127 // The point is on the primary root window. |
(...skipping 17 matching lines...) Expand all Loading... |
145 // The point is out of the all root windows. | 145 // The point is out of the all root windows. |
146 EXPECT_EQ("250,250", ConvertHostPointToScreen(250, 250)); | 146 EXPECT_EQ("250,250", ConvertHostPointToScreen(250, 250)); |
147 // The point is on the secondary display. | 147 // The point is on the secondary display. |
148 EXPECT_EQ("50,-200", ConvertHostPointToScreen(50, 400)); | 148 EXPECT_EQ("50,-200", ConvertHostPointToScreen(50, 400)); |
149 | 149 |
150 | 150 |
151 SetSecondaryDisplayLayout(DisplayLayout::RIGHT); | 151 SetSecondaryDisplayLayout(DisplayLayout::RIGHT); |
152 const gfx::Point window_pos2(300, 100); | 152 const gfx::Point window_pos2(300, 100); |
153 window_->SetBoundsInScreen( | 153 window_->SetBoundsInScreen( |
154 gfx::Rect(window_pos2, gfx::Size(100, 100)), | 154 gfx::Rect(window_pos2, gfx::Size(100, 100)), |
155 Shell::GetScreen()->GetDisplayNearestPoint(window_pos2)); | 155 gfx::Screen::GetScreen()->GetDisplayNearestPoint(window_pos2)); |
156 // The point is on the secondary display. | 156 // The point is on the secondary display. |
157 EXPECT_EQ("250,50", ConvertHostPointToScreen(50, 50)); | 157 EXPECT_EQ("250,50", ConvertHostPointToScreen(50, 50)); |
158 // The point is out of the all root windows. | 158 // The point is out of the all root windows. |
159 EXPECT_EQ("450,250", ConvertHostPointToScreen(250, 250)); | 159 EXPECT_EQ("450,250", ConvertHostPointToScreen(250, 250)); |
160 // The point is on the primary root window. | 160 // The point is on the primary root window. |
161 EXPECT_EQ("50,0", ConvertHostPointToScreen(50, -400)); | 161 EXPECT_EQ("50,0", ConvertHostPointToScreen(50, -400)); |
162 | 162 |
163 SetSecondaryDisplayLayout(DisplayLayout::BOTTOM); | 163 SetSecondaryDisplayLayout(DisplayLayout::BOTTOM); |
164 // The point is on the secondary display. | 164 // The point is on the secondary display. |
165 EXPECT_EQ("50,250", ConvertHostPointToScreen(50, 50)); | 165 EXPECT_EQ("50,250", ConvertHostPointToScreen(50, 50)); |
(...skipping 24 matching lines...) Expand all Loading... |
190 | 190 |
191 aura::Window::Windows root_windows = | 191 aura::Window::Windows root_windows = |
192 Shell::GetInstance()->GetAllRootWindows(); | 192 Shell::GetInstance()->GetAllRootWindows(); |
193 EXPECT_EQ("50,50 200x200", | 193 EXPECT_EQ("50,50 200x200", |
194 root_windows[0]->GetHost()->GetBounds().ToString()); | 194 root_windows[0]->GetHost()->GetBounds().ToString()); |
195 EXPECT_EQ("50,300 300x300", | 195 EXPECT_EQ("50,300 300x300", |
196 root_windows[1]->GetHost()->GetBounds().ToString()); | 196 root_windows[1]->GetHost()->GetBounds().ToString()); |
197 | 197 |
198 // Put |window_| to the primary 2x display. | 198 // Put |window_| to the primary 2x display. |
199 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), | 199 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), |
200 Shell::GetScreen()->GetPrimaryDisplay()); | 200 gfx::Screen::GetScreen()->GetPrimaryDisplay()); |
201 // (30, 30) means the host coordinate, so the point is still on the primary | 201 // (30, 30) means the host coordinate, so the point is still on the primary |
202 // root window. Since it's 2x, the specified native point was halved. | 202 // root window. Since it's 2x, the specified native point was halved. |
203 EXPECT_EQ("15,15", ConvertHostPointToScreen(30, 30)); | 203 EXPECT_EQ("15,15", ConvertHostPointToScreen(30, 30)); |
204 // Similar to above but the point is out of the all root windows. | 204 // Similar to above but the point is out of the all root windows. |
205 EXPECT_EQ("200,200", ConvertHostPointToScreen(400, 400)); | 205 EXPECT_EQ("200,200", ConvertHostPointToScreen(400, 400)); |
206 // Similar to above but the point is on the secondary display. | 206 // Similar to above but the point is on the secondary display. |
207 EXPECT_EQ("100,15", ConvertHostPointToScreen(200, 30)); | 207 EXPECT_EQ("100,15", ConvertHostPointToScreen(200, 30)); |
208 | 208 |
209 // On secondary display. The position on the 2nd host window is (150,200) | 209 // On secondary display. The position on the 2nd host window is (150,200) |
210 // so the screen position is (100,0) + (150,200). | 210 // so the screen position is (100,0) + (150,200). |
211 EXPECT_EQ("250,200", ConvertHostPointToScreen(150, 450)); | 211 EXPECT_EQ("250,200", ConvertHostPointToScreen(150, 450)); |
212 | 212 |
213 // At the edge but still in the primary display. Remaining of the primary | 213 // At the edge but still in the primary display. Remaining of the primary |
214 // display is (50, 50) but adding ~100 since it's 2x-display. | 214 // display is (50, 50) but adding ~100 since it's 2x-display. |
215 EXPECT_EQ("79,79", ConvertHostPointToScreen(158, 158)); | 215 EXPECT_EQ("79,79", ConvertHostPointToScreen(158, 158)); |
216 // At the edge of the secondary display. | 216 // At the edge of the secondary display. |
217 EXPECT_EQ("80,80", ConvertHostPointToScreen(160, 160)); | 217 EXPECT_EQ("80,80", ConvertHostPointToScreen(160, 160)); |
218 } | 218 } |
219 | 219 |
220 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenRotate) { | 220 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenRotate) { |
221 // 1st display is rotated 90 clockise, and 2nd display is rotated | 221 // 1st display is rotated 90 clockise, and 2nd display is rotated |
222 // 270 clockwise. | 222 // 270 clockwise. |
223 UpdateDisplay("100+100-200x200/r,100+500-200x200/l"); | 223 UpdateDisplay("100+100-200x200/r,100+500-200x200/l"); |
224 // Put |window_| to the 1st. | 224 // Put |window_| to the 1st. |
225 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), | 225 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), |
226 Shell::GetScreen()->GetPrimaryDisplay()); | 226 gfx::Screen::GetScreen()->GetPrimaryDisplay()); |
227 | 227 |
228 // The point is on the 1st host. | 228 // The point is on the 1st host. |
229 EXPECT_EQ("70,149", ConvertHostPointToScreen(50, 70)); | 229 EXPECT_EQ("70,149", ConvertHostPointToScreen(50, 70)); |
230 // The point is out of the host windows. | 230 // The point is out of the host windows. |
231 EXPECT_EQ("250,-51", ConvertHostPointToScreen(250, 250)); | 231 EXPECT_EQ("250,-51", ConvertHostPointToScreen(250, 250)); |
232 // The point is on the 2nd host. Point on 2nd host (30,150) - | 232 // The point is on the 2nd host. Point on 2nd host (30,150) - |
233 // rotate 270 clockwise -> (149, 30) - layout [+(200,0)] -> (349,30). | 233 // rotate 270 clockwise -> (149, 30) - layout [+(200,0)] -> (349,30). |
234 EXPECT_EQ("349,30", ConvertHostPointToScreen(30, 450)); | 234 EXPECT_EQ("349,30", ConvertHostPointToScreen(30, 450)); |
235 | 235 |
236 // Move |window_| to the 2nd. | 236 // Move |window_| to the 2nd. |
(...skipping 11 matching lines...) Expand all Loading... |
248 // The point is on the 2nd host. Point on 2nd host (50,50) - | 248 // The point is on the 2nd host. Point on 2nd host (50,50) - |
249 // rotate 90 clockwise -> (50, 149) | 249 // rotate 90 clockwise -> (50, 149) |
250 EXPECT_EQ("50,149", ConvertHostPointToScreen(50, -350)); | 250 EXPECT_EQ("50,149", ConvertHostPointToScreen(50, -350)); |
251 } | 251 } |
252 | 252 |
253 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenUIScale) { | 253 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenUIScale) { |
254 // 1st display is 2x density with 1.5 UI scale. | 254 // 1st display is 2x density with 1.5 UI scale. |
255 UpdateDisplay("100+100-200x200*2@1.5,100+500-200x200"); | 255 UpdateDisplay("100+100-200x200*2@1.5,100+500-200x200"); |
256 // Put |window_| to the 1st. | 256 // Put |window_| to the 1st. |
257 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), | 257 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), |
258 Shell::GetScreen()->GetPrimaryDisplay()); | 258 gfx::Screen::GetScreen()->GetPrimaryDisplay()); |
259 | 259 |
260 // The point is on the 1st host. | 260 // The point is on the 1st host. |
261 EXPECT_EQ("45,45", ConvertHostPointToScreen(60, 60)); | 261 EXPECT_EQ("45,45", ConvertHostPointToScreen(60, 60)); |
262 // The point is out of the host windows. | 262 // The point is out of the host windows. |
263 EXPECT_EQ("45,225", ConvertHostPointToScreen(60, 300)); | 263 EXPECT_EQ("45,225", ConvertHostPointToScreen(60, 300)); |
264 // The point is on the 2nd host. Point on 2nd host (60,150) - | 264 // The point is on the 2nd host. Point on 2nd host (60,150) - |
265 // - screen [+(150,0)] | 265 // - screen [+(150,0)] |
266 EXPECT_EQ("210,49", ConvertHostPointToScreen(60, 450)); | 266 EXPECT_EQ("210,49", ConvertHostPointToScreen(60, 450)); |
267 | 267 |
268 // Move |window_| to the 2nd. | 268 // Move |window_| to the 2nd. |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 // destroyed. | 354 // destroyed. |
355 EXPECT_FALSE(tracker.Contains(root_windows[1])); | 355 EXPECT_FALSE(tracker.Contains(root_windows[1])); |
356 | 356 |
357 // Check that we could convert all of the mouse events we got to screen | 357 // Check that we could convert all of the mouse events we got to screen |
358 // coordinates. | 358 // coordinates. |
359 EXPECT_TRUE(event_handler->could_convert_to_screen()); | 359 EXPECT_TRUE(event_handler->could_convert_to_screen()); |
360 } | 360 } |
361 | 361 |
362 } // namespace test | 362 } // namespace test |
363 } // namespace ash | 363 } // namespace ash |
OLD | NEW |