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 "ash/display/extended_mouse_warp_controller.h" | 5 #include "ash/display/extended_mouse_warp_controller.h" |
6 | 6 |
7 #include "ash/display/display_layout_store.h" | 7 #include "ash/display/display_layout_store.h" |
8 #include "ash/display/display_manager.h" | 8 #include "ash/display/display_manager.h" |
9 #include "ash/display/mouse_cursor_event_filter.h" | 9 #include "ash/display/mouse_cursor_event_filter.h" |
10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); | 208 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); |
209 | 209 |
210 event_filter()->HideSharedEdgeIndicator(); | 210 event_filter()->HideSharedEdgeIndicator(); |
211 } | 211 } |
212 | 212 |
213 // Verify indicators show up as expected with 3+ displays. | 213 // Verify indicators show up as expected with 3+ displays. |
214 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestThreeDisplays) { | 214 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestThreeDisplays) { |
215 if (!SupportsMultipleDisplays()) | 215 if (!SupportsMultipleDisplays()) |
216 return; | 216 return; |
217 | 217 |
| 218 auto run_test = [this] { |
| 219 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); |
| 220 |
| 221 // Left most display |
| 222 event_filter()->ShowSharedEdgeIndicator(root_windows[0]); |
| 223 ASSERT_EQ(2U, mouse_warp_controller()->warp_regions_.size()); |
| 224 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), |
| 225 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); |
| 226 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), |
| 227 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); |
| 228 EXPECT_EQ(gfx::Rect(1060, 16, 1, 684), |
| 229 mouse_warp_controller()->warp_regions_[1]->a_indicator_bounds); |
| 230 EXPECT_EQ(gfx::Rect(1059, 0, 1, 700), |
| 231 mouse_warp_controller()->warp_regions_[1]->b_indicator_bounds); |
| 232 |
| 233 // Middle display |
| 234 event_filter()->ShowSharedEdgeIndicator(root_windows[1]); |
| 235 ASSERT_EQ(2U, mouse_warp_controller()->warp_regions_.size()); |
| 236 EXPECT_EQ(gfx::Rect(360, 16, 1, 344), |
| 237 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); |
| 238 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), |
| 239 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); |
| 240 EXPECT_EQ(gfx::Rect(1059, 16, 1, 684), |
| 241 mouse_warp_controller()->warp_regions_[1]->a_indicator_bounds); |
| 242 EXPECT_EQ(gfx::Rect(1060, 0, 1, 700), |
| 243 mouse_warp_controller()->warp_regions_[1]->b_indicator_bounds); |
| 244 |
| 245 // Right most display |
| 246 event_filter()->ShowSharedEdgeIndicator(root_windows[2]); |
| 247 ASSERT_EQ(2U, mouse_warp_controller()->warp_regions_.size()); |
| 248 EXPECT_EQ(gfx::Rect(360, 16, 1, 344), |
| 249 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); |
| 250 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), |
| 251 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); |
| 252 EXPECT_EQ(gfx::Rect(1060, 16, 1, 684), |
| 253 mouse_warp_controller()->warp_regions_[1]->a_indicator_bounds); |
| 254 EXPECT_EQ(gfx::Rect(1059, 0, 1, 700), |
| 255 mouse_warp_controller()->warp_regions_[1]->b_indicator_bounds); |
| 256 |
| 257 event_filter()->HideSharedEdgeIndicator(); |
| 258 }; |
| 259 |
218 UpdateDisplay("360x360,700x700,1000x1000"); | 260 UpdateDisplay("360x360,700x700,1000x1000"); |
219 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); | 261 run_test(); |
220 | 262 |
221 // Left most display | 263 UpdateDisplay("360x360,700x700,1000x1000"); |
222 event_filter()->ShowSharedEdgeIndicator(root_windows[0]); | 264 Shell::GetInstance()->window_tree_host_manager()->SwapPrimaryDisplayForTest(); |
223 ASSERT_EQ(2U, mouse_warp_controller()->warp_regions_.size()); | 265 run_test(); |
224 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), | |
225 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); | |
226 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), | |
227 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); | |
228 EXPECT_EQ(gfx::Rect(1060, 16, 1, 684), | |
229 mouse_warp_controller()->warp_regions_[1]->a_indicator_bounds); | |
230 EXPECT_EQ(gfx::Rect(1059, 0, 1, 700), | |
231 mouse_warp_controller()->warp_regions_[1]->b_indicator_bounds); | |
232 | |
233 // Middle display | |
234 event_filter()->ShowSharedEdgeIndicator(root_windows[1]); | |
235 ASSERT_EQ(2U, mouse_warp_controller()->warp_regions_.size()); | |
236 EXPECT_EQ(gfx::Rect(360, 16, 1, 344), | |
237 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); | |
238 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), | |
239 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); | |
240 EXPECT_EQ(gfx::Rect(1059, 16, 1, 684), | |
241 mouse_warp_controller()->warp_regions_[1]->a_indicator_bounds); | |
242 EXPECT_EQ(gfx::Rect(1060, 0, 1, 700), | |
243 mouse_warp_controller()->warp_regions_[1]->b_indicator_bounds); | |
244 | |
245 // Right most display | |
246 event_filter()->ShowSharedEdgeIndicator(root_windows[2]); | |
247 ASSERT_EQ(2U, mouse_warp_controller()->warp_regions_.size()); | |
248 EXPECT_EQ(gfx::Rect(360, 16, 1, 344), | |
249 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); | |
250 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), | |
251 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); | |
252 EXPECT_EQ(gfx::Rect(1060, 16, 1, 684), | |
253 mouse_warp_controller()->warp_regions_[1]->a_indicator_bounds); | |
254 EXPECT_EQ(gfx::Rect(1059, 0, 1, 700), | |
255 mouse_warp_controller()->warp_regions_[1]->b_indicator_bounds); | |
256 | |
257 event_filter()->HideSharedEdgeIndicator(); | |
258 } | 266 } |
259 | 267 |
260 } // namespace ash | 268 } // namespace ash |
OLD | NEW |