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

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

Issue 1601383002: Support moving the cursor and dragging windows to 3+ displays. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Fix windows build warnings, change method placement in cc file, remove/add comments 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
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 28 matching lines...) Expand all
39 if (!SupportsMultipleDisplays()) 39 if (!SupportsMultipleDisplays())
40 return; 40 return;
41 41
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 EXPECT_EQ("359,16 1x344", 49
50 mouse_warp_controller()->src_indicator_bounds_.ToString()); 50 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
51 EXPECT_EQ("360,0 1x360", 51 EXPECT_EQ(
52 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 52 "359,16 1x344",
53 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
54 EXPECT_EQ(
55 "360,0 1x360",
56 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
53 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 57 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
54 EXPECT_EQ("360,16 1x344", 58 EXPECT_EQ(
55 mouse_warp_controller()->src_indicator_bounds_.ToString()); 59 "360,16 1x344",
56 EXPECT_EQ("359,0 1x360", 60 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
57 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 61 EXPECT_EQ(
62 "359,0 1x360",
63 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
58 64
59 // Move 2nd display downwards a bit. 65 // Move 2nd display downwards a bit.
60 layout.offset = 5; 66 layout.offset = 5;
61 display_manager->SetLayoutForCurrentDisplays(layout); 67 display_manager->SetLayoutForCurrentDisplays(layout);
62 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 68 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
63 // This is same as before because the 2nd display's y is above 69 // This is same as before because the 2nd display's y is above
64 // the indicator's x. 70 // the indicator's x.
65 EXPECT_EQ("359,16 1x344", 71 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
66 mouse_warp_controller()->src_indicator_bounds_.ToString()); 72 EXPECT_EQ(
67 EXPECT_EQ("360,5 1x355", 73 "359,16 1x344",
68 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 74 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
75 EXPECT_EQ(
76 "360,5 1x355",
77 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
69 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 78 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
70 EXPECT_EQ("360,21 1x339", 79 EXPECT_EQ(
71 mouse_warp_controller()->src_indicator_bounds_.ToString()); 80 "360,21 1x339",
72 EXPECT_EQ("359,5 1x355", 81 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
73 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 82 EXPECT_EQ(
83 "359,5 1x355",
84 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
74 85
75 // Move it down further so that the shared edge is shorter than 86 // Move it down further so that the shared edge is shorter than
76 // minimum hole size (160). 87 // minimum hole size (160).
77 layout.offset = 200; 88 layout.offset = 200;
78 display_manager->SetLayoutForCurrentDisplays(layout); 89 display_manager->SetLayoutForCurrentDisplays(layout);
79 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 90 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
80 EXPECT_EQ("359,200 1x160", 91 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
81 mouse_warp_controller()->src_indicator_bounds_.ToString()); 92 EXPECT_EQ(
82 EXPECT_EQ("360,200 1x160", 93 "359,200 1x160",
83 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 94 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
95 EXPECT_EQ(
96 "360,200 1x160",
97 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
84 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 98 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
85 EXPECT_EQ("360,200 1x160", 99 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
86 mouse_warp_controller()->src_indicator_bounds_.ToString()); 100 EXPECT_EQ(
87 EXPECT_EQ("359,200 1x160", 101 "360,200 1x160",
88 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 102 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
103 EXPECT_EQ(
104 "359,200 1x160",
105 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
89 106
90 // Now move 2nd display upwards 107 // Now move 2nd display upwards
91 layout.offset = -5; 108 layout.offset = -5;
92 display_manager->SetLayoutForCurrentDisplays(layout); 109 display_manager->SetLayoutForCurrentDisplays(layout);
93 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 110 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
94 EXPECT_EQ("359,16 1x344", 111 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
95 mouse_warp_controller()->src_indicator_bounds_.ToString()); 112 EXPECT_EQ(
96 EXPECT_EQ("360,0 1x360", 113 "359,16 1x344",
97 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 114 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
115 EXPECT_EQ(
116 "360,0 1x360",
117 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
98 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 118 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
99 // 16 px are reserved on 2nd display from top, so y must be 119 // 16 px are reserved on 2nd display from top, so y must be
100 // (16 - 5) = 11 120 // (16 - 5) = 11
101 EXPECT_EQ("360,11 1x349", 121 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
102 mouse_warp_controller()->src_indicator_bounds_.ToString()); 122 EXPECT_EQ(
103 EXPECT_EQ("359,0 1x360", 123 "360,11 1x349",
104 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 124 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
125 EXPECT_EQ(
126 "359,0 1x360",
127 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
105 128
106 event_filter()->HideSharedEdgeIndicator(); 129 event_filter()->HideSharedEdgeIndicator();
107 } 130 }
108 131
109 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnLeft) { 132 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnLeft) {
110 if (!SupportsMultipleDisplays()) 133 if (!SupportsMultipleDisplays())
111 return; 134 return;
112 135
113 UpdateDisplay("360x360,700x700"); 136 UpdateDisplay("360x360,700x700");
114 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 137 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
115 138
116 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 139 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
117 DisplayLayout layout(DisplayLayout::LEFT, 0); 140 DisplayLayout layout(DisplayLayout::LEFT, 0);
118 display_manager->SetLayoutForCurrentDisplays(layout); 141 display_manager->SetLayoutForCurrentDisplays(layout);
119 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 142 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
120 EXPECT_EQ("0,16 1x344", 143 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
121 mouse_warp_controller()->src_indicator_bounds_.ToString()); 144 EXPECT_EQ(
122 EXPECT_EQ("-1,0 1x360", 145 "0,16 1x344",
123 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 146 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
147 EXPECT_EQ(
148 "-1,0 1x360",
149 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
124 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 150 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
125 EXPECT_EQ("-1,16 1x344", 151 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
126 mouse_warp_controller()->src_indicator_bounds_.ToString()); 152 EXPECT_EQ(
127 EXPECT_EQ("0,0 1x360", 153 "-1,16 1x344",
128 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 154 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
155 EXPECT_EQ(
156 "0,0 1x360",
157 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
129 158
130 layout.offset = 250; 159 layout.offset = 250;
131 display_manager->SetLayoutForCurrentDisplays(layout); 160 display_manager->SetLayoutForCurrentDisplays(layout);
132 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 161 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
133 EXPECT_EQ("0,250 1x110", 162 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
134 mouse_warp_controller()->src_indicator_bounds_.ToString()); 163 EXPECT_EQ(
135 EXPECT_EQ("-1,250 1x110", 164 "0,250 1x110",
136 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 165 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
166 EXPECT_EQ(
167 "-1,250 1x110",
168 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
137 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 169 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
138 EXPECT_EQ("-1,250 1x110", 170 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
139 mouse_warp_controller()->src_indicator_bounds_.ToString()); 171 EXPECT_EQ(
140 EXPECT_EQ("0,250 1x110", 172 "-1,250 1x110",
141 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 173 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
174 EXPECT_EQ(
175 "0,250 1x110",
176 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
142 event_filter()->HideSharedEdgeIndicator(); 177 event_filter()->HideSharedEdgeIndicator();
143 } 178 }
144 179
145 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnTopBottom) { 180 TEST_F(ExtendedMouseWarpControllerTest, IndicatorBoundsTestOnTopBottom) {
146 if (!SupportsMultipleDisplays()) 181 if (!SupportsMultipleDisplays())
147 return; 182 return;
148 183
149 UpdateDisplay("360x360,700x700"); 184 UpdateDisplay("360x360,700x700");
150 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 185 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
151 186
152 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 187 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
153 DisplayLayout layout(DisplayLayout::TOP, 0); 188 DisplayLayout layout(DisplayLayout::TOP, 0);
154 display_manager->SetLayoutForCurrentDisplays(layout); 189 display_manager->SetLayoutForCurrentDisplays(layout);
155 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 190 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
156 EXPECT_EQ("0,0 360x1", 191 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
157 mouse_warp_controller()->src_indicator_bounds_.ToString()); 192 EXPECT_EQ(
158 EXPECT_EQ("0,-1 360x1", 193 "0,0 360x1",
159 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 194 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
195 EXPECT_EQ(
196 "0,-1 360x1",
197 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
160 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 198 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
161 EXPECT_EQ("0,-1 360x1", 199 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
162 mouse_warp_controller()->src_indicator_bounds_.ToString()); 200 EXPECT_EQ(
163 EXPECT_EQ("0,0 360x1", 201 "0,-1 360x1",
164 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 202 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
203 EXPECT_EQ(
204 "0,0 360x1",
205 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
165 206
166 layout.offset = 250; 207 layout.offset = 250;
167 display_manager->SetLayoutForCurrentDisplays(layout); 208 display_manager->SetLayoutForCurrentDisplays(layout);
168 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 209 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
169 EXPECT_EQ("250,0 110x1", 210 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
170 mouse_warp_controller()->src_indicator_bounds_.ToString()); 211 EXPECT_EQ(
171 EXPECT_EQ("250,-1 110x1", 212 "250,0 110x1",
172 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 213 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
214 EXPECT_EQ(
215 "250,-1 110x1",
216 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
173 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 217 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
174 EXPECT_EQ("250,-1 110x1", 218 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
175 mouse_warp_controller()->src_indicator_bounds_.ToString()); 219 EXPECT_EQ(
176 EXPECT_EQ("250,0 110x1", 220 "250,-1 110x1",
177 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 221 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
222 EXPECT_EQ(
223 "250,0 110x1",
224 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
178 225
179 layout.position = DisplayLayout::BOTTOM; 226 layout.position = DisplayLayout::BOTTOM;
180 layout.offset = 0; 227 layout.offset = 0;
181 display_manager->SetLayoutForCurrentDisplays(layout); 228 display_manager->SetLayoutForCurrentDisplays(layout);
182 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */); 229 event_filter()->ShowSharedEdgeIndicator(root_windows[0] /* primary */);
183 EXPECT_EQ("0,359 360x1", 230 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
184 mouse_warp_controller()->src_indicator_bounds_.ToString()); 231 EXPECT_EQ(
185 EXPECT_EQ("0,360 360x1", 232 "0,359 360x1",
186 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 233 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
234 EXPECT_EQ(
235 "0,360 360x1",
236 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
187 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */); 237 event_filter()->ShowSharedEdgeIndicator(root_windows[1] /* secondary */);
188 EXPECT_EQ("0,360 360x1", 238 ASSERT_EQ(1U, mouse_warp_controller()->warp_regions_.size());
189 mouse_warp_controller()->src_indicator_bounds_.ToString()); 239 EXPECT_EQ(
190 EXPECT_EQ("0,359 360x1", 240 "0,360 360x1",
191 mouse_warp_controller()->dst_indicator_bounds_.ToString()); 241 mouse_warp_controller()->warp_regions_[0]->a_indicator_bounds.ToString());
242 EXPECT_EQ(
243 "0,359 360x1",
244 mouse_warp_controller()->warp_regions_[0]->b_indicator_bounds.ToString());
192 245
193 event_filter()->HideSharedEdgeIndicator(); 246 event_filter()->HideSharedEdgeIndicator();
194 } 247 }
195 248
196 } // namespace ash 249 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698