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/display_controller.h" | 5 #include "ash/display/display_controller.h" |
6 | 6 |
7 #include "ash/launcher/launcher.h" | 7 #include "ash/launcher/launcher.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 29 matching lines...) Expand all Loading... |
40 return c; | 40 return c; |
41 } | 41 } |
42 | 42 |
43 private: | 43 private: |
44 int count_; | 44 int count_; |
45 | 45 |
46 DISALLOW_COPY_AND_ASSIGN(TestObserver); | 46 DISALLOW_COPY_AND_ASSIGN(TestObserver); |
47 }; | 47 }; |
48 | 48 |
49 gfx::Display GetPrimaryDisplay() { | 49 gfx::Display GetPrimaryDisplay() { |
50 return gfx::Screen::GetDisplayNearestWindow( | 50 return Shell::GetAshScreen()->GetDisplayNearestWindow( |
51 Shell::GetAllRootWindows()[0]); | 51 Shell::GetAllRootWindows()[0]); |
52 } | 52 } |
53 | 53 |
54 gfx::Display GetSecondaryDisplay() { | 54 gfx::Display GetSecondaryDisplay() { |
55 return gfx::Screen::GetDisplayNearestWindow( | 55 return Shell::GetAshScreen()->GetDisplayNearestWindow( |
56 Shell::GetAllRootWindows()[1]); | 56 Shell::GetAllRootWindows()[1]); |
57 } | 57 } |
58 | 58 |
59 void SetSecondaryDisplayLayout(DisplayLayout::Position position) { | 59 void SetSecondaryDisplayLayout(DisplayLayout::Position position) { |
60 DisplayController* display_controller = | 60 DisplayController* display_controller = |
61 Shell::GetInstance()->display_controller(); | 61 Shell::GetInstance()->display_controller(); |
62 DisplayLayout layout = display_controller->default_display_layout(); | 62 DisplayLayout layout = display_controller->default_display_layout(); |
63 layout.position = position; | 63 layout.position = position; |
64 display_controller->SetDefaultDisplayLayout(layout); | 64 display_controller->SetDefaultDisplayLayout(layout); |
65 } | 65 } |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 | 139 |
140 UpdateDisplay("400x400,300x300"); | 140 UpdateDisplay("400x400,300x300"); |
141 EXPECT_EQ(1, observer.CountAndReset()); | 141 EXPECT_EQ(1, observer.CountAndReset()); |
142 EXPECT_EQ("0,0 400x400", GetPrimaryDisplay().bounds().ToString()); | 142 EXPECT_EQ("0,0 400x400", GetPrimaryDisplay().bounds().ToString()); |
143 EXPECT_EQ("0,400 300x300", GetSecondaryDisplay().bounds().ToString()); | 143 EXPECT_EQ("0,400 300x300", GetSecondaryDisplay().bounds().ToString()); |
144 EXPECT_EQ("5,405 290x290", GetSecondaryDisplay().work_area().ToString()); | 144 EXPECT_EQ("5,405 290x290", GetSecondaryDisplay().work_area().ToString()); |
145 | 145 |
146 UpdateDisplay("400x400"); | 146 UpdateDisplay("400x400"); |
147 EXPECT_EQ(1, observer.CountAndReset()); | 147 EXPECT_EQ(1, observer.CountAndReset()); |
148 EXPECT_EQ("0,0 400x400", GetPrimaryDisplay().bounds().ToString()); | 148 EXPECT_EQ("0,0 400x400", GetPrimaryDisplay().bounds().ToString()); |
149 EXPECT_EQ(1, gfx::Screen::GetNumDisplays()); | 149 EXPECT_EQ(1, Shell::GetAshScreen()->GetNumDisplays()); |
150 | 150 |
151 UpdateDisplay("500x500,700x700"); | 151 UpdateDisplay("500x500,700x700"); |
152 EXPECT_EQ(2, observer.CountAndReset()); | 152 EXPECT_EQ(2, observer.CountAndReset()); |
153 ASSERT_EQ(2, gfx::Screen::GetNumDisplays()); | 153 ASSERT_EQ(2, Shell::GetAshScreen()->GetNumDisplays()); |
154 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); | 154 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); |
155 EXPECT_EQ("0,500 700x700", GetSecondaryDisplay().bounds().ToString()); | 155 EXPECT_EQ("0,500 700x700", GetSecondaryDisplay().bounds().ToString()); |
156 } | 156 } |
157 | 157 |
158 TEST_F(DisplayControllerTest, InvertLayout) { | 158 TEST_F(DisplayControllerTest, InvertLayout) { |
159 EXPECT_EQ("left, 0", | 159 EXPECT_EQ("left, 0", |
160 DisplayLayout(DisplayLayout::RIGHT, 0).Invert().ToString()); | 160 DisplayLayout(DisplayLayout::RIGHT, 0).Invert().ToString()); |
161 EXPECT_EQ("left, -100", | 161 EXPECT_EQ("left, -100", |
162 DisplayLayout(DisplayLayout::RIGHT, 100).Invert().ToString()); | 162 DisplayLayout(DisplayLayout::RIGHT, 100).Invert().ToString()); |
163 EXPECT_EQ("left, 50", | 163 EXPECT_EQ("left, 50", |
(...skipping 19 matching lines...) Expand all Loading... |
183 DisplayLayout(DisplayLayout::BOTTOM, 70).Invert().ToString()); | 183 DisplayLayout(DisplayLayout::BOTTOM, 70).Invert().ToString()); |
184 EXPECT_EQ("top, 80", | 184 EXPECT_EQ("top, 80", |
185 DisplayLayout(DisplayLayout::BOTTOM, -80).Invert().ToString()); | 185 DisplayLayout(DisplayLayout::BOTTOM, -80).Invert().ToString()); |
186 } | 186 } |
187 | 187 |
188 TEST_F(DisplayControllerTest, SwapPrimary) { | 188 TEST_F(DisplayControllerTest, SwapPrimary) { |
189 DisplayController* display_controller = | 189 DisplayController* display_controller = |
190 Shell::GetInstance()->display_controller(); | 190 Shell::GetInstance()->display_controller(); |
191 | 191 |
192 UpdateDisplay("200x200,300x300"); | 192 UpdateDisplay("200x200,300x300"); |
193 gfx::Display primary_display = gfx::Screen::GetPrimaryDisplay(); | 193 gfx::Display primary_display = Shell::GetAshScreen()->GetPrimaryDisplay(); |
194 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); | 194 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); |
195 | 195 |
196 std::string secondary_name = aura::Env::GetInstance()-> | 196 std::string secondary_name = aura::Env::GetInstance()-> |
197 display_manager()->GetDisplayNameFor(secondary_display); | 197 display_manager()->GetDisplayNameFor(secondary_display); |
198 DisplayLayout secondary_layout(DisplayLayout::RIGHT, 50); | 198 DisplayLayout secondary_layout(DisplayLayout::RIGHT, 50); |
199 display_controller->SetLayoutForDisplayName(secondary_name, secondary_layout); | 199 display_controller->SetLayoutForDisplayName(secondary_name, secondary_layout); |
200 | 200 |
201 EXPECT_NE(primary_display.id(), secondary_display.id()); | 201 EXPECT_NE(primary_display.id(), secondary_display.id()); |
202 aura::RootWindow* primary_root = | 202 aura::RootWindow* primary_root = |
203 display_controller->GetRootWindowForDisplayId(primary_display.id()); | 203 display_controller->GetRootWindowForDisplayId(primary_display.id()); |
204 aura::RootWindow* secondary_root = | 204 aura::RootWindow* secondary_root = |
205 display_controller->GetRootWindowForDisplayId(secondary_display.id()); | 205 display_controller->GetRootWindowForDisplayId(secondary_display.id()); |
206 EXPECT_NE(primary_root, secondary_root); | 206 EXPECT_NE(primary_root, secondary_root); |
207 aura::Window* launcher_window = | 207 aura::Window* launcher_window = |
208 Shell::GetInstance()->launcher()->widget()->GetNativeView(); | 208 Shell::GetInstance()->launcher()->widget()->GetNativeView(); |
209 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 209 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
210 EXPECT_FALSE(secondary_root->Contains(launcher_window)); | 210 EXPECT_FALSE(secondary_root->Contains(launcher_window)); |
211 EXPECT_EQ(primary_display.id(), | 211 EXPECT_EQ(primary_display.id(), |
212 gfx::Screen::GetDisplayNearestPoint(gfx::Point(-100, -100)).id()); | 212 Shell::GetAshScreen()->GetDisplayNearestPoint( |
| 213 gfx::Point(-100, -100)).id()); |
213 EXPECT_EQ(primary_display.id(), | 214 EXPECT_EQ(primary_display.id(), |
214 gfx::Screen::GetDisplayNearestWindow(NULL).id()); | 215 Shell::GetAshScreen()->GetDisplayNearestWindow(NULL).id()); |
215 | 216 |
216 // Switch primary and secondary | 217 // Switch primary and secondary |
217 display_controller->SetPrimaryDisplay(secondary_display); | 218 display_controller->SetPrimaryDisplay(secondary_display); |
218 EXPECT_EQ(secondary_display.id(), gfx::Screen::GetPrimaryDisplay().id()); | 219 EXPECT_EQ(secondary_display.id(), |
| 220 Shell::GetAshScreen()->GetPrimaryDisplay().id()); |
219 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); | 221 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); |
220 EXPECT_EQ(secondary_display.id(), | 222 EXPECT_EQ(secondary_display.id(), |
221 gfx::Screen::GetDisplayNearestPoint(gfx::Point(-100, -100)).id()); | 223 Shell::GetAshScreen()->GetDisplayNearestPoint( |
| 224 gfx::Point(-100, -100)).id()); |
222 EXPECT_EQ(secondary_display.id(), | 225 EXPECT_EQ(secondary_display.id(), |
223 gfx::Screen::GetDisplayNearestWindow(NULL).id()); | 226 Shell::GetAshScreen()->GetDisplayNearestWindow(NULL).id()); |
224 | 227 |
225 EXPECT_EQ( | 228 EXPECT_EQ( |
226 primary_root, | 229 primary_root, |
227 display_controller->GetRootWindowForDisplayId(secondary_display.id())); | 230 display_controller->GetRootWindowForDisplayId(secondary_display.id())); |
228 EXPECT_EQ( | 231 EXPECT_EQ( |
229 secondary_root, | 232 secondary_root, |
230 display_controller->GetRootWindowForDisplayId(primary_display.id())); | 233 display_controller->GetRootWindowForDisplayId(primary_display.id())); |
231 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 234 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
232 EXPECT_FALSE(secondary_root->Contains(launcher_window)); | 235 EXPECT_FALSE(secondary_root->Contains(launcher_window)); |
233 | 236 |
234 const DisplayLayout& inverted_layout = | 237 const DisplayLayout& inverted_layout = |
235 display_controller->GetLayoutForDisplay(primary_display); | 238 display_controller->GetLayoutForDisplay(primary_display); |
236 | 239 |
237 EXPECT_EQ("left, -50", inverted_layout.ToString()); | 240 EXPECT_EQ("left, -50", inverted_layout.ToString()); |
238 | 241 |
239 aura::WindowTracker tracker; | 242 aura::WindowTracker tracker; |
240 tracker.Add(primary_root); | 243 tracker.Add(primary_root); |
241 tracker.Add(secondary_root); | 244 tracker.Add(secondary_root); |
242 | 245 |
243 // Deleting 2nd display should move the primary to original primary display. | 246 // Deleting 2nd display should move the primary to original primary display. |
244 UpdateDisplay("200x200"); | 247 UpdateDisplay("200x200"); |
245 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task. | 248 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task. |
246 EXPECT_EQ(1, gfx::Screen::GetNumDisplays()); | 249 EXPECT_EQ(1, Shell::GetAshScreen()->GetNumDisplays()); |
247 EXPECT_EQ(primary_display.id(), gfx::Screen::GetPrimaryDisplay().id()); | |
248 EXPECT_EQ(primary_display.id(), | 250 EXPECT_EQ(primary_display.id(), |
249 gfx::Screen::GetDisplayNearestPoint(gfx::Point(-100, -100)).id()); | 251 Shell::GetAshScreen()->GetPrimaryDisplay().id()); |
250 EXPECT_EQ(primary_display.id(), | 252 EXPECT_EQ(primary_display.id(), |
251 gfx::Screen::GetDisplayNearestWindow(NULL).id()); | 253 Shell::GetAshScreen()->GetDisplayNearestPoint( |
| 254 gfx::Point(-100, -100)).id()); |
| 255 EXPECT_EQ(primary_display.id(), |
| 256 Shell::GetAshScreen()->GetDisplayNearestWindow(NULL).id()); |
252 EXPECT_TRUE(tracker.Contains(primary_root)); | 257 EXPECT_TRUE(tracker.Contains(primary_root)); |
253 EXPECT_FALSE(tracker.Contains(secondary_root)); | 258 EXPECT_FALSE(tracker.Contains(secondary_root)); |
254 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 259 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
255 } | 260 } |
256 | 261 |
257 TEST_F(DisplayControllerTest, SwapPrimaryById) { | 262 TEST_F(DisplayControllerTest, SwapPrimaryById) { |
258 DisplayController* display_controller = | 263 DisplayController* display_controller = |
259 Shell::GetInstance()->display_controller(); | 264 Shell::GetInstance()->display_controller(); |
260 | 265 |
261 UpdateDisplay("200x200,300x300"); | 266 UpdateDisplay("200x200,300x300"); |
262 gfx::Display primary_display = gfx::Screen::GetPrimaryDisplay(); | 267 gfx::Display primary_display = Shell::GetAshScreen()->GetPrimaryDisplay(); |
263 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); | 268 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); |
264 | 269 |
265 std::string secondary_name = aura::Env::GetInstance()-> | 270 std::string secondary_name = aura::Env::GetInstance()-> |
266 display_manager()->GetDisplayNameFor(secondary_display); | 271 display_manager()->GetDisplayNameFor(secondary_display); |
267 DisplayLayout secondary_layout(DisplayLayout::RIGHT, 50); | 272 DisplayLayout secondary_layout(DisplayLayout::RIGHT, 50); |
268 display_controller->SetLayoutForDisplayName(secondary_name, secondary_layout); | 273 display_controller->SetLayoutForDisplayName(secondary_name, secondary_layout); |
269 | 274 |
270 EXPECT_NE(primary_display.id(), secondary_display.id()); | 275 EXPECT_NE(primary_display.id(), secondary_display.id()); |
271 aura::RootWindow* primary_root = | 276 aura::RootWindow* primary_root = |
272 display_controller->GetRootWindowForDisplayId(primary_display.id()); | 277 display_controller->GetRootWindowForDisplayId(primary_display.id()); |
273 aura::RootWindow* secondary_root = | 278 aura::RootWindow* secondary_root = |
274 display_controller->GetRootWindowForDisplayId(secondary_display.id()); | 279 display_controller->GetRootWindowForDisplayId(secondary_display.id()); |
275 aura::Window* launcher_window = | 280 aura::Window* launcher_window = |
276 Shell::GetInstance()->launcher()->widget()->GetNativeView(); | 281 Shell::GetInstance()->launcher()->widget()->GetNativeView(); |
277 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 282 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
278 EXPECT_FALSE(secondary_root->Contains(launcher_window)); | 283 EXPECT_FALSE(secondary_root->Contains(launcher_window)); |
279 EXPECT_NE(primary_root, secondary_root); | 284 EXPECT_NE(primary_root, secondary_root); |
280 EXPECT_EQ(primary_display.id(), | 285 EXPECT_EQ(primary_display.id(), |
281 gfx::Screen::GetDisplayNearestPoint(gfx::Point(-100, -100)).id()); | 286 Shell::GetAshScreen()->GetDisplayNearestPoint( |
| 287 gfx::Point(-100, -100)).id()); |
282 EXPECT_EQ(primary_display.id(), | 288 EXPECT_EQ(primary_display.id(), |
283 gfx::Screen::GetDisplayNearestWindow(NULL).id()); | 289 Shell::GetAshScreen()->GetDisplayNearestWindow(NULL).id()); |
284 | 290 |
285 // Switch primary and secondary by display ID. | 291 // Switch primary and secondary by display ID. |
286 TestObserver observer; | 292 TestObserver observer; |
287 display_controller->SetPrimaryDisplayId(secondary_display.id()); | 293 display_controller->SetPrimaryDisplayId(secondary_display.id()); |
288 EXPECT_EQ(secondary_display.id(), gfx::Screen::GetPrimaryDisplay().id()); | 294 EXPECT_EQ(secondary_display.id(), |
| 295 Shell::GetAshScreen()->GetPrimaryDisplay().id()); |
289 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); | 296 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); |
290 EXPECT_LT(0, observer.CountAndReset()); | 297 EXPECT_LT(0, observer.CountAndReset()); |
291 | 298 |
292 EXPECT_EQ( | 299 EXPECT_EQ( |
293 primary_root, | 300 primary_root, |
294 display_controller->GetRootWindowForDisplayId(secondary_display.id())); | 301 display_controller->GetRootWindowForDisplayId(secondary_display.id())); |
295 EXPECT_EQ( | 302 EXPECT_EQ( |
296 secondary_root, | 303 secondary_root, |
297 display_controller->GetRootWindowForDisplayId(primary_display.id())); | 304 display_controller->GetRootWindowForDisplayId(primary_display.id())); |
298 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 305 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
299 EXPECT_FALSE(secondary_root->Contains(launcher_window)); | 306 EXPECT_FALSE(secondary_root->Contains(launcher_window)); |
300 | 307 |
301 const DisplayLayout& inverted_layout = | 308 const DisplayLayout& inverted_layout = |
302 display_controller->GetLayoutForDisplay(primary_display); | 309 display_controller->GetLayoutForDisplay(primary_display); |
303 | 310 |
304 EXPECT_EQ("left, -50", inverted_layout.ToString()); | 311 EXPECT_EQ("left, -50", inverted_layout.ToString()); |
305 | 312 |
306 // Calling the same ID don't do anything. | 313 // Calling the same ID don't do anything. |
307 display_controller->SetPrimaryDisplayId(secondary_display.id()); | 314 display_controller->SetPrimaryDisplayId(secondary_display.id()); |
308 EXPECT_EQ(0, observer.CountAndReset()); | 315 EXPECT_EQ(0, observer.CountAndReset()); |
309 | 316 |
310 aura::WindowTracker tracker; | 317 aura::WindowTracker tracker; |
311 tracker.Add(primary_root); | 318 tracker.Add(primary_root); |
312 tracker.Add(secondary_root); | 319 tracker.Add(secondary_root); |
313 | 320 |
314 // Deleting 2nd display should move the primary to original primary display. | 321 // Deleting 2nd display should move the primary to original primary display. |
315 UpdateDisplay("200x200"); | 322 UpdateDisplay("200x200"); |
316 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task. | 323 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task. |
317 EXPECT_EQ(1, gfx::Screen::GetNumDisplays()); | 324 EXPECT_EQ(1, Shell::GetAshScreen()->GetNumDisplays()); |
318 EXPECT_EQ(primary_display.id(), gfx::Screen::GetPrimaryDisplay().id()); | |
319 EXPECT_EQ(primary_display.id(), | 325 EXPECT_EQ(primary_display.id(), |
320 gfx::Screen::GetDisplayNearestPoint(gfx::Point(-100, -100)).id()); | 326 Shell::GetAshScreen()->GetPrimaryDisplay().id()); |
321 EXPECT_EQ(primary_display.id(), | 327 EXPECT_EQ(primary_display.id(), |
322 gfx::Screen::GetDisplayNearestWindow(NULL).id()); | 328 Shell::GetAshScreen()->GetDisplayNearestPoint( |
| 329 gfx::Point(-100, -100)).id()); |
| 330 EXPECT_EQ(primary_display.id(), |
| 331 Shell::GetAshScreen()->GetDisplayNearestWindow(NULL).id()); |
323 EXPECT_TRUE(tracker.Contains(primary_root)); | 332 EXPECT_TRUE(tracker.Contains(primary_root)); |
324 EXPECT_FALSE(tracker.Contains(secondary_root)); | 333 EXPECT_FALSE(tracker.Contains(secondary_root)); |
325 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 334 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
326 | 335 |
327 // Adding 2nd display with the same ID. The 2nd display should become primary | 336 // Adding 2nd display with the same ID. The 2nd display should become primary |
328 // since secondary id is still stored as desirable_primary_id. | 337 // since secondary id is still stored as desirable_primary_id. |
329 std::vector<gfx::Display> displays; | 338 std::vector<gfx::Display> displays; |
330 displays.push_back(primary_display); | 339 displays.push_back(primary_display); |
331 displays.push_back(secondary_display); | 340 displays.push_back(secondary_display); |
332 aura::DisplayManager* display_manager = | 341 aura::DisplayManager* display_manager = |
333 aura::Env::GetInstance()->display_manager(); | 342 aura::Env::GetInstance()->display_manager(); |
334 display_manager->OnNativeDisplaysChanged(displays); | 343 display_manager->OnNativeDisplaysChanged(displays); |
335 | 344 |
336 EXPECT_EQ(2, gfx::Screen::GetNumDisplays()); | 345 EXPECT_EQ(2, Shell::GetAshScreen()->GetNumDisplays()); |
337 EXPECT_EQ(secondary_display.id(), gfx::Screen::GetPrimaryDisplay().id()); | 346 EXPECT_EQ(secondary_display.id(), |
| 347 Shell::GetAshScreen()->GetPrimaryDisplay().id()); |
338 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); | 348 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); |
339 EXPECT_EQ( | 349 EXPECT_EQ( |
340 primary_root, | 350 primary_root, |
341 display_controller->GetRootWindowForDisplayId(secondary_display.id())); | 351 display_controller->GetRootWindowForDisplayId(secondary_display.id())); |
342 EXPECT_NE( | 352 EXPECT_NE( |
343 primary_root, | 353 primary_root, |
344 display_controller->GetRootWindowForDisplayId(primary_display.id())); | 354 display_controller->GetRootWindowForDisplayId(primary_display.id())); |
345 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 355 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
346 | 356 |
347 // Deleting 2nd display and adding 2nd display with a different ID. The 2nd | 357 // Deleting 2nd display and adding 2nd display with a different ID. The 2nd |
348 // display shouldn't become primary. | 358 // display shouldn't become primary. |
349 UpdateDisplay("200x200"); | 359 UpdateDisplay("200x200"); |
350 std::vector<gfx::Display> displays2; | 360 std::vector<gfx::Display> displays2; |
351 gfx::Display third_display( | 361 gfx::Display third_display( |
352 secondary_display.id() + 1, secondary_display.bounds()); | 362 secondary_display.id() + 1, secondary_display.bounds()); |
353 ASSERT_NE(primary_display.id(), third_display.id()); | 363 ASSERT_NE(primary_display.id(), third_display.id()); |
354 displays2.push_back(primary_display); | 364 displays2.push_back(primary_display); |
355 displays2.push_back(third_display); | 365 displays2.push_back(third_display); |
356 display_manager->OnNativeDisplaysChanged(displays2); | 366 display_manager->OnNativeDisplaysChanged(displays2); |
357 EXPECT_EQ(2, gfx::Screen::GetNumDisplays()); | 367 EXPECT_EQ(2, Shell::GetAshScreen()->GetNumDisplays()); |
358 EXPECT_EQ(primary_display.id(), gfx::Screen::GetPrimaryDisplay().id()); | 368 EXPECT_EQ(primary_display.id(), |
| 369 Shell::GetAshScreen()->GetPrimaryDisplay().id()); |
359 EXPECT_EQ(third_display.id(), ScreenAsh::GetSecondaryDisplay().id()); | 370 EXPECT_EQ(third_display.id(), ScreenAsh::GetSecondaryDisplay().id()); |
360 EXPECT_EQ( | 371 EXPECT_EQ( |
361 primary_root, | 372 primary_root, |
362 display_controller->GetRootWindowForDisplayId(primary_display.id())); | 373 display_controller->GetRootWindowForDisplayId(primary_display.id())); |
363 EXPECT_NE( | 374 EXPECT_NE( |
364 primary_root, | 375 primary_root, |
365 display_controller->GetRootWindowForDisplayId(third_display.id())); | 376 display_controller->GetRootWindowForDisplayId(third_display.id())); |
366 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 377 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
367 } | 378 } |
368 | 379 |
369 TEST_F(DisplayControllerTest, MAYBE_UpdateDisplayWithHostOrigin) { | 380 TEST_F(DisplayControllerTest, MAYBE_UpdateDisplayWithHostOrigin) { |
370 UpdateDisplay("100x200,300x400"); | 381 UpdateDisplay("100x200,300x400"); |
371 ASSERT_EQ(2, gfx::Screen::GetNumDisplays()); | 382 ASSERT_EQ(2, Shell::GetAshScreen()->GetNumDisplays()); |
372 Shell::RootWindowList root_windows = | 383 Shell::RootWindowList root_windows = |
373 Shell::GetInstance()->GetAllRootWindows(); | 384 Shell::GetInstance()->GetAllRootWindows(); |
374 ASSERT_EQ(2U, root_windows.size()); | 385 ASSERT_EQ(2U, root_windows.size()); |
375 EXPECT_EQ("0,0", root_windows[0]->GetHostOrigin().ToString()); | 386 EXPECT_EQ("0,0", root_windows[0]->GetHostOrigin().ToString()); |
376 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); | 387 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); |
377 // UpdateDisplay set the origin if it's not set. | 388 // UpdateDisplay set the origin if it's not set. |
378 EXPECT_NE("0,0", root_windows[1]->GetHostOrigin().ToString()); | 389 EXPECT_NE("0,0", root_windows[1]->GetHostOrigin().ToString()); |
379 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); | 390 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); |
380 | 391 |
381 UpdateDisplay("100x200,200+300-300x400"); | 392 UpdateDisplay("100x200,200+300-300x400"); |
382 ASSERT_EQ(2, gfx::Screen::GetNumDisplays()); | 393 ASSERT_EQ(2, Shell::GetAshScreen()->GetNumDisplays()); |
383 EXPECT_EQ("0,0", root_windows[0]->GetHostOrigin().ToString()); | 394 EXPECT_EQ("0,0", root_windows[0]->GetHostOrigin().ToString()); |
384 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); | 395 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); |
385 EXPECT_EQ("200,300", root_windows[1]->GetHostOrigin().ToString()); | 396 EXPECT_EQ("200,300", root_windows[1]->GetHostOrigin().ToString()); |
386 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); | 397 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); |
387 | 398 |
388 UpdateDisplay("400+500-200x300,300x400"); | 399 UpdateDisplay("400+500-200x300,300x400"); |
389 ASSERT_EQ(2, gfx::Screen::GetNumDisplays()); | 400 ASSERT_EQ(2, Shell::GetAshScreen()->GetNumDisplays()); |
390 EXPECT_EQ("400,500", root_windows[0]->GetHostOrigin().ToString()); | 401 EXPECT_EQ("400,500", root_windows[0]->GetHostOrigin().ToString()); |
391 EXPECT_EQ("200x300", root_windows[0]->GetHostSize().ToString()); | 402 EXPECT_EQ("200x300", root_windows[0]->GetHostSize().ToString()); |
392 EXPECT_EQ("0,0", root_windows[1]->GetHostOrigin().ToString()); | 403 EXPECT_EQ("0,0", root_windows[1]->GetHostOrigin().ToString()); |
393 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); | 404 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); |
394 | 405 |
395 UpdateDisplay("100+200-100x200,300+500-200x300"); | 406 UpdateDisplay("100+200-100x200,300+500-200x300"); |
396 ASSERT_EQ(2, gfx::Screen::GetNumDisplays()); | 407 ASSERT_EQ(2, Shell::GetAshScreen()->GetNumDisplays()); |
397 EXPECT_EQ("100,200", root_windows[0]->GetHostOrigin().ToString()); | 408 EXPECT_EQ("100,200", root_windows[0]->GetHostOrigin().ToString()); |
398 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); | 409 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); |
399 EXPECT_EQ("300,500", root_windows[1]->GetHostOrigin().ToString()); | 410 EXPECT_EQ("300,500", root_windows[1]->GetHostOrigin().ToString()); |
400 EXPECT_EQ("200x300", root_windows[1]->GetHostSize().ToString()); | 411 EXPECT_EQ("200x300", root_windows[1]->GetHostSize().ToString()); |
401 } | 412 } |
402 | 413 |
403 } // namespace test | 414 } // namespace test |
404 } // namespace ash | 415 } // namespace ash |
OLD | NEW |