Chromium Code Reviews| 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/shelf/shelf_layout_manager.h" | 5 #include "ash/shelf/shelf_layout_manager.h" |
| 6 | 6 |
| 7 #include "ash/accelerators/accelerator_controller.h" | 7 #include "ash/accelerators/accelerator_controller.h" |
| 8 #include "ash/accelerators/accelerator_table.h" | 8 #include "ash/accelerators/accelerator_table.h" |
| 9 #include "ash/focus_cycler.h" | 9 #include "ash/focus_cycler.h" |
| 10 #include "ash/public/cpp/config.h" | 10 #include "ash/public/cpp/config.h" |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 543 // Swipe-up. This should not change anything. | 543 // Swipe-up. This should not change anything. |
| 544 end = start - delta; | 544 end = start - delta; |
| 545 generator.GestureScrollSequenceWithCallback( | 545 generator.GestureScrollSequenceWithCallback( |
| 546 below_start, end, kTimeDelta, kNumScrollSteps, | 546 below_start, end, kTimeDelta, kNumScrollSteps, |
| 547 base::Bind(&ShelfDragCallback::ProcessScroll, | 547 base::Bind(&ShelfDragCallback::ProcessScroll, |
| 548 base::Unretained(&handler))); | 548 base::Unretained(&handler))); |
| 549 EXPECT_EQ(SHELF_HIDDEN, shelf->GetVisibilityState()); | 549 EXPECT_EQ(SHELF_HIDDEN, shelf->GetVisibilityState()); |
| 550 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 550 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
| 551 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); | 551 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); |
| 552 | 552 |
| 553 // Close actually, otherwise further event may be affected since widget | 553 // Minimize actually, otherwise further event may be affected since widget |
| 554 // is fullscreen status. | 554 // is fullscreen status. |
| 555 widget->Close(); | 555 widget->Minimize(); |
| 556 RunAllPendingInMessageLoop(); | 556 RunAllPendingInMessageLoop(); |
| 557 EXPECT_FALSE(layout_manager->HasVisibleWindow()); | |
| 557 | 558 |
| 558 // The shelf should be shown because there are no more visible windows. | 559 // The shelf should be shown because there are no more visible windows. |
| 559 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 560 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
| 560 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | 561 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); |
| 561 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 562 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
| 562 | 563 |
| 563 // Swipe-up to hide. This should have no effect because there are no visible | 564 // Swipe-up to hide. This should have no effect because there are no visible |
| 564 // windows. | 565 // windows. |
| 565 end = below_start - delta; | 566 end = below_start - delta; |
| 566 generator.GestureScrollSequenceWithCallback( | 567 generator.GestureScrollSequenceWithCallback( |
| 567 below_start, end, kTimeDelta, kNumScrollSteps, | 568 below_start, end, kTimeDelta, kNumScrollSteps, |
| 568 base::Bind(&ShelfDragCallback::ProcessScroll, | 569 base::Bind(&ShelfDragCallback::ProcessScroll, |
| 569 base::Unretained(&handler))); | 570 base::Unretained(&handler))); |
| 570 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 571 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
| 571 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | 572 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); |
| 572 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 573 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
| 574 EXPECT_EQ(shelf_shown.ToString(), | |
| 575 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | |
| 576 | |
| 577 // Swipe-down to hide. This should have no effect because there are no visible | |
| 578 // windows. | |
| 579 end = start + delta; | |
| 580 generator.GestureScrollSequenceWithCallback( | |
| 581 start, end, kTimeDelta, kNumScrollSteps, | |
| 582 base::Bind(&ShelfDragCallback::ProcessScroll, | |
| 583 base::Unretained(&handler))); | |
| 584 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | |
| 585 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | |
| 586 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | |
| 587 EXPECT_EQ(shelf_shown.ToString(), | |
| 588 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | |
| 589 | |
| 590 widget->Restore(); | |
| 591 RunAllPendingInMessageLoop(); | |
| 592 EXPECT_TRUE(layout_manager->HasVisibleWindow()); | |
| 593 | |
| 594 // Swipe up on the shelf. This should show the shelf and disable auto-hide | |
| 595 // since there is one visible window. | |
| 596 end = below_start - delta; | |
| 597 generator.GestureScrollSequenceWithCallback( | |
| 598 below_start, end, kTimeDelta, kNumScrollSteps, | |
| 599 base::Bind(&ShelfDragCallback::ProcessScroll, | |
| 600 base::Unretained(&handler))); | |
| 601 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | |
| 602 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | |
| 603 | |
| 604 // Close the widget to make sure the swiping on the shelf will not take | |
| 605 // effect. | |
| 606 widget->Close(); | |
| 607 RunAllPendingInMessageLoop(); | |
| 608 EXPECT_FALSE(layout_manager->HasVisibleWindow()); | |
| 609 | |
| 610 // Swipe-up to hide. This should have no effect because there are no visible | |
| 611 // windows. | |
| 612 generator.GestureScrollSequenceWithCallback( | |
| 613 below_start, end, kTimeDelta, kNumScrollSteps, | |
| 614 base::Bind(&ShelfDragCallback::ProcessScroll, | |
| 615 base::Unretained(&handler))); | |
| 616 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | |
| 617 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | |
| 618 EXPECT_EQ(shelf_shown.ToString(), | |
| 619 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | |
| 620 | |
| 621 // Swipe-down to hide. This should have no effect because there are no visible | |
| 622 // windows. | |
|
xiaoyinh(OOO Sep 11-29)
2017/04/21 04:13:12
nit: EXPECT_FALSE(layout_manager->HasVisibleWindow
minch1
2017/04/21 16:42:42
No window opened after line 608. I think maybe the
| |
| 623 end = start + delta; | |
| 624 generator.GestureScrollSequenceWithCallback( | |
| 625 start, end, kTimeDelta, kNumScrollSteps, | |
| 626 base::Bind(&ShelfDragCallback::ProcessScroll, | |
| 627 base::Unretained(&handler))); | |
| 628 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | |
| 629 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | |
| 630 EXPECT_EQ(shelf_shown.ToString(), | |
| 631 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | |
| 573 } | 632 } |
| 574 | 633 |
| 575 // Makes sure SetVisible updates work area and widget appropriately. | 634 // Makes sure SetVisible updates work area and widget appropriately. |
| 576 TEST_F(ShelfLayoutManagerTest, SetVisible) { | 635 TEST_F(ShelfLayoutManagerTest, SetVisible) { |
| 577 ShelfWidget* shelf_widget = GetShelfWidget(); | 636 ShelfWidget* shelf_widget = GetShelfWidget(); |
| 578 ShelfLayoutManager* manager = shelf_widget->shelf_layout_manager(); | 637 ShelfLayoutManager* manager = shelf_widget->shelf_layout_manager(); |
| 579 // Force an initial layout. | 638 // Force an initial layout. |
| 580 manager->LayoutShelf(); | 639 manager->LayoutShelf(); |
| 581 EXPECT_EQ(SHELF_VISIBLE, manager->visibility_state()); | 640 EXPECT_EQ(SHELF_VISIBLE, manager->visibility_state()); |
| 582 | 641 |
| (...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1840 // Open keyboard in sticky mode. | 1899 // Open keyboard in sticky mode. |
| 1841 kb_controller->ShowKeyboard(true); | 1900 kb_controller->ShowKeyboard(true); |
| 1842 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); | 1901 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); |
| 1843 | 1902 |
| 1844 // Work area should be changed. | 1903 // Work area should be changed. |
| 1845 EXPECT_NE(orig_work_area, | 1904 EXPECT_NE(orig_work_area, |
| 1846 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); | 1905 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); |
| 1847 } | 1906 } |
| 1848 | 1907 |
| 1849 } // namespace ash | 1908 } // namespace ash |
| OLD | NEW |