Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: ash/display/extended_mouse_warp_controller_unittest.cc

Issue 1631023002: Fix moving the mouse between two displays after the secondary display becomes primary. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Rename UpdateDisplaysTo to UpdateDisplaysWith Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/display/extended_mouse_warp_controller.cc ('k') | ash/display/window_tree_host_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 UpdateDisplay("360x360,700x700"); 42 UpdateDisplay("360x360,700x700");
43 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 43 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
44 44
45 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 45 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
46 DisplayLayout layout(DisplayLayout::RIGHT, 0); 46 DisplayLayout layout(DisplayLayout::RIGHT, 0);
47 display_manager->SetLayoutForCurrentDisplays(layout); 47 display_manager->SetLayoutForCurrentDisplays(layout);
48 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 48 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
49 49
50 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 50 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
51 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), 51 EXPECT_EQ(gfx::Rect(359, 16, 1, 344),
52 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 52 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
53 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), 53 EXPECT_EQ(gfx::Rect(360, 0, 1, 360),
54 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 54 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
55 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 55 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
56 EXPECT_EQ(gfx::Rect(360, 16, 1, 344), 56 EXPECT_EQ(gfx::Rect(360, 16, 1, 344),
57 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 57 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
58 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), 58 EXPECT_EQ(gfx::Rect(359, 0, 1, 360),
59 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 59 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
60 60
61 // Move 2nd display downwards a bit. 61 // Move 2nd display downwards a bit.
62 layout.offset = 5; 62 layout.offset = 5;
63 display_manager->SetLayoutForCurrentDisplays(layout); 63 display_manager->SetLayoutForCurrentDisplays(layout);
64 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 64 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
65 // This is same as before because the 2nd display's y is above 65 // This is same as before because the 2nd display's y is above
66 // the indicator's x. 66 // the indicator's x.
67 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 67 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
68 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), 68 EXPECT_EQ(gfx::Rect(359, 16, 1, 344),
69 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 69 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
70 EXPECT_EQ(gfx::Rect(360, 5, 1, 355), 70 EXPECT_EQ(gfx::Rect(360, 5, 1, 355),
71 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 71 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
72 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 72 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
73 EXPECT_EQ(gfx::Rect(360, 21, 1, 339), 73 EXPECT_EQ(gfx::Rect(360, 21, 1, 339),
74 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 74 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
75 EXPECT_EQ(gfx::Rect(359, 5, 1, 355), 75 EXPECT_EQ(gfx::Rect(359, 5, 1, 355),
76 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 76 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
77 77
78 // Move it down further so that the shared edge is shorter than 78 // Move it down further so that the shared edge is shorter than
79 // minimum hole size (160). 79 // minimum hole size (160).
80 layout.offset = 200; 80 layout.offset = 200;
81 display_manager->SetLayoutForCurrentDisplays(layout); 81 display_manager->SetLayoutForCurrentDisplays(layout);
82 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 82 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
83 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 83 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
84 EXPECT_EQ(gfx::Rect(359, 200, 1, 160), 84 EXPECT_EQ(gfx::Rect(359, 200, 1, 160),
85 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 85 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
86 EXPECT_EQ(gfx::Rect(360, 200, 1, 160), 86 EXPECT_EQ(gfx::Rect(360, 200, 1, 160),
87 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 87 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
88 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 88 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
89 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 89 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
90 EXPECT_EQ(gfx::Rect(360, 200, 1, 160), 90 EXPECT_EQ(gfx::Rect(360, 200, 1, 160),
91 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 91 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
92 EXPECT_EQ(gfx::Rect(359, 200, 1, 160), 92 EXPECT_EQ(gfx::Rect(359, 200, 1, 160),
93 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 93 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
94 94
95 // Now move 2nd display upwards 95 // Now move 2nd display upwards
96 layout.offset = -5; 96 layout.offset = -5;
97 display_manager->SetLayoutForCurrentDisplays(layout); 97 display_manager->SetLayoutForCurrentDisplays(layout);
98 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 98 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
99 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 99 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
100 EXPECT_EQ(gfx::Rect(359, 16, 1, 344), 100 EXPECT_EQ(gfx::Rect(359, 16, 1, 344),
101 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 101 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
102 EXPECT_EQ(gfx::Rect(360, 0, 1, 360), 102 EXPECT_EQ(gfx::Rect(360, 0, 1, 360),
103 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 103 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
104 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 104 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
105 // 16 px are reserved on 2nd display from top, so y must be 105 // 16 px are reserved on 2nd display from top, so y must be
106 // (16 - 5) = 11 106 // (16 - 5) = 11
107 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 107 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
108 EXPECT_EQ(gfx::Rect(360, 11, 1, 349), 108 EXPECT_EQ(gfx::Rect(360, 11, 1, 349),
109 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 109 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
110 EXPECT_EQ(gfx::Rect(359, 0, 1, 360), 110 EXPECT_EQ(gfx::Rect(359, 0, 1, 360),
111 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 111 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
112 112
113 event_filter()->HideSharedEdgeIndicator(); 113 event_filter()->HideSharedEdgeIndicator();
114 } 114 }
115 115
116 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnLeft) { 116 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnLeft) {
117 if (!SupportsMultipleDisplays()) 117 if (!SupportsMultipleDisplays())
118 return; 118 return;
119 119
120 UpdateDisplay("360x360,700x700"); 120 UpdateDisplay("360x360,700x700");
121 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 121 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
122 122
123 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 123 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
124 DisplayLayout layout(DisplayLayout::LEFT, 0); 124 DisplayLayout layout(DisplayLayout::LEFT, 0);
125 display_manager->SetLayoutForCurrentDisplays(layout); 125 display_manager->SetLayoutForCurrentDisplays(layout);
126 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 126 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
127 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 127 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
128 EXPECT_EQ(gfx::Rect(0, 16, 1, 344), 128 EXPECT_EQ(gfx::Rect(0, 16, 1, 344),
129 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 129 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
130 EXPECT_EQ(gfx::Rect(-1, 0, 1, 360), 130 EXPECT_EQ(gfx::Rect(-1, 0, 1, 360),
131 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 131 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
132 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 132 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
133 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 133 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
134 EXPECT_EQ(gfx::Rect(-1, 16, 1, 344), 134 EXPECT_EQ(gfx::Rect(-1, 16, 1, 344),
135 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 135 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
136 EXPECT_EQ(gfx::Rect(0, 0, 1, 360), 136 EXPECT_EQ(gfx::Rect(0, 0, 1, 360),
137 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 137 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
138 138
139 layout.offset = 250; 139 layout.offset = 250;
140 display_manager->SetLayoutForCurrentDisplays(layout); 140 display_manager->SetLayoutForCurrentDisplays(layout);
141 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 141 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
142 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 142 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
143 EXPECT_EQ(gfx::Rect(0, 250, 1, 110), 143 EXPECT_EQ(gfx::Rect(0, 250, 1, 110),
144 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 144 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
145 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110), 145 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110),
146 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 146 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
147 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 147 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
148 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 148 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
149 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110), 149 EXPECT_EQ(gfx::Rect(-1, 250, 1, 110),
150 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 150 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
151 EXPECT_EQ(gfx::Rect(0, 250, 1, 110), 151 EXPECT_EQ(gfx::Rect(0, 250, 1, 110),
152 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 152 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
153 event_filter()->HideSharedEdgeIndicator(); 153 event_filter()->HideSharedEdgeIndicator();
154 } 154 }
155 155
156 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnTopBottom) { 156 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnTopBottom) {
157 if (!SupportsMultipleDisplays()) 157 if (!SupportsMultipleDisplays())
158 return; 158 return;
159 159
160 UpdateDisplay("360x360,700x700"); 160 UpdateDisplay("360x360,700x700");
161 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 161 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
162 162
163 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 163 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
164 DisplayLayout layout(DisplayLayout::TOP, 0); 164 DisplayLayout layout(DisplayLayout::TOP, 0);
165 display_manager->SetLayoutForCurrentDisplays(layout); 165 display_manager->SetLayoutForCurrentDisplays(layout);
166 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 166 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
167 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 167 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
168 EXPECT_EQ(gfx::Rect(0, 0, 360, 1), 168 EXPECT_EQ(gfx::Rect(0, 0, 360, 1),
169 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 169 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
170 EXPECT_EQ(gfx::Rect(0, -1, 360, 1), 170 EXPECT_EQ(gfx::Rect(0, -1, 360, 1),
171 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 171 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
172 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 172 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
173 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 173 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
174 EXPECT_EQ(gfx::Rect(0, -1, 360, 1), 174 EXPECT_EQ(gfx::Rect(0, -1, 360, 1),
175 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 175 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
176 EXPECT_EQ(gfx::Rect(0, 0, 360, 1), 176 EXPECT_EQ(gfx::Rect(0, 0, 360, 1),
177 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 177 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
178 178
179 layout.offset = 250; 179 layout.offset = 250;
180 display_manager->SetLayoutForCurrentDisplays(layout); 180 display_manager->SetLayoutForCurrentDisplays(layout);
181 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 181 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
182 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 182 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
183 EXPECT_EQ(gfx::Rect(250, 0, 110, 1), 183 EXPECT_EQ(gfx::Rect(250, 0, 110, 1),
184 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 184 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
185 EXPECT_EQ(gfx::Rect(250, -1, 110, 1), 185 EXPECT_EQ(gfx::Rect(250, -1, 110, 1),
186 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 186 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
187 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 187 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
188 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 188 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
189 EXPECT_EQ(gfx::Rect(250, -1, 110, 1), 189 EXPECT_EQ(gfx::Rect(250, -1, 110, 1),
190 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 190 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
191 EXPECT_EQ(gfx::Rect(250, 0, 110, 1), 191 EXPECT_EQ(gfx::Rect(250, 0, 110, 1),
192 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 192 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
193 193
194 layout.position = DisplayLayout::BOTTOM; 194 layout.position = DisplayLayout::BOTTOM;
195 layout.offset = 0; 195 layout.offset = 0;
196 display_manager->SetLayoutForCurrentDisplays(layout); 196 display_manager->SetLayoutForCurrentDisplays(layout);
197 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 197 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
198 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 198 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
199 EXPECT_EQ(gfx::Rect(0, 359, 360, 1), 199 EXPECT_EQ(gfx::Rect(0, 359, 360, 1),
200 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 200 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
201 EXPECT_EQ(gfx::Rect(0, 360, 360, 1), 201 EXPECT_EQ(gfx::Rect(0, 360, 360, 1),
202 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds); 202 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds());
203 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 203 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
204 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size()); 204 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
205 EXPECT_EQ(gfx::Rect(0, 360, 360, 1), 205 EXPECT_EQ(gfx::Rect(0, 360, 360, 1),
206 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds); 206 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds());
207 EXPECT_EQ(gfx::Rect(0, 359, 360, 1), 207 EXPECT_EQ(gfx::Rect(0, 359, 360, 1),
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
OLDNEW
« no previous file with comments | « ash/display/extended_mouse_warp_controller.cc ('k') | ash/display/window_tree_host_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698