| 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/display/display_info.h" | 7 #include "ash/display/display_info.h" |
| 8 #include "ash/display/display_manager.h" | 8 #include "ash/display/display_manager.h" |
| 9 #include "ash/launcher/launcher.h" | 9 #include "ash/launcher/launcher.h" |
| 10 #include "ash/screen_ash.h" | 10 #include "ash/screen_ash.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 | 84 |
| 85 void SetDefaultDisplayLayout(DisplayLayout::Position position) { | 85 void SetDefaultDisplayLayout(DisplayLayout::Position position) { |
| 86 Shell::GetInstance()->display_controller()-> | 86 Shell::GetInstance()->display_controller()-> |
| 87 SetDefaultDisplayLayout(DisplayLayout(position, 0)); | 87 SetDefaultDisplayLayout(DisplayLayout(position, 0)); |
| 88 } | 88 } |
| 89 | 89 |
| 90 class DisplayControllerShutdownTest : public test::AshTestBase { | 90 class DisplayControllerShutdownTest : public test::AshTestBase { |
| 91 public: | 91 public: |
| 92 virtual void TearDown() OVERRIDE { | 92 virtual void TearDown() OVERRIDE { |
| 93 test::AshTestBase::TearDown(); | 93 test::AshTestBase::TearDown(); |
| 94 RETURN_IF_WIN8; |
| 95 |
| 94 // Make sure that primary display is accessible after shutdown. | 96 // Make sure that primary display is accessible after shutdown. |
| 95 gfx::Display primary = Shell::GetScreen()->GetPrimaryDisplay(); | 97 gfx::Display primary = Shell::GetScreen()->GetPrimaryDisplay(); |
| 96 EXPECT_EQ("0,0 444x333", primary.bounds().ToString()); | 98 EXPECT_EQ("0,0 444x333", primary.bounds().ToString()); |
| 97 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); | 99 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); |
| 98 } | 100 } |
| 99 }; | 101 }; |
| 100 | 102 |
| 101 class TestEventHandler : public ui::EventHandler { | 103 class TestEventHandler : public ui::EventHandler { |
| 102 public: | 104 public: |
| 103 TestEventHandler() : target_root_(NULL), | 105 TestEventHandler() : target_root_(NULL), |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 | 181 |
| 180 float GetStoredUIScale(int64 id) { | 182 float GetStoredUIScale(int64 id) { |
| 181 return Shell::GetInstance()->display_manager()->GetDisplayInfo(id).ui_scale(); | 183 return Shell::GetInstance()->display_manager()->GetDisplayInfo(id).ui_scale(); |
| 182 } | 184 } |
| 183 | 185 |
| 184 } // namespace | 186 } // namespace |
| 185 | 187 |
| 186 typedef test::AshTestBase DisplayControllerTest; | 188 typedef test::AshTestBase DisplayControllerTest; |
| 187 | 189 |
| 188 TEST_F(DisplayControllerShutdownTest, Shutdown) { | 190 TEST_F(DisplayControllerShutdownTest, Shutdown) { |
| 191 RETURN_IF_WIN8; |
| 192 |
| 189 UpdateDisplay("444x333, 200x200"); | 193 UpdateDisplay("444x333, 200x200"); |
| 190 } | 194 } |
| 191 | 195 |
| 192 TEST_F(DisplayControllerTest, SecondaryDisplayLayout) { | 196 TEST_F(DisplayControllerTest, SecondaryDisplayLayout) { |
| 197 RETURN_IF_WIN8; |
| 198 |
| 193 TestObserver observer; | 199 TestObserver observer; |
| 194 UpdateDisplay("500x500,400x400"); | 200 UpdateDisplay("500x500,400x400"); |
| 195 EXPECT_EQ(1, observer.CountAndReset()); // resize and add | 201 EXPECT_EQ(1, observer.CountAndReset()); // resize and add |
| 196 gfx::Display* secondary_display = | 202 gfx::Display* secondary_display = |
| 197 Shell::GetInstance()->display_manager()->GetDisplayAt(1); | 203 Shell::GetInstance()->display_manager()->GetDisplayAt(1); |
| 198 gfx::Insets insets(5, 5, 5, 5); | 204 gfx::Insets insets(5, 5, 5, 5); |
| 199 secondary_display->UpdateWorkAreaFromInsets(insets); | 205 secondary_display->UpdateWorkAreaFromInsets(insets); |
| 200 | 206 |
| 201 // Default layout is RIGHT. | 207 // Default layout is RIGHT. |
| 202 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); | 208 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); | 259 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); |
| 254 EXPECT_EQ("400,500 400x400", GetSecondaryDisplay().bounds().ToString()); | 260 EXPECT_EQ("400,500 400x400", GetSecondaryDisplay().bounds().ToString()); |
| 255 | 261 |
| 256 SetSecondaryDisplayLayoutAndOffset(DisplayLayout::BOTTOM, -400); | 262 SetSecondaryDisplayLayoutAndOffset(DisplayLayout::BOTTOM, -400); |
| 257 EXPECT_EQ(1, observer.CountAndReset()); // resize and add | 263 EXPECT_EQ(1, observer.CountAndReset()); // resize and add |
| 258 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); | 264 EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); |
| 259 EXPECT_EQ("-300,500 400x400", GetSecondaryDisplay().bounds().ToString()); | 265 EXPECT_EQ("-300,500 400x400", GetSecondaryDisplay().bounds().ToString()); |
| 260 } | 266 } |
| 261 | 267 |
| 262 TEST_F(DisplayControllerTest, BoundsUpdated) { | 268 TEST_F(DisplayControllerTest, BoundsUpdated) { |
| 269 RETURN_IF_WIN8; |
| 270 |
| 263 TestObserver observer; | 271 TestObserver observer; |
| 264 SetDefaultDisplayLayout(DisplayLayout::BOTTOM); | 272 SetDefaultDisplayLayout(DisplayLayout::BOTTOM); |
| 265 UpdateDisplay("200x200,300x300"); // layout, resize and add. | 273 UpdateDisplay("200x200,300x300"); // layout, resize and add. |
| 266 EXPECT_EQ(1, observer.CountAndReset()); | 274 EXPECT_EQ(1, observer.CountAndReset()); |
| 267 | 275 |
| 268 internal::DisplayManager* display_manager = | 276 internal::DisplayManager* display_manager = |
| 269 Shell::GetInstance()->display_manager(); | 277 Shell::GetInstance()->display_manager(); |
| 270 gfx::Display* secondary_display = display_manager->GetDisplayAt(1); | 278 gfx::Display* secondary_display = display_manager->GetDisplayAt(1); |
| 271 gfx::Insets insets(5, 5, 5, 5); | 279 gfx::Insets insets(5, 5, 5, 5); |
| 272 secondary_display->UpdateWorkAreaFromInsets(insets); | 280 secondary_display->UpdateWorkAreaFromInsets(insets); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 EXPECT_EQ(1, observer.CountAndReset()); | 322 EXPECT_EQ(1, observer.CountAndReset()); |
| 315 display_manager->SetDisplayUIScale(secondary_id, 1.125f); | 323 display_manager->SetDisplayUIScale(secondary_id, 1.125f); |
| 316 EXPECT_EQ(0, observer.CountAndReset()); | 324 EXPECT_EQ(0, observer.CountAndReset()); |
| 317 display_manager->SetDisplayUIScale(primary_id, 1.125f); | 325 display_manager->SetDisplayUIScale(primary_id, 1.125f); |
| 318 EXPECT_EQ(0, observer.CountAndReset()); | 326 EXPECT_EQ(0, observer.CountAndReset()); |
| 319 display_manager->SetDisplayUIScale(primary_id, 1.125f); | 327 display_manager->SetDisplayUIScale(primary_id, 1.125f); |
| 320 EXPECT_EQ(0, observer.CountAndReset()); | 328 EXPECT_EQ(0, observer.CountAndReset()); |
| 321 } | 329 } |
| 322 | 330 |
| 323 TEST_F(DisplayControllerTest, MirroredLayout) { | 331 TEST_F(DisplayControllerTest, MirroredLayout) { |
| 332 RETURN_IF_WIN8; |
| 333 |
| 324 DisplayController* display_controller = | 334 DisplayController* display_controller = |
| 325 Shell::GetInstance()->display_controller(); | 335 Shell::GetInstance()->display_controller(); |
| 326 UpdateDisplay("500x500,400x400"); | 336 UpdateDisplay("500x500,400x400"); |
| 327 EXPECT_FALSE(display_controller->GetCurrentDisplayLayout().mirrored); | 337 EXPECT_FALSE(display_controller->GetCurrentDisplayLayout().mirrored); |
| 328 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); | 338 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); |
| 329 EXPECT_EQ( | 339 EXPECT_EQ( |
| 330 2U, Shell::GetInstance()->display_manager()->num_connected_displays()); | 340 2U, Shell::GetInstance()->display_manager()->num_connected_displays()); |
| 331 | 341 |
| 332 UpdateDisplay("500x500,1+0-500x500"); | 342 UpdateDisplay("500x500,1+0-500x500"); |
| 333 EXPECT_TRUE(display_controller->GetCurrentDisplayLayout().mirrored); | 343 EXPECT_TRUE(display_controller->GetCurrentDisplayLayout().mirrored); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 DisplayLayout(DisplayLayout::TOP, -70).Invert().ToString()); | 375 DisplayLayout(DisplayLayout::TOP, -70).Invert().ToString()); |
| 366 | 376 |
| 367 EXPECT_EQ("top, 0", | 377 EXPECT_EQ("top, 0", |
| 368 DisplayLayout(DisplayLayout::BOTTOM, 0).Invert().ToString()); | 378 DisplayLayout(DisplayLayout::BOTTOM, 0).Invert().ToString()); |
| 369 EXPECT_EQ("top, -70", | 379 EXPECT_EQ("top, -70", |
| 370 DisplayLayout(DisplayLayout::BOTTOM, 70).Invert().ToString()); | 380 DisplayLayout(DisplayLayout::BOTTOM, 70).Invert().ToString()); |
| 371 EXPECT_EQ("top, 80", | 381 EXPECT_EQ("top, 80", |
| 372 DisplayLayout(DisplayLayout::BOTTOM, -80).Invert().ToString()); | 382 DisplayLayout(DisplayLayout::BOTTOM, -80).Invert().ToString()); |
| 373 } | 383 } |
| 374 | 384 |
| 375 // Crashes flakily on win8 aura bots: crbug.com/237642 | 385 TEST_F(DisplayControllerTest, SwapPrimary) { |
| 376 #if defined(OS_WIN) && defined(USE_AURA) | 386 RETURN_IF_WIN8; |
| 377 #define MAYBE_SwapPrimary DISABLED_SwapPrimary | 387 |
| 378 #else | |
| 379 #define MAYBE_SwapPrimary SwapPrimary | |
| 380 #endif | |
| 381 TEST_F(DisplayControllerTest, MAYBE_SwapPrimary) { | |
| 382 DisplayController* display_controller = | 388 DisplayController* display_controller = |
| 383 Shell::GetInstance()->display_controller(); | 389 Shell::GetInstance()->display_controller(); |
| 384 | 390 |
| 385 UpdateDisplay("200x200,300x300"); | 391 UpdateDisplay("200x200,300x300"); |
| 386 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); | 392 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 387 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); | 393 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); |
| 388 | 394 |
| 389 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); | 395 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); |
| 390 display_controller->SetLayoutForCurrentDisplays(display_layout); | 396 display_controller->SetLayoutForCurrentDisplays(display_layout); |
| 391 | 397 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 EXPECT_EQ(primary_display.id(), | 463 EXPECT_EQ(primary_display.id(), |
| 458 Shell::GetScreen()->GetDisplayNearestPoint( | 464 Shell::GetScreen()->GetDisplayNearestPoint( |
| 459 gfx::Point(-100, -100)).id()); | 465 gfx::Point(-100, -100)).id()); |
| 460 EXPECT_EQ(primary_display.id(), | 466 EXPECT_EQ(primary_display.id(), |
| 461 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); | 467 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); |
| 462 EXPECT_TRUE(tracker.Contains(primary_root)); | 468 EXPECT_TRUE(tracker.Contains(primary_root)); |
| 463 EXPECT_FALSE(tracker.Contains(secondary_root)); | 469 EXPECT_FALSE(tracker.Contains(secondary_root)); |
| 464 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 470 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
| 465 } | 471 } |
| 466 | 472 |
| 467 // Crashes flakily on win8 aura bots: crbug.com/237642 | 473 TEST_F(DisplayControllerTest, SwapPrimaryById) { |
| 468 #if defined(OS_WIN) && defined(USE_AURA) | 474 RETURN_IF_WIN8; |
| 469 #define MAYBE_SwapPrimaryById DISABLED_SwapPrimaryById | 475 |
| 470 #else | |
| 471 #define MAYBE_SwapPrimaryById SwapPrimaryById | |
| 472 #endif | |
| 473 TEST_F(DisplayControllerTest, MAYBE_SwapPrimaryById) { | |
| 474 DisplayController* display_controller = | 476 DisplayController* display_controller = |
| 475 Shell::GetInstance()->display_controller(); | 477 Shell::GetInstance()->display_controller(); |
| 476 | 478 |
| 477 UpdateDisplay("200x200,300x300"); | 479 UpdateDisplay("200x200,300x300"); |
| 478 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); | 480 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 479 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); | 481 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); |
| 480 | 482 |
| 481 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); | 483 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); |
| 482 display_controller->SetLayoutForCurrentDisplays(display_layout); | 484 display_controller->SetLayoutForCurrentDisplays(display_layout); |
| 483 | 485 |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 584 EXPECT_EQ(third_display_info.id(), ScreenAsh::GetSecondaryDisplay().id()); | 586 EXPECT_EQ(third_display_info.id(), ScreenAsh::GetSecondaryDisplay().id()); |
| 585 EXPECT_EQ( | 587 EXPECT_EQ( |
| 586 primary_root, | 588 primary_root, |
| 587 display_controller->GetRootWindowForDisplayId(primary_display.id())); | 589 display_controller->GetRootWindowForDisplayId(primary_display.id())); |
| 588 EXPECT_NE( | 590 EXPECT_NE( |
| 589 primary_root, | 591 primary_root, |
| 590 display_controller->GetRootWindowForDisplayId(third_display_info.id())); | 592 display_controller->GetRootWindowForDisplayId(third_display_info.id())); |
| 591 EXPECT_TRUE(primary_root->Contains(launcher_window)); | 593 EXPECT_TRUE(primary_root->Contains(launcher_window)); |
| 592 } | 594 } |
| 593 | 595 |
| 594 #if defined(OS_WIN) | 596 TEST_F(DisplayControllerTest, CursorDeviceScaleFactorSwapPrimary) { |
| 595 // Flaky failures on Win8 due to window activation messages. crbug.com/239539 | 597 RETURN_IF_WIN8; |
| 596 #define MAYBE_CursorDeviceScaleFactorSwapPrimary \ | 598 |
| 597 DISABLED_CursorDeviceScaleFactorSwapPrimary | |
| 598 #else | |
| 599 #define MAYBE_CursorDeviceScaleFactorSwapPrimary \ | |
| 600 CursorDeviceScaleFactorSwapPrimary | |
| 601 #endif | |
| 602 TEST_F(DisplayControllerTest, MAYBE_CursorDeviceScaleFactorSwapPrimary) { | |
| 603 DisplayController* display_controller = | 599 DisplayController* display_controller = |
| 604 Shell::GetInstance()->display_controller(); | 600 Shell::GetInstance()->display_controller(); |
| 605 | 601 |
| 606 UpdateDisplay("200x200,200x200*2"); | 602 UpdateDisplay("200x200,200x200*2"); |
| 607 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); | 603 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 608 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); | 604 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); |
| 609 | 605 |
| 610 aura::RootWindow* primary_root = | 606 aura::RootWindow* primary_root = |
| 611 display_controller->GetRootWindowForDisplayId(primary_display.id()); | 607 display_controller->GetRootWindowForDisplayId(primary_display.id()); |
| 612 aura::RootWindow* secondary_root = | 608 aura::RootWindow* secondary_root = |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 // Cursor's device scale factor should be updated even without moving cursor. | 641 // Cursor's device scale factor should be updated even without moving cursor. |
| 646 EXPECT_EQ(1.0f, test_api.GetDisplay().device_scale_factor()); | 642 EXPECT_EQ(1.0f, test_api.GetDisplay().device_scale_factor()); |
| 647 | 643 |
| 648 primary_root->MoveCursorTo(gfx::Point(50, 50)); | 644 primary_root->MoveCursorTo(gfx::Point(50, 50)); |
| 649 EXPECT_EQ(1.0f, | 645 EXPECT_EQ(1.0f, |
| 650 primary_root->AsRootWindowHostDelegate()->GetDeviceScaleFactor()); | 646 primary_root->AsRootWindowHostDelegate()->GetDeviceScaleFactor()); |
| 651 EXPECT_EQ(1.0f, test_api.GetDisplay().device_scale_factor()); | 647 EXPECT_EQ(1.0f, test_api.GetDisplay().device_scale_factor()); |
| 652 } | 648 } |
| 653 | 649 |
| 654 #if defined(OS_WIN) | 650 #if defined(OS_WIN) |
| 655 // TODO(oshima): On Windows, we don't update the origin/size right away. | 651 // TODO(scottmg): RootWindow doesn't get resized on Windows |
| 652 // Ash. http://crbug.com/247916. |
| 656 #define MAYBE_UpdateDisplayWithHostOrigin DISABLED_UpdateDisplayWithHostOrigin | 653 #define MAYBE_UpdateDisplayWithHostOrigin DISABLED_UpdateDisplayWithHostOrigin |
| 657 #else | 654 #else |
| 658 #define MAYBE_UpdateDisplayWithHostOrigin UpdateDisplayWithHostOrigin | 655 #define MAYBE_UpdateDisplayWithHostOrigin UpdateDisplayWithHostOrigin |
| 659 #endif | 656 #endif |
| 660 | 657 |
| 661 TEST_F(DisplayControllerTest, MAYBE_UpdateDisplayWithHostOrigin) { | 658 TEST_F(DisplayControllerTest, MAYBE_UpdateDisplayWithHostOrigin) { |
| 662 UpdateDisplay("100x200,300x400"); | 659 UpdateDisplay("100x200,300x400"); |
| 663 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); | 660 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); |
| 664 Shell::RootWindowList root_windows = | 661 Shell::RootWindowList root_windows = |
| 665 Shell::GetInstance()->GetAllRootWindows(); | 662 Shell::GetInstance()->GetAllRootWindows(); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 685 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); | 682 EXPECT_EQ("300x400", root_windows[1]->GetHostSize().ToString()); |
| 686 | 683 |
| 687 UpdateDisplay("100+200-100x200,300+500-200x300"); | 684 UpdateDisplay("100+200-100x200,300+500-200x300"); |
| 688 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); | 685 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); |
| 689 EXPECT_EQ("100,200", root_windows[0]->GetHostOrigin().ToString()); | 686 EXPECT_EQ("100,200", root_windows[0]->GetHostOrigin().ToString()); |
| 690 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); | 687 EXPECT_EQ("100x200", root_windows[0]->GetHostSize().ToString()); |
| 691 EXPECT_EQ("300,500", root_windows[1]->GetHostOrigin().ToString()); | 688 EXPECT_EQ("300,500", root_windows[1]->GetHostOrigin().ToString()); |
| 692 EXPECT_EQ("200x300", root_windows[1]->GetHostSize().ToString()); | 689 EXPECT_EQ("200x300", root_windows[1]->GetHostSize().ToString()); |
| 693 } | 690 } |
| 694 | 691 |
| 695 #if defined(OS_WIN) | 692 TEST_F(DisplayControllerTest, OverscanInsets) { |
| 696 // TODO(oshima): Windows does not supoprts insets. | 693 RETURN_IF_WIN8; |
| 697 #define MAYBE_OverscanInsets DISABLED_OverscanInsets | |
| 698 #else | |
| 699 #define MAYBE_OverscanInsets OverscanInsets | |
| 700 #endif | |
| 701 | 694 |
| 702 TEST_F(DisplayControllerTest, MAYBE_OverscanInsets) { | |
| 703 DisplayController* display_controller = | 695 DisplayController* display_controller = |
| 704 Shell::GetInstance()->display_controller(); | 696 Shell::GetInstance()->display_controller(); |
| 705 TestEventHandler event_handler; | 697 TestEventHandler event_handler; |
| 706 Shell::GetInstance()->AddPreTargetHandler(&event_handler); | 698 Shell::GetInstance()->AddPreTargetHandler(&event_handler); |
| 707 | 699 |
| 708 UpdateDisplay("120x200,300x400*2"); | 700 UpdateDisplay("120x200,300x400*2"); |
| 709 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); | 701 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); |
| 710 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); | 702 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
| 711 | 703 |
| 712 display_controller->SetOverscanInsets(display1.id(), | 704 display_controller->SetOverscanInsets(display1.id(), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 724 EXPECT_EQ("0,0 120x200", root_windows[0]->bounds().ToString()); | 716 EXPECT_EQ("0,0 120x200", root_windows[0]->bounds().ToString()); |
| 725 EXPECT_EQ("120,0 150x200", | 717 EXPECT_EQ("120,0 150x200", |
| 726 ScreenAsh::GetSecondaryDisplay().bounds().ToString()); | 718 ScreenAsh::GetSecondaryDisplay().bounds().ToString()); |
| 727 | 719 |
| 728 generator.MoveMouseToInHost(30, 20); | 720 generator.MoveMouseToInHost(30, 20); |
| 729 EXPECT_EQ("30,20", event_handler.GetLocationAndReset()); | 721 EXPECT_EQ("30,20", event_handler.GetLocationAndReset()); |
| 730 | 722 |
| 731 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 723 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 732 } | 724 } |
| 733 | 725 |
| 734 #if defined(OS_WIN) | 726 TEST_F(DisplayControllerTest, Rotate) { |
| 735 // On Win8 bots, the host window can't be resized and | 727 RETURN_IF_WIN8; |
| 736 // SetTransform updates the window using the orignal host window | |
| 737 // size. | |
| 738 #define MAYBE_Rotate DISABLED_Rotate | |
| 739 #define MAYBE_ScaleRootWindow DISABLED_ScaleRootWindow | |
| 740 #define MAYBE_TouchScale DISABLED_TouchScale | |
| 741 #define MAYBE_ConvertHostToRootCoords DISABLED_ConvertHostToRootCoords | |
| 742 #else | |
| 743 #define MAYBE_Rotate Rotate | |
| 744 #define MAYBE_ScaleRootWindow ScaleRootWindow | |
| 745 #define MAYBE_TouchScale TouchScale | |
| 746 #define MAYBE_ConvertHostToRootCoords ConvertHostToRootCoords | |
| 747 #endif | |
| 748 | 728 |
| 749 TEST_F(DisplayControllerTest, MAYBE_Rotate) { | |
| 750 DisplayController* display_controller = | 729 DisplayController* display_controller = |
| 751 Shell::GetInstance()->display_controller(); | 730 Shell::GetInstance()->display_controller(); |
| 752 internal::DisplayManager* display_manager = | 731 internal::DisplayManager* display_manager = |
| 753 Shell::GetInstance()->display_manager(); | 732 Shell::GetInstance()->display_manager(); |
| 754 TestEventHandler event_handler; | 733 TestEventHandler event_handler; |
| 755 Shell::GetInstance()->AddPreTargetHandler(&event_handler); | 734 Shell::GetInstance()->AddPreTargetHandler(&event_handler); |
| 756 | 735 |
| 757 UpdateDisplay("120x200,300x400*2"); | 736 UpdateDisplay("120x200,300x400*2"); |
| 758 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); | 737 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); |
| 759 int64 display2_id = ScreenAsh::GetSecondaryDisplay().id(); | 738 int64 display2_id = ScreenAsh::GetSecondaryDisplay().id(); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 ScreenAsh::GetSecondaryDisplay().bounds().ToString()); | 786 ScreenAsh::GetSecondaryDisplay().bounds().ToString()); |
| 808 EXPECT_EQ(gfx::Display::ROTATE_180, GetStoredRotation(display1.id())); | 787 EXPECT_EQ(gfx::Display::ROTATE_180, GetStoredRotation(display1.id())); |
| 809 EXPECT_EQ(gfx::Display::ROTATE_270, GetStoredRotation(display2_id)); | 788 EXPECT_EQ(gfx::Display::ROTATE_270, GetStoredRotation(display2_id)); |
| 810 | 789 |
| 811 generator1.MoveMouseToInHost(50, 40); | 790 generator1.MoveMouseToInHost(50, 40); |
| 812 EXPECT_EQ("69,159", event_handler.GetLocationAndReset()); | 791 EXPECT_EQ("69,159", event_handler.GetLocationAndReset()); |
| 813 | 792 |
| 814 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 793 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 815 } | 794 } |
| 816 | 795 |
| 817 TEST_F(DisplayControllerTest, MAYBE_ScaleRootWindow) { | 796 TEST_F(DisplayControllerTest, ScaleRootWindow) { |
| 797 RETURN_IF_WIN8; |
| 798 |
| 818 TestEventHandler event_handler; | 799 TestEventHandler event_handler; |
| 819 Shell::GetInstance()->AddPreTargetHandler(&event_handler); | 800 Shell::GetInstance()->AddPreTargetHandler(&event_handler); |
| 820 | 801 |
| 821 UpdateDisplay("600x400*2@1.5,500x300"); | 802 UpdateDisplay("600x400*2@1.5,500x300"); |
| 822 | 803 |
| 823 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); | 804 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); |
| 824 gfx::Display::SetInternalDisplayId(display1.id()); | 805 gfx::Display::SetInternalDisplayId(display1.id()); |
| 825 | 806 |
| 826 gfx::Display display2 = ScreenAsh::GetSecondaryDisplay(); | 807 gfx::Display display2 = ScreenAsh::GetSecondaryDisplay(); |
| 827 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); | 808 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 842 display2 = ScreenAsh::GetSecondaryDisplay(); | 823 display2 = ScreenAsh::GetSecondaryDisplay(); |
| 843 EXPECT_EQ("0,0 375x250", display1.bounds().ToString()); | 824 EXPECT_EQ("0,0 375x250", display1.bounds().ToString()); |
| 844 EXPECT_EQ("0,0 375x250", root_windows[0]->bounds().ToString()); | 825 EXPECT_EQ("0,0 375x250", root_windows[0]->bounds().ToString()); |
| 845 EXPECT_EQ("375,0 500x300", display2.bounds().ToString()); | 826 EXPECT_EQ("375,0 500x300", display2.bounds().ToString()); |
| 846 EXPECT_EQ(1.25f, GetStoredUIScale(display1.id())); | 827 EXPECT_EQ(1.25f, GetStoredUIScale(display1.id())); |
| 847 EXPECT_EQ(1.0f, GetStoredUIScale(display2.id())); | 828 EXPECT_EQ(1.0f, GetStoredUIScale(display2.id())); |
| 848 | 829 |
| 849 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 830 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 850 } | 831 } |
| 851 | 832 |
| 852 TEST_F(DisplayControllerTest, MAYBE_TouchScale) { | 833 TEST_F(DisplayControllerTest, TouchScale) { |
| 834 RETURN_IF_WIN8; |
| 835 |
| 853 TestEventHandler event_handler; | 836 TestEventHandler event_handler; |
| 854 Shell::GetInstance()->AddPreTargetHandler(&event_handler); | 837 Shell::GetInstance()->AddPreTargetHandler(&event_handler); |
| 855 | 838 |
| 856 UpdateDisplay("200x200*2"); | 839 UpdateDisplay("200x200*2"); |
| 857 gfx::Display display = Shell::GetScreen()->GetPrimaryDisplay(); | 840 gfx::Display display = Shell::GetScreen()->GetPrimaryDisplay(); |
| 858 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); | 841 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
| 859 aura::RootWindow* root_window = root_windows[0]; | 842 aura::RootWindow* root_window = root_windows[0]; |
| 860 aura::test::EventGenerator generator(root_window); | 843 aura::test::EventGenerator generator(root_window); |
| 861 | 844 |
| 862 generator.PressMoveAndReleaseTouchTo(50, 50); | 845 generator.PressMoveAndReleaseTouchTo(50, 50); |
| 863 // Default test touches have radius_x/y = 1.0, with device scale | 846 // Default test touches have radius_x/y = 1.0, with device scale |
| 864 // factor = 2, the scaled radius_x/y should be 0.5. | 847 // factor = 2, the scaled radius_x/y should be 0.5. |
| 865 EXPECT_EQ(0.5, event_handler.touch_radius_x()); | 848 EXPECT_EQ(0.5, event_handler.touch_radius_x()); |
| 866 EXPECT_EQ(0.5, event_handler.touch_radius_y()); | 849 EXPECT_EQ(0.5, event_handler.touch_radius_y()); |
| 867 | 850 |
| 868 generator.ScrollSequence(gfx::Point(0,0), | 851 generator.ScrollSequence(gfx::Point(0,0), |
| 869 base::TimeDelta::FromMilliseconds(100), | 852 base::TimeDelta::FromMilliseconds(100), |
| 870 10.0, 1.0, 5, 1); | 853 10.0, 1.0, 5, 1); |
| 871 | 854 |
| 872 // With device scale factor = 2, ordinal_offset * 2 = offset. | 855 // With device scale factor = 2, ordinal_offset * 2 = offset. |
| 873 EXPECT_EQ(event_handler.scroll_x_offset(), | 856 EXPECT_EQ(event_handler.scroll_x_offset(), |
| 874 event_handler.scroll_x_offset_ordinal() * 2); | 857 event_handler.scroll_x_offset_ordinal() * 2); |
| 875 EXPECT_EQ(event_handler.scroll_y_offset(), | 858 EXPECT_EQ(event_handler.scroll_y_offset(), |
| 876 event_handler.scroll_y_offset_ordinal() * 2); | 859 event_handler.scroll_y_offset_ordinal() * 2); |
| 877 | 860 |
| 878 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 861 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 879 } | 862 } |
| 880 | 863 |
| 881 TEST_F(DisplayControllerTest, MAYBE_ConvertHostToRootCoords) { | 864 TEST_F(DisplayControllerTest, ConvertHostToRootCoords) { |
| 865 RETURN_IF_WIN8; |
| 866 |
| 882 TestEventHandler event_handler; | 867 TestEventHandler event_handler; |
| 883 Shell::GetInstance()->AddPreTargetHandler(&event_handler); | 868 Shell::GetInstance()->AddPreTargetHandler(&event_handler); |
| 884 | 869 |
| 885 UpdateDisplay("600x400*2/r@1.5"); | 870 UpdateDisplay("600x400*2/r@1.5"); |
| 886 | 871 |
| 887 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); | 872 gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay(); |
| 888 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); | 873 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
| 889 EXPECT_EQ("0,0 300x450", display1.bounds().ToString()); | 874 EXPECT_EQ("0,0 300x450", display1.bounds().ToString()); |
| 890 EXPECT_EQ("0,0 300x450", root_windows[0]->bounds().ToString()); | 875 EXPECT_EQ("0,0 300x450", root_windows[0]->bounds().ToString()); |
| 891 EXPECT_EQ(1.5f, GetStoredUIScale(display1.id())); | 876 EXPECT_EQ(1.5f, GetStoredUIScale(display1.id())); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 930 generator.MoveMouseToInHost(599, 399); | 915 generator.MoveMouseToInHost(599, 399); |
| 931 EXPECT_EQ("0,449", event_handler.GetLocationAndReset()); | 916 EXPECT_EQ("0,449", event_handler.GetLocationAndReset()); |
| 932 generator.MoveMouseToInHost(0, 399); | 917 generator.MoveMouseToInHost(0, 399); |
| 933 EXPECT_EQ("0,0", event_handler.GetLocationAndReset()); | 918 EXPECT_EQ("0,0", event_handler.GetLocationAndReset()); |
| 934 | 919 |
| 935 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); | 920 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 936 } | 921 } |
| 937 | 922 |
| 938 } // namespace test | 923 } // namespace test |
| 939 } // namespace ash | 924 } // namespace ash |
| OLD | NEW |