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

Side by Side Diff: ash/accelerators/accelerator_controller_unittest.cc

Issue 2700523004: Remove docked windows entirely in M59. (Closed)
Patch Set: Rebase Created 3 years, 9 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/BUILD.gn ('k') | ash/common/accelerators/accelerator_controller.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/common/accelerators/accelerator_controller.h" 5 #include "ash/common/accelerators/accelerator_controller.h"
6 6
7 #include "ash/common/accelerators/accelerator_table.h" 7 #include "ash/common/accelerators/accelerator_table.h"
8 #include "ash/common/accessibility_delegate.h" 8 #include "ash/common/accessibility_delegate.h"
9 #include "ash/common/accessibility_types.h" 9 #include "ash/common/accessibility_types.h"
10 #include "ash/common/ash_switches.h" 10 #include "ash/common/ash_switches.h"
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 } 434 }
435 435
436 TEST_F(AcceleratorControllerTest, WindowSnap) { 436 TEST_F(AcceleratorControllerTest, WindowSnap) {
437 std::unique_ptr<aura::Window> window( 437 std::unique_ptr<aura::Window> window(
438 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20))); 438 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
439 wm::WindowState* window_state = wm::GetWindowState(window.get()); 439 wm::WindowState* window_state = wm::GetWindowState(window.get());
440 440
441 window_state->Activate(); 441 window_state->Activate();
442 442
443 { 443 {
444 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); 444 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_LEFT);
445 gfx::Rect expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent( 445 gfx::Rect expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent(
446 WmWindow::Get(window.get())); 446 WmWindow::Get(window.get()));
447 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString()); 447 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString());
448 } 448 }
449 { 449 {
450 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT); 450 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_RIGHT);
451 gfx::Rect expected_bounds = wm::GetDefaultRightSnappedWindowBoundsInParent( 451 gfx::Rect expected_bounds = wm::GetDefaultRightSnappedWindowBoundsInParent(
452 WmWindow::Get(window.get())); 452 WmWindow::Get(window.get()));
453 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString()); 453 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString());
454 } 454 }
455 { 455 {
456 gfx::Rect normal_bounds = window_state->GetRestoreBoundsInParent(); 456 gfx::Rect normal_bounds = window_state->GetRestoreBoundsInParent();
457 457
458 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED); 458 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED);
459 EXPECT_TRUE(window_state->IsMaximized()); 459 EXPECT_TRUE(window_state->IsMaximized());
460 EXPECT_NE(normal_bounds.ToString(), window->bounds().ToString()); 460 EXPECT_NE(normal_bounds.ToString(), window->bounds().ToString());
461 461
462 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED); 462 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED);
463 EXPECT_FALSE(window_state->IsMaximized()); 463 EXPECT_FALSE(window_state->IsMaximized());
464 // Window gets restored to its restore bounds since side-maximized state 464 // Window gets restored to its restore bounds since side-maximized state
465 // is treated as a "maximized" state. 465 // is treated as a "maximized" state.
466 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString()); 466 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString());
467 467
468 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED); 468 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED);
469 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); 469 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_LEFT);
470 EXPECT_FALSE(window_state->IsMaximized()); 470 EXPECT_FALSE(window_state->IsMaximized());
471 471
472 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED); 472 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED);
473 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT); 473 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_RIGHT);
474 EXPECT_FALSE(window_state->IsMaximized()); 474 EXPECT_FALSE(window_state->IsMaximized());
475 475
476 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED); 476 GetController()->PerformActionIfEnabled(TOGGLE_MAXIMIZED);
477 EXPECT_TRUE(window_state->IsMaximized()); 477 EXPECT_TRUE(window_state->IsMaximized());
478 GetController()->PerformActionIfEnabled(WINDOW_MINIMIZE); 478 GetController()->PerformActionIfEnabled(WINDOW_MINIMIZE);
479 EXPECT_FALSE(window_state->IsMaximized()); 479 EXPECT_FALSE(window_state->IsMaximized());
480 EXPECT_TRUE(window_state->IsMinimized()); 480 EXPECT_TRUE(window_state->IsMinimized());
481 window_state->Restore(); 481 window_state->Restore();
482 window_state->Activate(); 482 window_state->Activate();
483 } 483 }
484 { 484 {
485 GetController()->PerformActionIfEnabled(WINDOW_MINIMIZE); 485 GetController()->PerformActionIfEnabled(WINDOW_MINIMIZE);
486 EXPECT_TRUE(window_state->IsMinimized()); 486 EXPECT_TRUE(window_state->IsMinimized());
487 } 487 }
488 } 488 }
489 489
490 // Tests that when window docking is disabled, only snapping windows works. 490 // Tests that window snapping works.
491 TEST_F(AcceleratorControllerTest, WindowSnapWithoutDocking) { 491 TEST_F(AcceleratorControllerTest, TestRepeatedSnap) {
492 ASSERT_FALSE(ash::switches::DockedWindowsEnabled());
493 std::unique_ptr<aura::Window> window( 492 std::unique_ptr<aura::Window> window(
494 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20))); 493 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
495 494
496 wm::WindowState* window_state = wm::GetWindowState(window.get()); 495 wm::WindowState* window_state = wm::GetWindowState(window.get());
497 window_state->Activate(); 496 window_state->Activate();
498 497
499 // Snap right. 498 // Snap right.
500 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT); 499 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_RIGHT);
501 gfx::Rect normal_bounds = window_state->GetRestoreBoundsInParent(); 500 gfx::Rect normal_bounds = window_state->GetRestoreBoundsInParent();
502 gfx::Rect expected_bounds = wm::GetDefaultRightSnappedWindowBoundsInParent( 501 gfx::Rect expected_bounds = wm::GetDefaultRightSnappedWindowBoundsInParent(
503 WmWindow::Get(window.get())); 502 WmWindow::Get(window.get()));
504 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString()); 503 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString());
505 EXPECT_TRUE(window_state->IsSnapped()); 504 EXPECT_TRUE(window_state->IsSnapped());
506 // Snap right again ->> becomes normal. 505 // Snap right again ->> becomes normal.
507 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT); 506 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_RIGHT);
508 EXPECT_TRUE(window_state->IsNormalStateType()); 507 EXPECT_TRUE(window_state->IsNormalStateType());
509 EXPECT_FALSE(window_state->IsDocked());
510 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString()); 508 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString());
511 // Snap right. 509 // Snap right.
512 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT); 510 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_RIGHT);
513 EXPECT_TRUE(window_state->IsSnapped()); 511 EXPECT_TRUE(window_state->IsSnapped());
514 EXPECT_FALSE(window_state->IsDocked());
515 // Snap left. 512 // Snap left.
516 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); 513 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_LEFT);
517 EXPECT_TRUE(window_state->IsSnapped()); 514 EXPECT_TRUE(window_state->IsSnapped());
518 EXPECT_FALSE(window_state->IsDocked());
519 expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent( 515 expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent(
520 WmWindow::Get(window.get())); 516 WmWindow::Get(window.get()));
521 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString()); 517 EXPECT_EQ(expected_bounds.ToString(), window->bounds().ToString());
522 // Snap left again ->> becomes normal. 518 // Snap left again ->> becomes normal.
523 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT); 519 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_LEFT);
524 EXPECT_TRUE(window_state->IsNormalStateType()); 520 EXPECT_TRUE(window_state->IsNormalStateType());
525 EXPECT_FALSE(window_state->IsDocked());
526 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString()); 521 EXPECT_EQ(normal_bounds.ToString(), window->bounds().ToString());
527 } 522 }
528 523
529 TEST_F(AcceleratorControllerTest, RotateScreen) { 524 TEST_F(AcceleratorControllerTest, RotateScreen) {
530 // TODO: needs GetDisplayInfo http://crbug.com/622480. 525 // TODO: needs GetDisplayInfo http://crbug.com/622480.
531 if (WmShell::Get()->IsRunningInMash()) 526 if (WmShell::Get()->IsRunningInMash())
532 return; 527 return;
533 528
534 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); 529 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay();
535 display::Display::Rotation initial_rotation = 530 display::Display::Rotation initial_rotation =
536 GetActiveDisplayRotation(display.id()); 531 GetActiveDisplayRotation(display.id());
537 ui::test::EventGenerator& generator = GetEventGenerator(); 532 ui::test::EventGenerator& generator = GetEventGenerator();
538 generator.PressKey(ui::VKEY_BROWSER_REFRESH, 533 generator.PressKey(ui::VKEY_BROWSER_REFRESH,
539 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN); 534 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN);
540 generator.ReleaseKey(ui::VKEY_BROWSER_REFRESH, 535 generator.ReleaseKey(ui::VKEY_BROWSER_REFRESH,
541 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN); 536 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN);
542 display::Display::Rotation new_rotation = 537 display::Display::Rotation new_rotation =
543 GetActiveDisplayRotation(display.id()); 538 GetActiveDisplayRotation(display.id());
544 // |new_rotation| is determined by the AcceleratorControllerDelegate. 539 // |new_rotation| is determined by the AcceleratorControllerDelegate.
545 EXPECT_NE(initial_rotation, new_rotation); 540 EXPECT_NE(initial_rotation, new_rotation);
546 } 541 }
547 542
548 // Test class used for testing docked windows.
549 class EnabledDockedWindowsAcceleratorControllerTest
550 : public AcceleratorControllerTest {
551 public:
552 EnabledDockedWindowsAcceleratorControllerTest() = default;
553 ~EnabledDockedWindowsAcceleratorControllerTest() override = default;
554
555 void SetUp() override {
556 base::CommandLine::ForCurrentProcess()->AppendSwitch(
557 ash::switches::kAshEnableDockedWindows);
558 AcceleratorControllerTest::SetUp();
559 }
560
561 private:
562 DISALLOW_COPY_AND_ASSIGN(EnabledDockedWindowsAcceleratorControllerTest);
563 };
564
565 TEST_F(EnabledDockedWindowsAcceleratorControllerTest,
566 WindowSnapLeftDockLeftRestore) {
567 std::unique_ptr<aura::Window> window0(
568 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
569 std::unique_ptr<aura::Window> window1(
570 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
571 wm::WindowState* window1_state = wm::GetWindowState(window1.get());
572 window1_state->Activate();
573
574 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
575 gfx::Rect normal_bounds = window1_state->GetRestoreBoundsInParent();
576 gfx::Rect expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent(
577 WmWindow::Get(window1.get()));
578 EXPECT_EQ(expected_bounds.ToString(), window1->bounds().ToString());
579 EXPECT_TRUE(window1_state->IsSnapped());
580 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
581 EXPECT_FALSE(window1_state->IsNormalOrSnapped());
582 EXPECT_TRUE(window1_state->IsDocked());
583 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
584 EXPECT_FALSE(window1_state->IsDocked());
585 EXPECT_EQ(normal_bounds.ToString(), window1->bounds().ToString());
586 }
587
588 TEST_F(EnabledDockedWindowsAcceleratorControllerTest,
589 WindowSnapRightDockRightRestore) {
590 std::unique_ptr<aura::Window> window0(
591 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
592 std::unique_ptr<aura::Window> window1(
593 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
594
595 wm::WindowState* window1_state = wm::GetWindowState(window1.get());
596 window1_state->Activate();
597
598 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT);
599 gfx::Rect normal_bounds = window1_state->GetRestoreBoundsInParent();
600 gfx::Rect expected_bounds = wm::GetDefaultRightSnappedWindowBoundsInParent(
601 WmWindow::Get(window1.get()));
602 EXPECT_EQ(expected_bounds.ToString(), window1->bounds().ToString());
603 EXPECT_TRUE(window1_state->IsSnapped());
604 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT);
605 EXPECT_FALSE(window1_state->IsNormalOrSnapped());
606 EXPECT_TRUE(window1_state->IsDocked());
607 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT);
608 EXPECT_FALSE(window1_state->IsDocked());
609 EXPECT_EQ(normal_bounds.ToString(), window1->bounds().ToString());
610 }
611
612 TEST_F(EnabledDockedWindowsAcceleratorControllerTest,
613 WindowSnapLeftDockLeftSnapRight) {
614 std::unique_ptr<aura::Window> window0(
615 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
616 std::unique_ptr<aura::Window> window1(
617 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
618
619 wm::WindowState* window1_state = wm::GetWindowState(window1.get());
620 window1_state->Activate();
621
622 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
623 gfx::Rect expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent(
624 WmWindow::Get(window1.get()));
625 gfx::Rect expected_bounds2 = wm::GetDefaultRightSnappedWindowBoundsInParent(
626 WmWindow::Get(window1.get()));
627 EXPECT_EQ(expected_bounds.ToString(), window1->bounds().ToString());
628 EXPECT_TRUE(window1_state->IsSnapped());
629 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
630 EXPECT_FALSE(window1_state->IsNormalOrSnapped());
631 EXPECT_TRUE(window1_state->IsDocked());
632 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT);
633 EXPECT_FALSE(window1_state->IsDocked());
634 EXPECT_TRUE(window1_state->IsSnapped());
635 EXPECT_EQ(expected_bounds2.ToString(), window1->bounds().ToString());
636 }
637
638 TEST_F(EnabledDockedWindowsAcceleratorControllerTest,
639 WindowDockLeftMinimizeWindowWithRestore) {
640 std::unique_ptr<aura::Window> window0(
641 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
642 std::unique_ptr<aura::Window> window1(
643 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
644
645 wm::WindowState* window1_state = wm::GetWindowState(window1.get());
646 window1_state->Activate();
647
648 std::unique_ptr<aura::Window> window2(
649 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
650
651 wm::WindowState* window2_state = wm::GetWindowState(window2.get());
652
653 std::unique_ptr<aura::Window> window3(
654 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
655
656 wm::WindowState* window3_state = wm::GetWindowState(window3.get());
657 window3_state->Activate();
658
659 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
660 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
661 gfx::Rect window3_docked_bounds = window3->bounds();
662
663 window2_state->Activate();
664 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
665 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
666 window1_state->Activate();
667 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
668 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
669
670 EXPECT_TRUE(window3_state->IsDocked());
671 EXPECT_TRUE(window2_state->IsDocked());
672 EXPECT_TRUE(window1_state->IsDocked());
673 EXPECT_TRUE(window3_state->IsMinimized());
674
675 window1_state->Activate();
676 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
677 window2_state->Activate();
678 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
679 window3_state->Unminimize();
680 EXPECT_FALSE(window1_state->IsDocked());
681 EXPECT_FALSE(window2_state->IsDocked());
682 EXPECT_TRUE(window3_state->IsDocked());
683 EXPECT_EQ(window3_docked_bounds.ToString(), window3->bounds().ToString());
684 }
685
686 TEST_F(EnabledDockedWindowsAcceleratorControllerTest,
687 WindowPanelDockLeftDockRightRestore) {
688 // TODO: http://crbug.com/632209.
689 if (WmShell::Get()->IsRunningInMash())
690 return;
691 std::unique_ptr<aura::Window> window0(
692 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
693
694 std::unique_ptr<aura::Window> window(CreatePanel());
695 wm::WindowState* window_state = wm::GetWindowState(window.get());
696 window_state->Activate();
697
698 gfx::Rect window_restore_bounds2 = window->bounds();
699 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_LEFT);
700 gfx::Rect expected_bounds = wm::GetDefaultLeftSnappedWindowBoundsInParent(
701 WmWindow::Get(window.get()));
702 gfx::Rect window_restore_bounds = window_state->GetRestoreBoundsInScreen();
703 EXPECT_NE(expected_bounds.ToString(), window->bounds().ToString());
704 EXPECT_FALSE(window_state->IsSnapped());
705 EXPECT_FALSE(window_state->IsNormalOrSnapped());
706 EXPECT_TRUE(window_state->IsDocked());
707 window_state->Restore();
708 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT);
709 EXPECT_TRUE(window_state->IsDocked());
710 GetController()->PerformActionIfEnabled(WINDOW_CYCLE_SNAP_DOCK_RIGHT);
711 EXPECT_FALSE(window_state->IsDocked());
712 EXPECT_EQ(window_restore_bounds.ToString(),
713 window_restore_bounds2.ToString());
714 EXPECT_EQ(window_restore_bounds.ToString(), window->bounds().ToString());
715 }
716
717 TEST_F(EnabledDockedWindowsAcceleratorControllerTest, CenterWindowAccelerator) {
718 std::unique_ptr<aura::Window> window(
719 CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
720 wm::WindowState* window_state = wm::GetWindowState(window.get());
721 window_state->Activate();
722
723 // Center the window using accelerator.
724 GetController()->PerformActionIfEnabled(WINDOW_POSITION_CENTER);
725 gfx::Rect work_area = display::Screen::GetScreen()
726 ->GetDisplayNearestWindow(window.get())
727 .work_area();
728 gfx::Rect bounds = window->GetBoundsInScreen();
729 EXPECT_NEAR(bounds.x() - work_area.x(), work_area.right() - bounds.right(),
730 1);
731 EXPECT_NEAR(bounds.y() - work_area.y(), work_area.bottom() - bounds.bottom(),
732 1);
733
734 // Add the window to docked container and try to center it.
735 window->SetBounds(gfx::Rect(0, 0, 20, 20));
736 const wm::WMEvent event(wm::WM_EVENT_DOCK);
737 wm::GetWindowState(window.get())->OnWMEvent(&event);
738 EXPECT_EQ(kShellWindowId_DockedContainer, window->parent()->id());
739
740 gfx::Rect docked_bounds = window->GetBoundsInScreen();
741 GetController()->PerformActionIfEnabled(WINDOW_POSITION_CENTER);
742 // It should not get centered and should remain docked.
743 EXPECT_EQ(kShellWindowId_DockedContainer, window->parent()->id());
744 EXPECT_EQ(docked_bounds.ToString(), window->GetBoundsInScreen().ToString());
745 }
746
747 TEST_F(AcceleratorControllerTest, AutoRepeat) { 543 TEST_F(AcceleratorControllerTest, AutoRepeat) {
748 ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_CONTROL_DOWN); 544 ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_CONTROL_DOWN);
749 TestTarget target_a; 545 TestTarget target_a;
750 GetController()->Register({accelerator_a}, &target_a); 546 GetController()->Register({accelerator_a}, &target_a);
751 ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_CONTROL_DOWN); 547 ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_CONTROL_DOWN);
752 TestTarget target_b; 548 TestTarget target_b;
753 GetController()->Register({accelerator_b}, &target_b); 549 GetController()->Register({accelerator_b}, &target_b);
754 550
755 ui::test::EventGenerator& generator = GetEventGenerator(); 551 ui::test::EventGenerator& generator = GetEventGenerator();
756 generator.PressKey(ui::VKEY_A, ui::EF_CONTROL_DOWN); 552 generator.PressKey(ui::VKEY_A, ui::EF_CONTROL_DOWN);
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
1565 // Expect no notifications from the new accelerators. 1361 // Expect no notifications from the new accelerators.
1566 EXPECT_TRUE(IsMessageCenterEmpty()); 1362 EXPECT_TRUE(IsMessageCenterEmpty());
1567 1363
1568 // If the action is LOCK_SCREEN, we must reset the state by unlocking the 1364 // If the action is LOCK_SCREEN, we must reset the state by unlocking the
1569 // screen before we proceed testing the rest of accelerators. 1365 // screen before we proceed testing the rest of accelerators.
1570 ResetStateIfNeeded(); 1366 ResetStateIfNeeded();
1571 } 1367 }
1572 } 1368 }
1573 1369
1574 } // namespace ash 1370 } // namespace ash
OLDNEW
« no previous file with comments | « ash/BUILD.gn ('k') | ash/common/accelerators/accelerator_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698