| 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_ash.h" | 8 #include "ash/screen_ash.h" |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/test/ash_test_base.h" | 10 #include "ash/test/ash_test_base.h" |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 80 |
| 81 private: | 81 private: |
| 82 DISALLOW_COPY_AND_ASSIGN(ScreenPositionControllerTest); | 82 DISALLOW_COPY_AND_ASSIGN(ScreenPositionControllerTest); |
| 83 }; | 83 }; |
| 84 | 84 |
| 85 } // namespace | 85 } // namespace |
| 86 | 86 |
| 87 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreen) { | 87 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreen) { |
| 88 UpdateDisplay("100+100-200x200,100+500-200x200"); | 88 UpdateDisplay("100+100-200x200,100+500-200x200"); |
| 89 | 89 |
| 90 Shell::RootWindowList root_windows = | 90 aura::Window::Windows root_windows = |
| 91 Shell::GetInstance()->GetAllRootWindows(); | 91 Shell::GetInstance()->GetAllRootWindows(); |
| 92 EXPECT_EQ("100,100", root_windows[0]->GetHostOrigin().ToString()); | 92 EXPECT_EQ("100,100", |
| 93 EXPECT_EQ("200x200", root_windows[0]->GetHostSize().ToString()); | 93 root_windows[0]->GetDispatcher()->GetHostOrigin().ToString()); |
| 94 EXPECT_EQ("100,500", root_windows[1]->GetHostOrigin().ToString()); | 94 EXPECT_EQ("200x200", |
| 95 EXPECT_EQ("200x200", root_windows[1]->GetHostSize().ToString()); | 95 root_windows[0]->GetDispatcher()->GetHostSize().ToString()); |
| 96 EXPECT_EQ("100,500", |
| 97 root_windows[1]->GetDispatcher()->GetHostOrigin().ToString()); |
| 98 EXPECT_EQ("200x200", |
| 99 root_windows[1]->GetDispatcher()->GetHostSize().ToString()); |
| 96 | 100 |
| 97 const gfx::Point window_pos(100, 100); | 101 const gfx::Point window_pos(100, 100); |
| 98 window_->SetBoundsInScreen( | 102 window_->SetBoundsInScreen( |
| 99 gfx::Rect(window_pos, gfx::Size(100, 100)), | 103 gfx::Rect(window_pos, gfx::Size(100, 100)), |
| 100 Shell::GetScreen()->GetDisplayNearestPoint(window_pos)); | 104 Shell::GetScreen()->GetDisplayNearestPoint(window_pos)); |
| 101 SetSecondaryDisplayLayout(DisplayLayout::RIGHT); | 105 SetSecondaryDisplayLayout(DisplayLayout::RIGHT); |
| 102 // The point is on the primary root window. | 106 // The point is on the primary root window. |
| 103 EXPECT_EQ("50,50", ConvertHostPointToScreen(50, 50)); | 107 EXPECT_EQ("50,50", ConvertHostPointToScreen(50, 50)); |
| 104 // The point is out of the all root windows. | 108 // The point is out of the all root windows. |
| 105 EXPECT_EQ("250,250", ConvertHostPointToScreen(250, 250)); | 109 EXPECT_EQ("250,250", ConvertHostPointToScreen(250, 250)); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 EXPECT_EQ("50,-150", ConvertHostPointToScreen(50, 50)); | 168 EXPECT_EQ("50,-150", ConvertHostPointToScreen(50, 50)); |
| 165 // The point is out of the all root windows. | 169 // The point is out of the all root windows. |
| 166 EXPECT_EQ("250,50", ConvertHostPointToScreen(250, 250)); | 170 EXPECT_EQ("250,50", ConvertHostPointToScreen(250, 250)); |
| 167 // The point is on the primary root window. | 171 // The point is on the primary root window. |
| 168 EXPECT_EQ("50,0", ConvertHostPointToScreen(50, -400)); | 172 EXPECT_EQ("50,0", ConvertHostPointToScreen(50, -400)); |
| 169 } | 173 } |
| 170 | 174 |
| 171 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenHiDPI) { | 175 TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenHiDPI) { |
| 172 UpdateDisplay("100+100-200x200*2,100+500-200x200"); | 176 UpdateDisplay("100+100-200x200*2,100+500-200x200"); |
| 173 | 177 |
| 174 Shell::RootWindowList root_windows = | 178 aura::Window::Windows root_windows = |
| 175 Shell::GetInstance()->GetAllRootWindows(); | 179 Shell::GetInstance()->GetAllRootWindows(); |
| 176 EXPECT_EQ("100,100", root_windows[0]->GetHostOrigin().ToString()); | 180 EXPECT_EQ("100,100", |
| 177 EXPECT_EQ("200x200", root_windows[0]->GetHostSize().ToString()); | 181 root_windows[0]->GetDispatcher()->GetHostOrigin().ToString()); |
| 178 EXPECT_EQ("100,500", root_windows[1]->GetHostOrigin().ToString()); | 182 EXPECT_EQ("200x200", |
| 179 EXPECT_EQ("200x200", root_windows[1]->GetHostSize().ToString()); | 183 root_windows[0]->GetDispatcher()->GetHostSize().ToString()); |
| 184 EXPECT_EQ("100,500", |
| 185 root_windows[1]->GetDispatcher()->GetHostOrigin().ToString()); |
| 186 EXPECT_EQ("200x200", |
| 187 root_windows[1]->GetDispatcher()->GetHostSize().ToString()); |
| 180 | 188 |
| 181 // Put |window_| to the primary 2x display. | 189 // Put |window_| to the primary 2x display. |
| 182 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), | 190 window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), |
| 183 Shell::GetScreen()->GetPrimaryDisplay()); | 191 Shell::GetScreen()->GetPrimaryDisplay()); |
| 184 // (30, 30) means the host coordinate, so the point is still on the primary | 192 // (30, 30) means the host coordinate, so the point is still on the primary |
| 185 // root window. Since it's 2x, the specified native point was halved. | 193 // root window. Since it's 2x, the specified native point was halved. |
| 186 EXPECT_EQ("15,15", ConvertHostPointToScreen(30, 30)); | 194 EXPECT_EQ("15,15", ConvertHostPointToScreen(30, 30)); |
| 187 // Similar to above but the point is out of the all root windows. | 195 // Similar to above but the point is out of the all root windows. |
| 188 EXPECT_EQ("200,200", ConvertHostPointToScreen(400, 400)); | 196 EXPECT_EQ("200,200", ConvertHostPointToScreen(400, 400)); |
| 189 // Similar to above but the point is on the secondary display. | 197 // Similar to above but the point is on the secondary display. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 212 EXPECT_EQ("70,149", ConvertHostPointToScreen(50, 70)); | 220 EXPECT_EQ("70,149", ConvertHostPointToScreen(50, 70)); |
| 213 // The point is out of the host windows. | 221 // The point is out of the host windows. |
| 214 EXPECT_EQ("250,-51", ConvertHostPointToScreen(250, 250)); | 222 EXPECT_EQ("250,-51", ConvertHostPointToScreen(250, 250)); |
| 215 // The point is on the 2nd host. Point on 2nd host (30,150) - | 223 // The point is on the 2nd host. Point on 2nd host (30,150) - |
| 216 // rotate 270 clockwise -> (149, 30) - layout [+(200,0)] -> (349,30). | 224 // rotate 270 clockwise -> (149, 30) - layout [+(200,0)] -> (349,30). |
| 217 EXPECT_EQ("349,30", ConvertHostPointToScreen(30, 450)); | 225 EXPECT_EQ("349,30", ConvertHostPointToScreen(30, 450)); |
| 218 | 226 |
| 219 // Move |window_| to the 2nd. | 227 // Move |window_| to the 2nd. |
| 220 window_->SetBoundsInScreen(gfx::Rect(300, 20, 50, 50), | 228 window_->SetBoundsInScreen(gfx::Rect(300, 20, 50, 50), |
| 221 ScreenAsh::GetSecondaryDisplay()); | 229 ScreenAsh::GetSecondaryDisplay()); |
| 222 Shell::RootWindowList root_windows = | 230 aura::Window::Windows root_windows = |
| 223 Shell::GetInstance()->GetAllRootWindows(); | 231 Shell::GetInstance()->GetAllRootWindows(); |
| 224 EXPECT_EQ(root_windows[1], window_->GetRootWindow()); | 232 EXPECT_EQ(root_windows[1], window_->GetRootWindow()); |
| 225 | 233 |
| 226 // The point is on the 2nd host. (50,70) on 2n host - | 234 // The point is on the 2nd host. (50,70) on 2n host - |
| 227 // roatate 270 clockwise -> (129,50) -layout [+(200,0)] -> (329,50) | 235 // roatate 270 clockwise -> (129,50) -layout [+(200,0)] -> (329,50) |
| 228 EXPECT_EQ("329,50", ConvertHostPointToScreen(50, 70)); | 236 EXPECT_EQ("329,50", ConvertHostPointToScreen(50, 70)); |
| 229 // The point is out of the host windows. | 237 // The point is out of the host windows. |
| 230 EXPECT_EQ("449,50", ConvertHostPointToScreen(50, -50)); | 238 EXPECT_EQ("449,50", ConvertHostPointToScreen(50, -50)); |
| 231 // The point is on the 2nd host. Point on 2nd host (50,50) - | 239 // The point is on the 2nd host. Point on 2nd host (50,50) - |
| 232 // rotate 90 clockwise -> (50, 149) | 240 // rotate 90 clockwise -> (50, 149) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 244 EXPECT_EQ("45,45", ConvertHostPointToScreen(60, 60)); | 252 EXPECT_EQ("45,45", ConvertHostPointToScreen(60, 60)); |
| 245 // The point is out of the host windows. | 253 // The point is out of the host windows. |
| 246 EXPECT_EQ("45,225", ConvertHostPointToScreen(60, 300)); | 254 EXPECT_EQ("45,225", ConvertHostPointToScreen(60, 300)); |
| 247 // The point is on the 2nd host. Point on 2nd host (60,150) - | 255 // The point is on the 2nd host. Point on 2nd host (60,150) - |
| 248 // - screen [+(150,0)] | 256 // - screen [+(150,0)] |
| 249 EXPECT_EQ("210,49", ConvertHostPointToScreen(60, 450)); | 257 EXPECT_EQ("210,49", ConvertHostPointToScreen(60, 450)); |
| 250 | 258 |
| 251 // Move |window_| to the 2nd. | 259 // Move |window_| to the 2nd. |
| 252 window_->SetBoundsInScreen(gfx::Rect(300, 20, 50, 50), | 260 window_->SetBoundsInScreen(gfx::Rect(300, 20, 50, 50), |
| 253 ScreenAsh::GetSecondaryDisplay()); | 261 ScreenAsh::GetSecondaryDisplay()); |
| 254 Shell::RootWindowList root_windows = | 262 aura::Window::Windows root_windows = |
| 255 Shell::GetInstance()->GetAllRootWindows(); | 263 Shell::GetInstance()->GetAllRootWindows(); |
| 256 EXPECT_EQ(root_windows[1], window_->GetRootWindow()); | 264 EXPECT_EQ(root_windows[1], window_->GetRootWindow()); |
| 257 | 265 |
| 258 // The point is on the 2nd host. (50,70) - ro | 266 // The point is on the 2nd host. (50,70) - ro |
| 259 EXPECT_EQ("210,70", ConvertHostPointToScreen(60, 70)); | 267 EXPECT_EQ("210,70", ConvertHostPointToScreen(60, 70)); |
| 260 // The point is out of the host windows. | 268 // The point is out of the host windows. |
| 261 EXPECT_EQ("210,-50", ConvertHostPointToScreen(60, -50)); | 269 EXPECT_EQ("210,-50", ConvertHostPointToScreen(60, -50)); |
| 262 // The point is on the 2nd host. Point on 1nd host (60, 60) | 270 // The point is on the 2nd host. Point on 1nd host (60, 60) |
| 263 // 1/2 * 1.5 = (45,45) | 271 // 1/2 * 1.5 = (45,45) |
| 264 EXPECT_EQ("45,45", ConvertHostPointToScreen(60, -340)); | 272 EXPECT_EQ("45,45", ConvertHostPointToScreen(60, -340)); |
| 265 } | 273 } |
| 266 | 274 |
| 267 } // namespace test | 275 } // namespace test |
| 268 } // namespace ash | 276 } // namespace ash |
| OLD | NEW |