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/ash_switches.h" | 9 #include "ash/ash_switches.h" |
10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 if (type == ui::ET_GESTURE_SCROLL_END) | 155 if (type == ui::ET_GESTURE_SCROLL_END) |
156 return; | 156 return; |
157 | 157 |
158 if (type == ui::ET_GESTURE_SCROLL_UPDATE) | 158 if (type == ui::ET_GESTURE_SCROLL_UPDATE) |
159 scroll_.Add(delta); | 159 scroll_.Add(delta); |
160 | 160 |
161 gfx::Rect shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); | 161 gfx::Rect shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); |
162 if (GetShelfLayoutManager()->IsHorizontalAlignment()) { | 162 if (GetShelfLayoutManager()->IsHorizontalAlignment()) { |
163 EXPECT_EQ(not_visible_bounds_.bottom(), shelf_bounds.bottom()); | 163 EXPECT_EQ(not_visible_bounds_.bottom(), shelf_bounds.bottom()); |
164 EXPECT_EQ(visible_bounds_.bottom(), shelf_bounds.bottom()); | 164 EXPECT_EQ(visible_bounds_.bottom(), shelf_bounds.bottom()); |
165 } else if (SHELF_ALIGNMENT_RIGHT == | 165 } else if (wm::SHELF_ALIGNMENT_RIGHT == |
166 GetShelfLayoutManager()->GetAlignment()){ | 166 GetShelfLayoutManager()->GetAlignment()) { |
167 EXPECT_EQ(not_visible_bounds_.right(), shelf_bounds.right()); | 167 EXPECT_EQ(not_visible_bounds_.right(), shelf_bounds.right()); |
168 EXPECT_EQ(visible_bounds_.right(), shelf_bounds.right()); | 168 EXPECT_EQ(visible_bounds_.right(), shelf_bounds.right()); |
169 } else if (SHELF_ALIGNMENT_LEFT == | 169 } else if (wm::SHELF_ALIGNMENT_LEFT == |
170 GetShelfLayoutManager()->GetAlignment()) { | 170 GetShelfLayoutManager()->GetAlignment()) { |
171 EXPECT_EQ(not_visible_bounds_.x(), shelf_bounds.x()); | 171 EXPECT_EQ(not_visible_bounds_.x(), shelf_bounds.x()); |
172 EXPECT_EQ(visible_bounds_.x(), shelf_bounds.x()); | 172 EXPECT_EQ(visible_bounds_.x(), shelf_bounds.x()); |
173 } | 173 } |
174 | 174 |
175 // if the shelf is being dimmed test dimmer bounds as well. | 175 // if the shelf is being dimmed test dimmer bounds as well. |
176 if (GetShelfWidget()->GetDimsShelf()) | 176 if (GetShelfWidget()->GetDimsShelf()) |
177 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(), | 177 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(), |
178 GetShelfWidget()->GetDimmerBoundsForTest()); | 178 GetShelfWidget()->GetDimmerBoundsForTest()); |
179 | 179 |
180 // The shelf should never be smaller than the hidden state. | 180 // The shelf should never be smaller than the hidden state. |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 end, | 474 end, |
475 start, | 475 start, |
476 kTimeDelta, | 476 kTimeDelta, |
477 kNumScrollSteps, | 477 kNumScrollSteps, |
478 base::Bind(&ShelfDragCallback::ProcessScroll, | 478 base::Bind(&ShelfDragCallback::ProcessScroll, |
479 base::Unretained(&handler))); | 479 base::Unretained(&handler))); |
480 | 480 |
481 // Swipe down very little. It shouldn't change any state. | 481 // Swipe down very little. It shouldn't change any state. |
482 if (GetShelfLayoutManager()->IsHorizontalAlignment()) | 482 if (GetShelfLayoutManager()->IsHorizontalAlignment()) |
483 end.set_y(start.y() + shelf_shown.height() * 3 / 10); | 483 end.set_y(start.y() + shelf_shown.height() * 3 / 10); |
484 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) | 484 else if (wm::SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) |
485 end.set_x(start.x() - shelf_shown.width() * 3 / 10); | 485 end.set_x(start.x() - shelf_shown.width() * 3 / 10); |
486 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) | 486 else if (wm::SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) |
487 end.set_x(start.x() + shelf_shown.width() * 3 / 10); | 487 end.set_x(start.x() + shelf_shown.width() * 3 / 10); |
488 generator.GestureScrollSequence(start, end, kTimeDelta, 5); | 488 generator.GestureScrollSequence(start, end, kTimeDelta, 5); |
489 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 489 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
490 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 490 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
491 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 491 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
492 EXPECT_EQ(shelf_shown.ToString(), | 492 EXPECT_EQ(shelf_shown.ToString(), |
493 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 493 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
494 | 494 |
495 // Swipe down again to hide. | 495 // Swipe down again to hide. |
496 end = start + delta; | 496 end = start + delta; |
497 generator.GestureScrollSequenceWithCallback( | 497 generator.GestureScrollSequenceWithCallback( |
498 start, | 498 start, |
499 end, | 499 end, |
500 kTimeDelta, | 500 kTimeDelta, |
501 kNumScrollSteps, | 501 kNumScrollSteps, |
502 base::Bind(&ShelfDragCallback::ProcessScroll, | 502 base::Bind(&ShelfDragCallback::ProcessScroll, |
503 base::Unretained(&handler))); | 503 base::Unretained(&handler))); |
504 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 504 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
505 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 505 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
506 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 506 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
507 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); | 507 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); |
508 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); | 508 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); |
509 EXPECT_EQ(shelf_hidden.ToString(), | 509 EXPECT_EQ(shelf_hidden.ToString(), |
510 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 510 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
511 | 511 |
512 // Swipe up in extended hit region to show it. | 512 // Swipe up in extended hit region to show it. |
513 gfx::Point extended_start = start; | 513 gfx::Point extended_start = start; |
514 if (GetShelfLayoutManager()->IsHorizontalAlignment()) | 514 if (GetShelfLayoutManager()->IsHorizontalAlignment()) |
515 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1); | 515 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1); |
516 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) | 516 else if (wm::SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) |
517 extended_start.set_x( | 517 extended_start.set_x( |
518 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); | 518 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); |
519 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) | 519 else if (wm::SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) |
520 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); | 520 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); |
521 end = extended_start - delta; | 521 end = extended_start - delta; |
522 generator.GestureScrollSequenceWithCallback( | 522 generator.GestureScrollSequenceWithCallback( |
523 extended_start, | 523 extended_start, |
524 end, | 524 end, |
525 kTimeDelta, | 525 kTimeDelta, |
526 kNumScrollSteps, | 526 kNumScrollSteps, |
527 base::Bind(&ShelfDragCallback::ProcessScroll, | 527 base::Bind(&ShelfDragCallback::ProcessScroll, |
528 base::Unretained(&handler))); | 528 base::Unretained(&handler))); |
529 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 529 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
563 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 563 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
564 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 564 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
565 EXPECT_EQ(shelf_hidden.ToString(), | 565 EXPECT_EQ(shelf_hidden.ToString(), |
566 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 566 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
567 | 567 |
568 // Swipe up from below the shelf where a bezel would be, this should show the | 568 // Swipe up from below the shelf where a bezel would be, this should show the |
569 // shelf. | 569 // shelf. |
570 gfx::Point below_start = start; | 570 gfx::Point below_start = start; |
571 if (GetShelfLayoutManager()->IsHorizontalAlignment()) | 571 if (GetShelfLayoutManager()->IsHorizontalAlignment()) |
572 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); | 572 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); |
573 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) | 573 else if (wm::SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) |
574 below_start.set_x( | 574 below_start.set_x( |
575 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); | 575 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); |
576 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) | 576 else if (wm::SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) |
577 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); | 577 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); |
578 end = below_start - delta; | 578 end = below_start - delta; |
579 generator.GestureScrollSequence( | 579 generator.GestureScrollSequence( |
580 below_start, end, kTimeDelta, kNumScrollSteps); | 580 below_start, end, kTimeDelta, kNumScrollSteps); |
581 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 581 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
582 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 582 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
583 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 583 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
584 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), | 584 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), |
585 GetShelfWidget()->GetWindowBoundsInScreen()); | 585 GetShelfWidget()->GetWindowBoundsInScreen()); |
586 EXPECT_EQ(shelf_shown.ToString(), | 586 EXPECT_EQ(shelf_shown.ToString(), |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
893 // boundary between the primary and the secondary display. | 893 // boundary between the primary and the secondary display. |
894 TEST_F(ShelfLayoutManagerTest, AutoHideShelfOnScreenBoundary) { | 894 TEST_F(ShelfLayoutManagerTest, AutoHideShelfOnScreenBoundary) { |
895 if (!SupportsMultipleDisplays()) | 895 if (!SupportsMultipleDisplays()) |
896 return; | 896 return; |
897 | 897 |
898 UpdateDisplay("800x600,800x600"); | 898 UpdateDisplay("800x600,800x600"); |
899 Shell::GetInstance()->display_manager()->SetLayoutForCurrentDisplays( | 899 Shell::GetInstance()->display_manager()->SetLayoutForCurrentDisplays( |
900 test::CreateDisplayLayout(display::DisplayPlacement::RIGHT, 0)); | 900 test::CreateDisplayLayout(display::DisplayPlacement::RIGHT, 0)); |
901 // Put the primary monitor's shelf on the display boundary. | 901 // Put the primary monitor's shelf on the display boundary. |
902 ShelfLayoutManager* shelf = GetShelfLayoutManager(); | 902 ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
903 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); | 903 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); |
904 | 904 |
905 // Create a window because the shelf is always shown when no windows are | 905 // Create a window because the shelf is always shown when no windows are |
906 // visible. | 906 // visible. |
907 CreateTestWidget(); | 907 CreateTestWidget(); |
908 | 908 |
909 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); | 909 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); |
910 ASSERT_EQ(root_windows[0], | 910 ASSERT_EQ(root_windows[0], |
911 GetShelfWidget()->GetNativeWindow()->GetRootWindow()); | 911 GetShelfWidget()->GetNativeWindow()->GetRootWindow()); |
912 | 912 |
913 shelf->SetAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 913 shelf->SetAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1649 } | 1649 } |
1650 | 1650 |
1651 | 1651 |
1652 #if defined(OS_WIN) | 1652 #if defined(OS_WIN) |
1653 // RootWindow and Display can't resize on Windows Ash. http://crbug.com/165962 | 1653 // RootWindow and Display can't resize on Windows Ash. http://crbug.com/165962 |
1654 #define MAYBE_SetAlignment DISABLED_SetAlignment | 1654 #define MAYBE_SetAlignment DISABLED_SetAlignment |
1655 #else | 1655 #else |
1656 #define MAYBE_SetAlignment SetAlignment | 1656 #define MAYBE_SetAlignment SetAlignment |
1657 #endif | 1657 #endif |
1658 | 1658 |
1659 // Tests SHELF_ALIGNMENT_(LEFT, RIGHT). | 1659 // Tests wm::SHELF_ALIGNMENT_(LEFT, RIGHT). |
1660 TEST_F(ShelfLayoutManagerTest, MAYBE_SetAlignment) { | 1660 TEST_F(ShelfLayoutManagerTest, MAYBE_SetAlignment) { |
1661 ShelfLayoutManager* shelf = GetShelfLayoutManager(); | 1661 ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
1662 // Force an initial layout. | 1662 // Force an initial layout. |
1663 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1663 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
1664 shelf->LayoutShelf(); | 1664 shelf->LayoutShelf(); |
1665 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 1665 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
1666 | 1666 |
1667 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); | 1667 shelf->SetAlignment(wm::SHELF_ALIGNMENT_LEFT); |
1668 gfx::Rect shelf_bounds( | 1668 gfx::Rect shelf_bounds( |
1669 GetShelfWidget()->GetWindowBoundsInScreen()); | 1669 GetShelfWidget()->GetWindowBoundsInScreen()); |
1670 const gfx::Screen* screen = gfx::Screen::GetScreen(); | 1670 const gfx::Screen* screen = gfx::Screen::GetScreen(); |
1671 gfx::Display display = | 1671 gfx::Display display = |
1672 screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | 1672 screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); |
1673 ASSERT_NE(-1, display.id()); | 1673 ASSERT_NE(-1, display.id()); |
1674 EXPECT_EQ(shelf->GetIdealBounds().width(), | 1674 EXPECT_EQ(shelf->GetIdealBounds().width(), |
1675 display.GetWorkAreaInsets().left()); | 1675 display.GetWorkAreaInsets().left()); |
1676 EXPECT_GE( | 1676 EXPECT_GE( |
1677 shelf_bounds.width(), | 1677 shelf_bounds.width(), |
1678 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); | 1678 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); |
1679 EXPECT_EQ(SHELF_ALIGNMENT_LEFT, GetSystemTray()->shelf_alignment()); | 1679 EXPECT_EQ(wm::SHELF_ALIGNMENT_LEFT, GetSystemTray()->shelf_alignment()); |
1680 StatusAreaWidget* status_area_widget = GetShelfWidget()->status_area_widget(); | 1680 StatusAreaWidget* status_area_widget = GetShelfWidget()->status_area_widget(); |
1681 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen()); | 1681 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen()); |
1682 EXPECT_GE(status_bounds.width(), | 1682 EXPECT_GE(status_bounds.width(), |
1683 status_area_widget->GetContentsView()->GetPreferredSize().width()); | 1683 status_area_widget->GetContentsView()->GetPreferredSize().width()); |
1684 EXPECT_EQ(shelf->GetIdealBounds().width(), | 1684 EXPECT_EQ(shelf->GetIdealBounds().width(), |
1685 display.GetWorkAreaInsets().left()); | 1685 display.GetWorkAreaInsets().left()); |
1686 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); | 1686 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
1687 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); | 1687 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); |
1688 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); | 1688 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); |
1689 EXPECT_EQ(display.bounds().x(), shelf_bounds.x()); | 1689 EXPECT_EQ(display.bounds().x(), shelf_bounds.x()); |
1690 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); | 1690 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); |
1691 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); | 1691 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); |
1692 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 1692 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
1693 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | 1693 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); |
1694 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, | 1694 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, |
1695 display.GetWorkAreaInsets().left()); | 1695 display.GetWorkAreaInsets().left()); |
1696 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, display.work_area().x()); | 1696 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, display.work_area().x()); |
1697 | 1697 |
1698 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1698 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
1699 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); | 1699 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); |
1700 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | 1700 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); |
1701 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); | 1701 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); |
1702 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | 1702 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); |
1703 ASSERT_NE(-1, display.id()); | 1703 ASSERT_NE(-1, display.id()); |
1704 EXPECT_EQ(shelf->GetIdealBounds().width(), | 1704 EXPECT_EQ(shelf->GetIdealBounds().width(), |
1705 display.GetWorkAreaInsets().right()); | 1705 display.GetWorkAreaInsets().right()); |
1706 EXPECT_GE(shelf_bounds.width(), | 1706 EXPECT_GE(shelf_bounds.width(), |
1707 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); | 1707 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); |
1708 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, GetSystemTray()->shelf_alignment()); | 1708 EXPECT_EQ(wm::SHELF_ALIGNMENT_RIGHT, GetSystemTray()->shelf_alignment()); |
1709 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); | 1709 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); |
1710 EXPECT_GE(status_bounds.width(), | 1710 EXPECT_GE(status_bounds.width(), |
1711 status_area_widget->GetContentsView()->GetPreferredSize().width()); | 1711 status_area_widget->GetContentsView()->GetPreferredSize().width()); |
1712 EXPECT_EQ(shelf->GetIdealBounds().width(), | 1712 EXPECT_EQ(shelf->GetIdealBounds().width(), |
1713 display.GetWorkAreaInsets().right()); | 1713 display.GetWorkAreaInsets().right()); |
1714 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); | 1714 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
1715 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); | 1715 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); |
1716 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); | 1716 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); |
1717 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); | 1717 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); |
1718 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); | 1718 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1853 ui::GestureConfiguration::GetInstance() | 1853 ui::GestureConfiguration::GetInstance() |
1854 ->set_max_touch_move_in_pixels_for_click(0); | 1854 ->set_max_touch_move_in_pixels_for_click(0); |
1855 ShelfLayoutManager* shelf = GetShelfLayoutManager(); | 1855 ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
1856 { | 1856 { |
1857 SCOPED_TRACE("BOTTOM"); | 1857 SCOPED_TRACE("BOTTOM"); |
1858 RunGestureDragTests(gfx::Vector2d(0, 120)); | 1858 RunGestureDragTests(gfx::Vector2d(0, 120)); |
1859 } | 1859 } |
1860 | 1860 |
1861 { | 1861 { |
1862 SCOPED_TRACE("LEFT"); | 1862 SCOPED_TRACE("LEFT"); |
1863 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); | 1863 shelf->SetAlignment(wm::SHELF_ALIGNMENT_LEFT); |
1864 RunGestureDragTests(gfx::Vector2d(-120, 0)); | 1864 RunGestureDragTests(gfx::Vector2d(-120, 0)); |
1865 } | 1865 } |
1866 | 1866 |
1867 { | 1867 { |
1868 SCOPED_TRACE("RIGHT"); | 1868 SCOPED_TRACE("RIGHT"); |
1869 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); | 1869 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); |
1870 RunGestureDragTests(gfx::Vector2d(120, 0)); | 1870 RunGestureDragTests(gfx::Vector2d(120, 0)); |
1871 } | 1871 } |
1872 } | 1872 } |
1873 | 1873 |
1874 TEST_F(ShelfLayoutManagerTest, WindowVisibilityDisablesAutoHide) { | 1874 TEST_F(ShelfLayoutManagerTest, WindowVisibilityDisablesAutoHide) { |
1875 if (!SupportsMultipleDisplays()) | 1875 if (!SupportsMultipleDisplays()) |
1876 return; | 1876 return; |
1877 | 1877 |
1878 UpdateDisplay("800x600,800x600"); | 1878 UpdateDisplay("800x600,800x600"); |
1879 ShelfLayoutManager* shelf = GetShelfLayoutManager(); | 1879 ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2135 EXPECT_TRUE(shelf->IsVisible()); | 2135 EXPECT_TRUE(shelf->IsVisible()); |
2136 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); | 2136 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); |
2137 } else { | 2137 } else { |
2138 EXPECT_FALSE(shelf->IsVisible()); | 2138 EXPECT_FALSE(shelf->IsVisible()); |
2139 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2139 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2140 } | 2140 } |
2141 } | 2141 } |
2142 } | 2142 } |
2143 | 2143 |
2144 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColor) { | 2144 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColor) { |
2145 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2145 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, |
| 2146 GetShelfWidget()->GetBackgroundType()); |
2146 | 2147 |
2147 std::unique_ptr<aura::Window> w1(CreateTestWindow()); | 2148 std::unique_ptr<aura::Window> w1(CreateTestWindow()); |
2148 w1->Show(); | 2149 w1->Show(); |
2149 wm::ActivateWindow(w1.get()); | 2150 wm::ActivateWindow(w1.get()); |
2150 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2151 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, |
| 2152 GetShelfWidget()->GetBackgroundType()); |
2151 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2153 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
2152 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); | 2154 EXPECT_EQ(wm::SHELF_BACKGROUND_MAXIMIZED, |
| 2155 GetShelfWidget()->GetBackgroundType()); |
2153 | 2156 |
2154 std::unique_ptr<aura::Window> w2(CreateTestWindow()); | 2157 std::unique_ptr<aura::Window> w2(CreateTestWindow()); |
2155 w2->Show(); | 2158 w2->Show(); |
2156 wm::ActivateWindow(w2.get()); | 2159 wm::ActivateWindow(w2.get()); |
2157 // Overlaps with shelf. | 2160 // Overlaps with shelf. |
2158 w2->SetBounds(GetShelfLayoutManager()->GetIdealBounds()); | 2161 w2->SetBounds(GetShelfLayoutManager()->GetIdealBounds()); |
2159 | 2162 |
2160 // Still background is 'maximized'. | 2163 // Still background is 'maximized'. |
2161 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); | 2164 EXPECT_EQ(wm::SHELF_BACKGROUND_MAXIMIZED, |
| 2165 GetShelfWidget()->GetBackgroundType()); |
2162 | 2166 |
2163 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); | 2167 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); |
2164 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); | 2168 EXPECT_EQ(wm::SHELF_BACKGROUND_OVERLAP, |
| 2169 GetShelfWidget()->GetBackgroundType()); |
2165 w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); | 2170 w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); |
2166 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2171 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, |
| 2172 GetShelfWidget()->GetBackgroundType()); |
2167 | 2173 |
2168 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2174 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
2169 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType()); | 2175 EXPECT_EQ(wm::SHELF_BACKGROUND_MAXIMIZED, |
| 2176 GetShelfWidget()->GetBackgroundType()); |
2170 w1.reset(); | 2177 w1.reset(); |
2171 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType()); | 2178 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, |
| 2179 GetShelfWidget()->GetBackgroundType()); |
2172 } | 2180 } |
2173 | 2181 |
2174 // Verify that the shelf doesn't have the opaque background if it's auto-hide | 2182 // Verify that the shelf doesn't have the opaque background if it's auto-hide |
2175 // status. | 2183 // status. |
2176 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColorAutoHide) { | 2184 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColorAutoHide) { |
2177 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget ()->GetBackgroundType()); | 2185 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, |
| 2186 GetShelfWidget()->GetBackgroundType()); |
2178 | 2187 |
2179 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 2188 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
2180 std::unique_ptr<aura::Window> w1(CreateTestWindow()); | 2189 std::unique_ptr<aura::Window> w1(CreateTestWindow()); |
2181 w1->Show(); | 2190 w1->Show(); |
2182 wm::ActivateWindow(w1.get()); | 2191 wm::ActivateWindow(w1.get()); |
2183 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); | 2192 EXPECT_EQ(wm::SHELF_BACKGROUND_OVERLAP, |
| 2193 GetShelfWidget()->GetBackgroundType()); |
2184 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 2194 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
2185 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType()); | 2195 EXPECT_EQ(wm::SHELF_BACKGROUND_OVERLAP, |
| 2196 GetShelfWidget()->GetBackgroundType()); |
2186 } | 2197 } |
2187 | 2198 |
2188 #if defined(OS_CHROMEOS) | 2199 #if defined(OS_CHROMEOS) |
2189 #define MAYBE_StatusAreaHitBoxCoversEdge StatusAreaHitBoxCoversEdge | 2200 #define MAYBE_StatusAreaHitBoxCoversEdge StatusAreaHitBoxCoversEdge |
2190 #else | 2201 #else |
2191 #define MAYBE_StatusAreaHitBoxCoversEdge DISABLED_StatusAreaHitBoxCoversEdge | 2202 #define MAYBE_StatusAreaHitBoxCoversEdge DISABLED_StatusAreaHitBoxCoversEdge |
2192 #endif | 2203 #endif |
2193 | 2204 |
2194 // Verify the hit bounds of the status area extend to the edge of the shelf. | 2205 // Verify the hit bounds of the status area extend to the edge of the shelf. |
2195 TEST_F(ShelfLayoutManagerTest, MAYBE_StatusAreaHitBoxCoversEdge) { | 2206 TEST_F(ShelfLayoutManagerTest, MAYBE_StatusAreaHitBoxCoversEdge) { |
2196 UpdateDisplay("400x400"); | 2207 UpdateDisplay("400x400"); |
2197 ShelfLayoutManager* shelf = GetShelfLayoutManager(); | 2208 ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
2198 StatusAreaWidget* status_area_widget = | 2209 StatusAreaWidget* status_area_widget = |
2199 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); | 2210 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); |
2200 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); | 2211 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); |
2201 generator.MoveMouseTo(399,399); | 2212 generator.MoveMouseTo(399,399); |
2202 | 2213 |
2203 // Test bottom right pixel for bottom alignment. | 2214 // Test bottom right pixel for bottom alignment. |
2204 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2215 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2205 generator.ClickLeftButton(); | 2216 generator.ClickLeftButton(); |
2206 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); | 2217 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); |
2207 generator.ClickLeftButton(); | 2218 generator.ClickLeftButton(); |
2208 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2219 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2209 | 2220 |
2210 // Test bottom right pixel for right alignment. | 2221 // Test bottom right pixel for right alignment. |
2211 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); | 2222 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); |
2212 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2223 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2213 generator.ClickLeftButton(); | 2224 generator.ClickLeftButton(); |
2214 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); | 2225 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); |
2215 generator.ClickLeftButton(); | 2226 generator.ClickLeftButton(); |
2216 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2227 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2217 | 2228 |
2218 // Test bottom left pixel for left alignment. | 2229 // Test bottom left pixel for left alignment. |
2219 generator.MoveMouseTo(0, 399); | 2230 generator.MoveMouseTo(0, 399); |
2220 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); | 2231 shelf->SetAlignment(wm::SHELF_ALIGNMENT_LEFT); |
2221 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2232 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2222 generator.ClickLeftButton(); | 2233 generator.ClickLeftButton(); |
2223 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); | 2234 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); |
2224 generator.ClickLeftButton(); | 2235 generator.ClickLeftButton(); |
2225 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2236 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2226 } | 2237 } |
2227 | 2238 |
2228 // Tests that when the auto-hide behaviour is changed during an animation the | 2239 // Tests that when the auto-hide behaviour is changed during an animation the |
2229 // target bounds are updated to reflect the new state. | 2240 // target bounds are updated to reflect the new state. |
2230 TEST_F(ShelfLayoutManagerTest, | 2241 TEST_F(ShelfLayoutManagerTest, |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2280 StatusAreaWidget* status_area_widget = | 2291 StatusAreaWidget* status_area_widget = |
2281 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); | 2292 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); |
2282 EXPECT_TRUE(status_area_widget->IsVisible()); | 2293 EXPECT_TRUE(status_area_widget->IsVisible()); |
2283 // Shelf should be in the first display's area. | 2294 // Shelf should be in the first display's area. |
2284 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); | 2295 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); |
2285 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); | 2296 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); |
2286 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); | 2297 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); |
2287 } | 2298 } |
2288 | 2299 |
2289 } // namespace ash | 2300 } // namespace ash |
OLD | NEW |