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

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

Issue 11428066: Use WS_POPUP for ash_unittests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « ash/dip_unittest.cc ('k') | ash/display/display_manager_unittest.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 (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/display/display_manager.h" 7 #include "ash/display/display_manager.h"
8 #include "ash/launcher/launcher.h" 8 #include "ash/launcher/launcher.h"
9 #include "ash/screen_ash.h" 9 #include "ash/screen_ash.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 gfx::Display primary = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); 91 gfx::Display primary = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
92 EXPECT_EQ("0,0 444x333", primary.bounds().ToString()); 92 EXPECT_EQ("0,0 444x333", primary.bounds().ToString());
93 EXPECT_EQ(2, gfx::Screen::GetNativeScreen()->GetNumDisplays()); 93 EXPECT_EQ(2, gfx::Screen::GetNativeScreen()->GetNumDisplays());
94 } 94 }
95 }; 95 };
96 96
97 } // namespace 97 } // namespace
98 98
99 typedef test::AshTestBase DisplayControllerTest; 99 typedef test::AshTestBase DisplayControllerTest;
100 100
101 #if defined(OS_WIN) 101 TEST_F(DisplayControllerShutdownTest, Shutdown) {
102 // TODO(oshima): Windows creates a window with smaller client area.
103 // Fix this and enable tests.
104 #define MAYBE_SecondaryDisplayLayout DISABLED_SecondaryDisplayLayout
105 #define MAYBE_BoundsUpdated DISABLED_BoundsUpdated
106 #define MAYBE_UpdateDisplayWithHostOrigin DISABLED_UpdateDisplayWithHostOrigin
107 #define MAYBE_CursorDeviceScaleFactorSwapPrimary \
108 DISABLED_CursorDeviceScaleFactorSwapPrimary
109 #define MAYBE_Shutdown DISABLED_Shutdown
110 #else
111 #define MAYBE_SecondaryDisplayLayout SecondaryDisplayLayout
112 #define MAYBE_BoundsUpdated BoundsUpdated
113 #define MAYBE_CursorDeviceScaleFactorSwapPrimary \
114 CursorDeviceScaleFactorSwapPrimary
115 #define MAYBE_UpdateDisplayWithHostOrigin UpdateDisplayWithHostOrigin
116 #define MAYBE_Shutdown Shutdown
117 #endif
118
119 TEST_F(DisplayControllerShutdownTest, MAYBE_Shutdown) {
120 UpdateDisplay("444x333, 200x200"); 102 UpdateDisplay("444x333, 200x200");
121 } 103 }
122 104
123 // Flaky - crbug.com/161857 105 TEST_F(DisplayControllerTest, SecondaryDisplayLayout) {
124 TEST_F(DisplayControllerTest, MAYBE_SecondaryDisplayLayout) {
125 TestObserver observer; 106 TestObserver observer;
126 UpdateDisplay("500x500,400x400"); 107 UpdateDisplay("500x500,400x400");
127 EXPECT_EQ(2, observer.CountAndReset()) 108 EXPECT_EQ(2, observer.CountAndReset())
128 << observer.ToString(); // resize and add 109 << observer.ToString(); // resize and add
129 gfx::Display* secondary_display = 110 gfx::Display* secondary_display =
130 Shell::GetInstance()->display_manager()->GetDisplayAt(1); 111 Shell::GetInstance()->display_manager()->GetDisplayAt(1);
131 gfx::Insets insets(5, 5, 5, 5); 112 gfx::Insets insets(5, 5, 5, 5);
132 secondary_display->UpdateWorkAreaFromInsets(insets); 113 secondary_display->UpdateWorkAreaFromInsets(insets);
133 114
134 // Default layout is RIGHT. 115 // Default layout is RIGHT.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 SetSecondaryDisplayLayoutAndOffset(DisplayLayout::BOTTOM, -400); 200 SetSecondaryDisplayLayoutAndOffset(DisplayLayout::BOTTOM, -400);
220 EXPECT_EQ(1, observer.CountAndReset()) 201 EXPECT_EQ(1, observer.CountAndReset())
221 << observer.ToString(); 202 << observer.ToString();
222 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()) 203 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString())
223 << observer.ToString(); 204 << observer.ToString();
224 EXPECT_EQ("-300,500 400x400", GetSecondaryDisplay().bounds().ToString()) 205 EXPECT_EQ("-300,500 400x400", GetSecondaryDisplay().bounds().ToString())
225 << observer.ToString(); 206 << observer.ToString();
226 207
227 } 208 }
228 209
229 TEST_F(DisplayControllerTest, MAYBE_BoundsUpdated) { 210 TEST_F(DisplayControllerTest, BoundsUpdated) {
230 TestObserver observer; 211 TestObserver observer;
231 SetSecondaryDisplayLayout(DisplayLayout::BOTTOM); 212 SetSecondaryDisplayLayout(DisplayLayout::BOTTOM);
232 UpdateDisplay("200x200,300x300"); // layout, resize and add. 213 UpdateDisplay("200x200,300x300"); // layout, resize and add.
233 EXPECT_EQ(3, observer.CountAndReset()); 214 EXPECT_EQ(3, observer.CountAndReset());
234 215
235 gfx::Display* secondary_display = 216 gfx::Display* secondary_display =
236 Shell::GetInstance()->display_manager()->GetDisplayAt(1); 217 Shell::GetInstance()->display_manager()->GetDisplayAt(1);
237 gfx::Insets insets(5, 5, 5, 5); 218 gfx::Insets insets(5, 5, 5, 5);
238 secondary_display->UpdateWorkAreaFromInsets(insets); 219 secondary_display->UpdateWorkAreaFromInsets(insets);
239 220
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 aura::Window* launcher_window = 298 aura::Window* launcher_window =
318 Launcher::ForPrimaryDisplay()->widget()->GetNativeView(); 299 Launcher::ForPrimaryDisplay()->widget()->GetNativeView();
319 EXPECT_TRUE(primary_root->Contains(launcher_window)); 300 EXPECT_TRUE(primary_root->Contains(launcher_window));
320 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 301 EXPECT_FALSE(secondary_root->Contains(launcher_window));
321 EXPECT_EQ(primary_display.id(), 302 EXPECT_EQ(primary_display.id(),
322 Shell::GetScreen()->GetDisplayNearestPoint( 303 Shell::GetScreen()->GetDisplayNearestPoint(
323 gfx::Point(-100, -100)).id()); 304 gfx::Point(-100, -100)).id());
324 EXPECT_EQ(primary_display.id(), 305 EXPECT_EQ(primary_display.id(),
325 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 306 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
326 307
327 #if !defined(OS_WIN)
328 EXPECT_EQ("0,0 200x200", primary_display.bounds().ToString()); 308 EXPECT_EQ("0,0 200x200", primary_display.bounds().ToString());
329 EXPECT_EQ("0,0 200x152", primary_display.work_area().ToString()); 309 EXPECT_EQ("0,0 200x152", primary_display.work_area().ToString());
330 EXPECT_EQ("200,0 300x300", secondary_display.bounds().ToString()); 310 EXPECT_EQ("200,0 300x300", secondary_display.bounds().ToString());
331 EXPECT_EQ("200,0 300x300", secondary_display.work_area().ToString()); 311 EXPECT_EQ("200,0 300x300", secondary_display.work_area().ToString());
332 #endif
333 312
334 // Switch primary and secondary 313 // Switch primary and secondary
335 display_controller->SetPrimaryDisplay(secondary_display); 314 display_controller->SetPrimaryDisplay(secondary_display);
336 EXPECT_EQ(secondary_display.id(), 315 EXPECT_EQ(secondary_display.id(),
337 Shell::GetScreen()->GetPrimaryDisplay().id()); 316 Shell::GetScreen()->GetPrimaryDisplay().id());
338 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); 317 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id());
339 EXPECT_EQ(secondary_display.id(), 318 EXPECT_EQ(secondary_display.id(),
340 Shell::GetScreen()->GetDisplayNearestPoint( 319 Shell::GetScreen()->GetDisplayNearestPoint(
341 gfx::Point(-100, -100)).id()); 320 gfx::Point(-100, -100)).id());
342 EXPECT_EQ(secondary_display.id(), 321 EXPECT_EQ(secondary_display.id(),
343 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 322 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
344 323
345 EXPECT_EQ( 324 EXPECT_EQ(
346 primary_root, 325 primary_root,
347 display_controller->GetRootWindowForDisplayId(secondary_display.id())); 326 display_controller->GetRootWindowForDisplayId(secondary_display.id()));
348 EXPECT_EQ( 327 EXPECT_EQ(
349 secondary_root, 328 secondary_root,
350 display_controller->GetRootWindowForDisplayId(primary_display.id())); 329 display_controller->GetRootWindowForDisplayId(primary_display.id()));
351 EXPECT_TRUE(primary_root->Contains(launcher_window)); 330 EXPECT_TRUE(primary_root->Contains(launcher_window));
352 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 331 EXPECT_FALSE(secondary_root->Contains(launcher_window));
353 332
354 #if !defined(OS_WIN)
355 // Test if the bounds are correctly swapped. 333 // Test if the bounds are correctly swapped.
356 gfx::Display swapped_primary = Shell::GetScreen()->GetPrimaryDisplay(); 334 gfx::Display swapped_primary = Shell::GetScreen()->GetPrimaryDisplay();
357 gfx::Display swapped_secondary = ScreenAsh::GetSecondaryDisplay(); 335 gfx::Display swapped_secondary = ScreenAsh::GetSecondaryDisplay();
358 EXPECT_EQ("0,0 300x300", swapped_primary.bounds().ToString()); 336 EXPECT_EQ("0,0 300x300", swapped_primary.bounds().ToString());
359 EXPECT_EQ("0,0 300x252", swapped_primary.work_area().ToString()); 337 EXPECT_EQ("0,0 300x252", swapped_primary.work_area().ToString());
360 EXPECT_EQ("-200,-50 200x200", swapped_secondary.bounds().ToString()); 338 EXPECT_EQ("-200,-50 200x200", swapped_secondary.bounds().ToString());
361 EXPECT_EQ("-200,-50 200x200", swapped_secondary.work_area().ToString()); 339 EXPECT_EQ("-200,-50 200x200", swapped_secondary.work_area().ToString());
362 #endif
363 340
364 const DisplayLayout& inverted_layout = 341 const DisplayLayout& inverted_layout =
365 display_controller->GetLayoutForDisplay(primary_display); 342 display_controller->GetLayoutForDisplay(primary_display);
366 343
367 EXPECT_EQ("left, -50", inverted_layout.ToString()); 344 EXPECT_EQ("left, -50", inverted_layout.ToString());
368 345
369 aura::WindowTracker tracker; 346 aura::WindowTracker tracker;
370 tracker.Add(primary_root); 347 tracker.Add(primary_root);
371 tracker.Add(secondary_root); 348 tracker.Add(secondary_root);
372 349
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 EXPECT_EQ(third_display.id(), ScreenAsh::GetSecondaryDisplay().id()); 472 EXPECT_EQ(third_display.id(), ScreenAsh::GetSecondaryDisplay().id());
496 EXPECT_EQ( 473 EXPECT_EQ(
497 primary_root, 474 primary_root,
498 display_controller->GetRootWindowForDisplayId(primary_display.id())); 475 display_controller->GetRootWindowForDisplayId(primary_display.id()));
499 EXPECT_NE( 476 EXPECT_NE(
500 primary_root, 477 primary_root,
501 display_controller->GetRootWindowForDisplayId(third_display.id())); 478 display_controller->GetRootWindowForDisplayId(third_display.id()));
502 EXPECT_TRUE(primary_root->Contains(launcher_window)); 479 EXPECT_TRUE(primary_root->Contains(launcher_window));
503 } 480 }
504 481
505 TEST_F(DisplayControllerTest, MAYBE_CursorDeviceScaleFactorSwapPrimary) { 482 TEST_F(DisplayControllerTest, CursorDeviceScaleFactorSwapPrimary) {
506 DisplayController* display_controller = 483 DisplayController* display_controller =
507 Shell::GetInstance()->display_controller(); 484 Shell::GetInstance()->display_controller();
508 485
509 UpdateDisplay("200x200,200x200*2"); 486 UpdateDisplay("200x200,200x200*2");
510 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); 487 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay();
511 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); 488 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay();
512 489
513 aura::RootWindow* primary_root = 490 aura::RootWindow* primary_root =
514 display_controller->GetRootWindowForDisplayId(primary_display.id()); 491 display_controller->GetRootWindowForDisplayId(primary_display.id());
515 aura::RootWindow* secondary_root = 492 aura::RootWindow* secondary_root =
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 524
548 // Cursor's device scale factor should be updated even without moving cursor. 525 // Cursor's device scale factor should be updated even without moving cursor.
549 EXPECT_EQ(1.0f, test_api.GetDeviceScaleFactor()); 526 EXPECT_EQ(1.0f, test_api.GetDeviceScaleFactor());
550 527
551 primary_root->MoveCursorTo(gfx::Point(50, 50)); 528 primary_root->MoveCursorTo(gfx::Point(50, 50));
552 EXPECT_EQ(1.0f, 529 EXPECT_EQ(1.0f,
553 primary_root->AsRootWindowHostDelegate()->GetDeviceScaleFactor()); 530 primary_root->AsRootWindowHostDelegate()->GetDeviceScaleFactor());
554 EXPECT_EQ(1.0f, test_api.GetDeviceScaleFactor()); 531 EXPECT_EQ(1.0f, test_api.GetDeviceScaleFactor());
555 } 532 }
556 533
534 #if defined(OS_WIN)
535 // TODO(oshima): On Windows, we don't update the origin/size right away.
536 #define MAYBE_UpdateDisplayWithHostOrigin DISABLED_UpdateDisplayWithHostOrigin
537 #else
538 #define MAYBE_UpdateDisplayWithHostOrigin UpdateDisplayWithHostOrigin
539 #endif
540
557 TEST_F(DisplayControllerTest, MAYBE_UpdateDisplayWithHostOrigin) { 541 TEST_F(DisplayControllerTest, MAYBE_UpdateDisplayWithHostOrigin) {
558 UpdateDisplay("100x200,300x400"); 542 UpdateDisplay("100x200,300x400");
559 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 543 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays());
560 Shell::RootWindowList root_windows = 544 Shell::RootWindowList root_windows =
561 Shell::GetInstance()->GetAllRootWindows(); 545 Shell::GetInstance()->GetAllRootWindows();
562 ASSERT_EQ(2U, root_windows.size()); 546 ASSERT_EQ(2U, root_windows.size());
563 EXPECT_EQ("0,0", root_windows[0]->GetHostOrigin().ToString()); 547 EXPECT_EQ("1,1", root_windows[0]->GetHostOrigin().ToString());
564 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); 548 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString());
565 // UpdateDisplay set the origin if it's not set. 549 // UpdateDisplay set the origin if it's not set.
566 EXPECT_NE("0,0", root_windows[1]->GetHostOrigin().ToString()); 550 EXPECT_NE("1,1", root_windows[1]->GetHostOrigin().ToString());
567 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); 551 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString());
568 552
569 UpdateDisplay("100x200,200+300-300x400"); 553 UpdateDisplay("100x200,200+300-300x400");
570 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 554 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays());
571 EXPECT_EQ("0,0", root_windows[0]->GetHostOrigin().ToString()); 555 EXPECT_EQ("0,0", root_windows[0]->GetHostOrigin().ToString());
572 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); 556 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString());
573 EXPECT_EQ("200,300", root_windows[1]->GetHostOrigin().ToString()); 557 EXPECT_EQ("200,300", root_windows[1]->GetHostOrigin().ToString());
574 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); 558 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString());
575 559
576 UpdateDisplay("400+500-200x300,300x400"); 560 UpdateDisplay("400+500-200x300,300x400");
577 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 561 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays());
578 EXPECT_EQ("400,500", root_windows[0]->GetHostOrigin().ToString()); 562 EXPECT_EQ("400,500", root_windows[0]->GetHostOrigin().ToString());
579 EXPECT_EQ("200x300", root_windows[0]->GetHostSize().ToString()); 563 EXPECT_EQ("200x300", root_windows[0]->GetHostSize().ToString());
580 EXPECT_EQ("0,0", root_windows[1]->GetHostOrigin().ToString()); 564 EXPECT_EQ("0,0", root_windows[1]->GetHostOrigin().ToString());
581 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); 565 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString());
582 566
583 UpdateDisplay("100+200-100x200,300+500-200x300"); 567 UpdateDisplay("100+200-100x200,300+500-200x300");
584 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 568 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays());
585 EXPECT_EQ("100,200", root_windows[0]->GetHostOrigin().ToString()); 569 EXPECT_EQ("100,200", root_windows[0]->GetHostOrigin().ToString());
586 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); 570 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString());
587 EXPECT_EQ("300,500", root_windows[1]->GetHostOrigin().ToString()); 571 EXPECT_EQ("300,500", root_windows[1]->GetHostOrigin().ToString());
588 EXPECT_EQ("200x300", root_windows[1]->GetHostSize().ToString()); 572 EXPECT_EQ("200x300", root_windows[1]->GetHostSize().ToString());
589 } 573 }
590 574
591 } // namespace test 575 } // namespace test
592 } // namespace ash 576 } // namespace ash
OLDNEW
« no previous file with comments | « ash/dip_unittest.cc ('k') | ash/display/display_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698