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

Side by Side Diff: ash/shelf/shelf_layout_manager_unittest.cc

Issue 2036353002: mash: Move ash/common/wm/shelf to ash/common/shelf (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase again Created 4 years, 6 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/shelf/shelf_layout_manager_observer.h ('k') | ash/shelf/shelf_locking_manager.h » ('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/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/common/shell_window_ids.h" 10 #include "ash/common/shell_window_ids.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 if (type == ui::ET_GESTURE_SCROLL_END) 159 if (type == ui::ET_GESTURE_SCROLL_END)
160 return; 160 return;
161 161
162 if (type == ui::ET_GESTURE_SCROLL_UPDATE) 162 if (type == ui::ET_GESTURE_SCROLL_UPDATE)
163 scroll_.Add(delta); 163 scroll_.Add(delta);
164 164
165 gfx::Rect shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); 165 gfx::Rect shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen();
166 if (GetShelfLayoutManager()->IsHorizontalAlignment()) { 166 if (GetShelfLayoutManager()->IsHorizontalAlignment()) {
167 EXPECT_EQ(not_visible_bounds_.bottom(), shelf_bounds.bottom()); 167 EXPECT_EQ(not_visible_bounds_.bottom(), shelf_bounds.bottom());
168 EXPECT_EQ(visible_bounds_.bottom(), shelf_bounds.bottom()); 168 EXPECT_EQ(visible_bounds_.bottom(), shelf_bounds.bottom());
169 } else if (wm::SHELF_ALIGNMENT_RIGHT == 169 } else if (SHELF_ALIGNMENT_RIGHT ==
170 GetShelfLayoutManager()->GetAlignment()) { 170 GetShelfLayoutManager()->GetAlignment()) {
171 EXPECT_EQ(not_visible_bounds_.right(), shelf_bounds.right()); 171 EXPECT_EQ(not_visible_bounds_.right(), shelf_bounds.right());
172 EXPECT_EQ(visible_bounds_.right(), shelf_bounds.right()); 172 EXPECT_EQ(visible_bounds_.right(), shelf_bounds.right());
173 } else if (wm::SHELF_ALIGNMENT_LEFT == 173 } else if (SHELF_ALIGNMENT_LEFT ==
174 GetShelfLayoutManager()->GetAlignment()) { 174 GetShelfLayoutManager()->GetAlignment()) {
175 EXPECT_EQ(not_visible_bounds_.x(), shelf_bounds.x()); 175 EXPECT_EQ(not_visible_bounds_.x(), shelf_bounds.x());
176 EXPECT_EQ(visible_bounds_.x(), shelf_bounds.x()); 176 EXPECT_EQ(visible_bounds_.x(), shelf_bounds.x());
177 } 177 }
178 178
179 // if the shelf is being dimmed test dimmer bounds as well. 179 // if the shelf is being dimmed test dimmer bounds as well.
180 if (GetShelfWidget()->GetDimsShelf()) 180 if (GetShelfWidget()->GetDimsShelf())
181 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(), 181 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(),
182 GetShelfWidget()->GetDimmerBoundsForTest()); 182 GetShelfWidget()->GetDimmerBoundsForTest());
183 183
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 end, 481 end,
482 start, 482 start,
483 kTimeDelta, 483 kTimeDelta,
484 kNumScrollSteps, 484 kNumScrollSteps,
485 base::Bind(&ShelfDragCallback::ProcessScroll, 485 base::Bind(&ShelfDragCallback::ProcessScroll,
486 base::Unretained(&handler))); 486 base::Unretained(&handler)));
487 487
488 // Swipe down very little. It shouldn't change any state. 488 // Swipe down very little. It shouldn't change any state.
489 if (GetShelfLayoutManager()->IsHorizontalAlignment()) 489 if (GetShelfLayoutManager()->IsHorizontalAlignment())
490 end.set_y(start.y() + shelf_shown.height() * 3 / 10); 490 end.set_y(start.y() + shelf_shown.height() * 3 / 10);
491 else if (wm::SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) 491 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment())
492 end.set_x(start.x() - shelf_shown.width() * 3 / 10); 492 end.set_x(start.x() - shelf_shown.width() * 3 / 10);
493 else if (wm::SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) 493 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment())
494 end.set_x(start.x() + shelf_shown.width() * 3 / 10); 494 end.set_x(start.x() + shelf_shown.width() * 3 / 10);
495 generator.GestureScrollSequence(start, end, kTimeDelta, 5); 495 generator.GestureScrollSequence(start, end, kTimeDelta, 5);
496 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); 496 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState());
497 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 497 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
498 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); 498 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString());
499 EXPECT_EQ(shelf_shown.ToString(), 499 EXPECT_EQ(shelf_shown.ToString(),
500 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 500 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
501 501
502 // Swipe down again to hide. 502 // Swipe down again to hide.
503 end = start + delta; 503 end = start + delta;
504 generator.GestureScrollSequenceWithCallback( 504 generator.GestureScrollSequenceWithCallback(
505 start, 505 start,
506 end, 506 end,
507 kTimeDelta, 507 kTimeDelta,
508 kNumScrollSteps, 508 kNumScrollSteps,
509 base::Bind(&ShelfDragCallback::ProcessScroll, 509 base::Bind(&ShelfDragCallback::ProcessScroll,
510 base::Unretained(&handler))); 510 base::Unretained(&handler)));
511 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); 511 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
512 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); 512 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState());
513 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 513 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
514 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); 514 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect());
515 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); 515 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString());
516 EXPECT_EQ(shelf_hidden.ToString(), 516 EXPECT_EQ(shelf_hidden.ToString(),
517 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 517 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
518 518
519 // Swipe up in extended hit region to show it. 519 // Swipe up in extended hit region to show it.
520 gfx::Point extended_start = start; 520 gfx::Point extended_start = start;
521 if (GetShelfLayoutManager()->IsHorizontalAlignment()) 521 if (GetShelfLayoutManager()->IsHorizontalAlignment())
522 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1); 522 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1);
523 else if (wm::SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) 523 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment())
524 extended_start.set_x( 524 extended_start.set_x(
525 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); 525 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1);
526 else if (wm::SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) 526 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment())
527 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); 527 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1);
528 end = extended_start - delta; 528 end = extended_start - delta;
529 generator.GestureScrollSequenceWithCallback( 529 generator.GestureScrollSequenceWithCallback(
530 extended_start, 530 extended_start,
531 end, 531 end,
532 kTimeDelta, 532 kTimeDelta,
533 kNumScrollSteps, 533 kNumScrollSteps,
534 base::Bind(&ShelfDragCallback::ProcessScroll, 534 base::Bind(&ShelfDragCallback::ProcessScroll,
535 base::Unretained(&handler))); 535 base::Unretained(&handler)));
536 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); 536 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); 570 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState());
571 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 571 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
572 EXPECT_EQ(shelf_hidden.ToString(), 572 EXPECT_EQ(shelf_hidden.ToString(),
573 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 573 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
574 574
575 // Swipe up from below the shelf where a bezel would be, this should show the 575 // Swipe up from below the shelf where a bezel would be, this should show the
576 // shelf. 576 // shelf.
577 gfx::Point below_start = start; 577 gfx::Point below_start = start;
578 if (GetShelfLayoutManager()->IsHorizontalAlignment()) 578 if (GetShelfLayoutManager()->IsHorizontalAlignment())
579 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); 579 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1);
580 else if (wm::SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) 580 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment())
581 below_start.set_x( 581 below_start.set_x(
582 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); 582 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1);
583 else if (wm::SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) 583 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment())
584 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); 584 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1);
585 end = below_start - delta; 585 end = below_start - delta;
586 generator.GestureScrollSequence( 586 generator.GestureScrollSequence(
587 below_start, end, kTimeDelta, kNumScrollSteps); 587 below_start, end, kTimeDelta, kNumScrollSteps);
588 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); 588 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState());
589 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 589 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
590 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); 590 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString());
591 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), 591 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(),
592 GetShelfWidget()->GetWindowBoundsInScreen()); 592 GetShelfWidget()->GetWindowBoundsInScreen());
593 EXPECT_EQ(shelf_shown.ToString(), 593 EXPECT_EQ(shelf_shown.ToString(),
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 // boundary between the primary and the secondary display. 906 // boundary between the primary and the secondary display.
907 TEST_F(ShelfLayoutManagerTest, AutoHideShelfOnScreenBoundary) { 907 TEST_F(ShelfLayoutManagerTest, AutoHideShelfOnScreenBoundary) {
908 if (!SupportsMultipleDisplays()) 908 if (!SupportsMultipleDisplays())
909 return; 909 return;
910 910
911 UpdateDisplay("800x600,800x600"); 911 UpdateDisplay("800x600,800x600");
912 Shell::GetInstance()->display_manager()->SetLayoutForCurrentDisplays( 912 Shell::GetInstance()->display_manager()->SetLayoutForCurrentDisplays(
913 test::CreateDisplayLayout(display::DisplayPlacement::RIGHT, 0)); 913 test::CreateDisplayLayout(display::DisplayPlacement::RIGHT, 0));
914 // Put the primary monitor's shelf on the display boundary. 914 // Put the primary monitor's shelf on the display boundary.
915 Shelf* shelf = GetShelf(); 915 Shelf* shelf = GetShelf();
916 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); 916 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT);
917 917
918 // Create a window because the shelf is always shown when no windows are 918 // Create a window because the shelf is always shown when no windows are
919 // visible. 919 // visible.
920 CreateTestWidget(); 920 CreateTestWidget();
921 921
922 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 922 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
923 ASSERT_EQ(root_windows[0], 923 ASSERT_EQ(root_windows[0],
924 GetShelfWidget()->GetNativeWindow()->GetRootWindow()); 924 GetShelfWidget()->GetNativeWindow()->GetRootWindow());
925 925
926 shelf->SetAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 926 shelf->SetAutoHideBehavior(ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
1661 } 1661 }
1662 1662
1663 1663
1664 #if defined(OS_WIN) 1664 #if defined(OS_WIN)
1665 // RootWindow and Display can't resize on Windows Ash. http://crbug.com/165962 1665 // RootWindow and Display can't resize on Windows Ash. http://crbug.com/165962
1666 #define MAYBE_SetAlignment DISABLED_SetAlignment 1666 #define MAYBE_SetAlignment DISABLED_SetAlignment
1667 #else 1667 #else
1668 #define MAYBE_SetAlignment SetAlignment 1668 #define MAYBE_SetAlignment SetAlignment
1669 #endif 1669 #endif
1670 1670
1671 // Tests wm::SHELF_ALIGNMENT_(LEFT, RIGHT). 1671 // Tests SHELF_ALIGNMENT_(LEFT, RIGHT).
1672 TEST_F(ShelfLayoutManagerTest, MAYBE_SetAlignment) { 1672 TEST_F(ShelfLayoutManagerTest, MAYBE_SetAlignment) {
1673 Shelf* shelf = GetShelf(); 1673 Shelf* shelf = GetShelf();
1674 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); 1674 ShelfLayoutManager* layout_manager = GetShelfLayoutManager();
1675 // Force an initial layout. 1675 // Force an initial layout.
1676 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 1676 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
1677 layout_manager->LayoutShelf(); 1677 layout_manager->LayoutShelf();
1678 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); 1678 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState());
1679 1679
1680 shelf->SetAlignment(wm::SHELF_ALIGNMENT_LEFT); 1680 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT);
1681 gfx::Rect shelf_bounds( 1681 gfx::Rect shelf_bounds(
1682 GetShelfWidget()->GetWindowBoundsInScreen()); 1682 GetShelfWidget()->GetWindowBoundsInScreen());
1683 const display::Screen* screen = display::Screen::GetScreen(); 1683 const display::Screen* screen = display::Screen::GetScreen();
1684 display::Display display = 1684 display::Display display =
1685 screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1685 screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1686 ASSERT_NE(-1, display.id()); 1686 ASSERT_NE(-1, display.id());
1687 EXPECT_EQ(layout_manager->GetIdealBounds().width(), 1687 EXPECT_EQ(layout_manager->GetIdealBounds().width(),
1688 display.GetWorkAreaInsets().left()); 1688 display.GetWorkAreaInsets().left());
1689 EXPECT_GE( 1689 EXPECT_GE(
1690 shelf_bounds.width(), 1690 shelf_bounds.width(),
1691 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); 1691 GetShelfWidget()->GetContentsView()->GetPreferredSize().width());
1692 EXPECT_EQ(wm::SHELF_ALIGNMENT_LEFT, GetSystemTray()->shelf_alignment()); 1692 EXPECT_EQ(SHELF_ALIGNMENT_LEFT, GetSystemTray()->shelf_alignment());
1693 StatusAreaWidget* status_area_widget = GetShelfWidget()->status_area_widget(); 1693 StatusAreaWidget* status_area_widget = GetShelfWidget()->status_area_widget();
1694 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen()); 1694 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen());
1695 EXPECT_GE(status_bounds.width(), 1695 EXPECT_GE(status_bounds.width(),
1696 status_area_widget->GetContentsView()->GetPreferredSize().width()); 1696 status_area_widget->GetContentsView()->GetPreferredSize().width());
1697 EXPECT_EQ(layout_manager->GetIdealBounds().width(), 1697 EXPECT_EQ(layout_manager->GetIdealBounds().width(),
1698 display.GetWorkAreaInsets().left()); 1698 display.GetWorkAreaInsets().left());
1699 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); 1699 EXPECT_EQ(0, display.GetWorkAreaInsets().top());
1700 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); 1700 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom());
1701 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); 1701 EXPECT_EQ(0, display.GetWorkAreaInsets().right());
1702 EXPECT_EQ(display.bounds().x(), shelf_bounds.x()); 1702 EXPECT_EQ(display.bounds().x(), shelf_bounds.x());
1703 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); 1703 EXPECT_EQ(display.bounds().y(), shelf_bounds.y());
1704 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); 1704 EXPECT_EQ(display.bounds().height(), shelf_bounds.height());
1705 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 1705 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
1706 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1706 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1707 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, 1707 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize,
1708 display.GetWorkAreaInsets().left()); 1708 display.GetWorkAreaInsets().left());
1709 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, display.work_area().x()); 1709 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, display.work_area().x());
1710 1710
1711 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 1711 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
1712 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); 1712 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT);
1713 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1713 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1714 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); 1714 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen();
1715 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1715 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1716 ASSERT_NE(-1, display.id()); 1716 ASSERT_NE(-1, display.id());
1717 EXPECT_EQ(layout_manager->GetIdealBounds().width(), 1717 EXPECT_EQ(layout_manager->GetIdealBounds().width(),
1718 display.GetWorkAreaInsets().right()); 1718 display.GetWorkAreaInsets().right());
1719 EXPECT_GE(shelf_bounds.width(), 1719 EXPECT_GE(shelf_bounds.width(),
1720 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); 1720 GetShelfWidget()->GetContentsView()->GetPreferredSize().width());
1721 EXPECT_EQ(wm::SHELF_ALIGNMENT_RIGHT, GetSystemTray()->shelf_alignment()); 1721 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, GetSystemTray()->shelf_alignment());
1722 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); 1722 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen());
1723 EXPECT_GE(status_bounds.width(), 1723 EXPECT_GE(status_bounds.width(),
1724 status_area_widget->GetContentsView()->GetPreferredSize().width()); 1724 status_area_widget->GetContentsView()->GetPreferredSize().width());
1725 EXPECT_EQ(layout_manager->GetIdealBounds().width(), 1725 EXPECT_EQ(layout_manager->GetIdealBounds().width(),
1726 display.GetWorkAreaInsets().right()); 1726 display.GetWorkAreaInsets().right());
1727 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); 1727 EXPECT_EQ(0, display.GetWorkAreaInsets().top());
1728 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); 1728 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom());
1729 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); 1729 EXPECT_EQ(0, display.GetWorkAreaInsets().left());
1730 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); 1730 EXPECT_EQ(display.work_area().right(), shelf_bounds.x());
1731 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); 1731 EXPECT_EQ(display.bounds().y(), shelf_bounds.y());
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
1860 #endif 1860 #endif
1861 1861
1862 TEST_F(ShelfLayoutManagerTest, MAYBE_GestureDrag) { 1862 TEST_F(ShelfLayoutManagerTest, MAYBE_GestureDrag) {
1863 // Slop is an implementation detail of gesture recognition, and complicates 1863 // Slop is an implementation detail of gesture recognition, and complicates
1864 // these tests. Ignore it. 1864 // these tests. Ignore it.
1865 ui::GestureConfiguration::GetInstance() 1865 ui::GestureConfiguration::GetInstance()
1866 ->set_max_touch_move_in_pixels_for_click(0); 1866 ->set_max_touch_move_in_pixels_for_click(0);
1867 Shelf* shelf = GetShelf(); 1867 Shelf* shelf = GetShelf();
1868 { 1868 {
1869 SCOPED_TRACE("BOTTOM"); 1869 SCOPED_TRACE("BOTTOM");
1870 shelf->SetAlignment(wm::SHELF_ALIGNMENT_BOTTOM); 1870 shelf->SetAlignment(SHELF_ALIGNMENT_BOTTOM);
1871 RunGestureDragTests(gfx::Vector2d(0, 120)); 1871 RunGestureDragTests(gfx::Vector2d(0, 120));
1872 } 1872 }
1873 1873
1874 { 1874 {
1875 SCOPED_TRACE("LEFT"); 1875 SCOPED_TRACE("LEFT");
1876 shelf->SetAlignment(wm::SHELF_ALIGNMENT_LEFT); 1876 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT);
1877 RunGestureDragTests(gfx::Vector2d(-120, 0)); 1877 RunGestureDragTests(gfx::Vector2d(-120, 0));
1878 } 1878 }
1879 1879
1880 { 1880 {
1881 SCOPED_TRACE("RIGHT"); 1881 SCOPED_TRACE("RIGHT");
1882 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); 1882 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT);
1883 RunGestureDragTests(gfx::Vector2d(120, 0)); 1883 RunGestureDragTests(gfx::Vector2d(120, 0));
1884 } 1884 }
1885 } 1885 }
1886 1886
1887 TEST_F(ShelfLayoutManagerTest, WindowVisibilityDisablesAutoHide) { 1887 TEST_F(ShelfLayoutManagerTest, WindowVisibilityDisablesAutoHide) {
1888 if (!SupportsMultipleDisplays()) 1888 if (!SupportsMultipleDisplays())
1889 return; 1889 return;
1890 1890
1891 UpdateDisplay("800x600,800x600"); 1891 UpdateDisplay("800x600,800x600");
1892 Shelf* shelf = GetShelf(); 1892 Shelf* shelf = GetShelf();
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 EXPECT_TRUE(layout_manager->IsVisible()); 2152 EXPECT_TRUE(layout_manager->IsVisible());
2153 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); 2153 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown());
2154 } else { 2154 } else {
2155 EXPECT_FALSE(layout_manager->IsVisible()); 2155 EXPECT_FALSE(layout_manager->IsVisible());
2156 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2156 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2157 } 2157 }
2158 } 2158 }
2159 } 2159 }
2160 2160
2161 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColor) { 2161 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColor) {
2162 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, 2162 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType());
2163 GetShelfWidget()->GetBackgroundType());
2164 2163
2165 std::unique_ptr<aura::Window> w1(CreateTestWindow()); 2164 std::unique_ptr<aura::Window> w1(CreateTestWindow());
2166 w1->Show(); 2165 w1->Show();
2167 wm::ActivateWindow(w1.get()); 2166 wm::ActivateWindow(w1.get());
2168 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, 2167 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType());
2169 GetShelfWidget()->GetBackgroundType());
2170 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); 2168 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
2171 EXPECT_EQ(wm::SHELF_BACKGROUND_MAXIMIZED, 2169 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType());
2172 GetShelfWidget()->GetBackgroundType());
2173 2170
2174 std::unique_ptr<aura::Window> w2(CreateTestWindow()); 2171 std::unique_ptr<aura::Window> w2(CreateTestWindow());
2175 w2->Show(); 2172 w2->Show();
2176 wm::ActivateWindow(w2.get()); 2173 wm::ActivateWindow(w2.get());
2177 // Overlaps with shelf. 2174 // Overlaps with shelf.
2178 w2->SetBounds(GetShelfLayoutManager()->GetIdealBounds()); 2175 w2->SetBounds(GetShelfLayoutManager()->GetIdealBounds());
2179 2176
2180 // Still background is 'maximized'. 2177 // Still background is 'maximized'.
2181 EXPECT_EQ(wm::SHELF_BACKGROUND_MAXIMIZED, 2178 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType());
2182 GetShelfWidget()->GetBackgroundType());
2183 2179
2184 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); 2180 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED);
2185 EXPECT_EQ(wm::SHELF_BACKGROUND_OVERLAP, 2181 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType());
2186 GetShelfWidget()->GetBackgroundType());
2187 w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED); 2182 w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED);
2188 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, 2183 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType());
2189 GetShelfWidget()->GetBackgroundType());
2190 2184
2191 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); 2185 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
2192 EXPECT_EQ(wm::SHELF_BACKGROUND_MAXIMIZED, 2186 EXPECT_EQ(SHELF_BACKGROUND_MAXIMIZED, GetShelfWidget()->GetBackgroundType());
2193 GetShelfWidget()->GetBackgroundType());
2194 w1.reset(); 2187 w1.reset();
2195 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, 2188 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType());
2196 GetShelfWidget()->GetBackgroundType());
2197 } 2189 }
2198 2190
2199 // Verify that the shelf doesn't have the opaque background if it's auto-hide 2191 // Verify that the shelf doesn't have the opaque background if it's auto-hide
2200 // status. 2192 // status.
2201 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColorAutoHide) { 2193 TEST_F(ShelfLayoutManagerTest, ShelfBackgroundColorAutoHide) {
2202 EXPECT_EQ(wm::SHELF_BACKGROUND_DEFAULT, 2194 EXPECT_EQ(SHELF_BACKGROUND_DEFAULT, GetShelfWidget()->GetBackgroundType());
2203 GetShelfWidget()->GetBackgroundType());
2204 2195
2205 GetShelf()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 2196 GetShelf()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
2206 std::unique_ptr<aura::Window> w1(CreateTestWindow()); 2197 std::unique_ptr<aura::Window> w1(CreateTestWindow());
2207 w1->Show(); 2198 w1->Show();
2208 wm::ActivateWindow(w1.get()); 2199 wm::ActivateWindow(w1.get());
2209 EXPECT_EQ(wm::SHELF_BACKGROUND_OVERLAP, 2200 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType());
2210 GetShelfWidget()->GetBackgroundType());
2211 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); 2201 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
2212 EXPECT_EQ(wm::SHELF_BACKGROUND_OVERLAP, 2202 EXPECT_EQ(SHELF_BACKGROUND_OVERLAP, GetShelfWidget()->GetBackgroundType());
2213 GetShelfWidget()->GetBackgroundType());
2214 } 2203 }
2215 2204
2216 #if defined(OS_CHROMEOS) 2205 #if defined(OS_CHROMEOS)
2217 #define MAYBE_StatusAreaHitBoxCoversEdge StatusAreaHitBoxCoversEdge 2206 #define MAYBE_StatusAreaHitBoxCoversEdge StatusAreaHitBoxCoversEdge
2218 #else 2207 #else
2219 #define MAYBE_StatusAreaHitBoxCoversEdge DISABLED_StatusAreaHitBoxCoversEdge 2208 #define MAYBE_StatusAreaHitBoxCoversEdge DISABLED_StatusAreaHitBoxCoversEdge
2220 #endif 2209 #endif
2221 2210
2222 // Verify the hit bounds of the status area extend to the edge of the shelf. 2211 // Verify the hit bounds of the status area extend to the edge of the shelf.
2223 TEST_F(ShelfLayoutManagerTest, MAYBE_StatusAreaHitBoxCoversEdge) { 2212 TEST_F(ShelfLayoutManagerTest, MAYBE_StatusAreaHitBoxCoversEdge) {
2224 UpdateDisplay("400x400"); 2213 UpdateDisplay("400x400");
2225 Shelf* shelf = GetShelf(); 2214 Shelf* shelf = GetShelf();
2226 StatusAreaWidget* status_area_widget = Shell::GetPrimaryRootWindowController() 2215 StatusAreaWidget* status_area_widget = Shell::GetPrimaryRootWindowController()
2227 ->shelf_widget() 2216 ->shelf_widget()
2228 ->status_area_widget(); 2217 ->status_area_widget();
2229 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); 2218 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
2230 generator.MoveMouseTo(399,399); 2219 generator.MoveMouseTo(399,399);
2231 2220
2232 // Test bottom right pixel for bottom alignment. 2221 // Test bottom right pixel for bottom alignment.
2233 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2222 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2234 generator.ClickLeftButton(); 2223 generator.ClickLeftButton();
2235 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); 2224 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown());
2236 generator.ClickLeftButton(); 2225 generator.ClickLeftButton();
2237 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2226 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2238 2227
2239 // Test bottom right pixel for right alignment. 2228 // Test bottom right pixel for right alignment.
2240 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); 2229 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT);
2241 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2230 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2242 generator.ClickLeftButton(); 2231 generator.ClickLeftButton();
2243 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); 2232 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown());
2244 generator.ClickLeftButton(); 2233 generator.ClickLeftButton();
2245 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2234 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2246 2235
2247 // Test bottom left pixel for left alignment. 2236 // Test bottom left pixel for left alignment.
2248 generator.MoveMouseTo(0, 399); 2237 generator.MoveMouseTo(0, 399);
2249 shelf->SetAlignment(wm::SHELF_ALIGNMENT_LEFT); 2238 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT);
2250 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2239 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2251 generator.ClickLeftButton(); 2240 generator.ClickLeftButton();
2252 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); 2241 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown());
2253 generator.ClickLeftButton(); 2242 generator.ClickLeftButton();
2254 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2243 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2255 } 2244 }
2256 2245
2257 // Tests that when the auto-hide behaviour is changed during an animation the 2246 // Tests that when the auto-hide behaviour is changed during an animation the
2258 // target bounds are updated to reflect the new state. 2247 // target bounds are updated to reflect the new state.
2259 TEST_F(ShelfLayoutManagerTest, 2248 TEST_F(ShelfLayoutManagerTest,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 ->shelf_widget() 2297 ->shelf_widget()
2309 ->status_area_widget(); 2298 ->status_area_widget();
2310 EXPECT_TRUE(status_area_widget->IsVisible()); 2299 EXPECT_TRUE(status_area_widget->IsVisible());
2311 // Shelf should be in the first display's area. 2300 // Shelf should be in the first display's area.
2312 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); 2301 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen());
2313 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); 2302 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds));
2314 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); 2303 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right());
2315 } 2304 }
2316 2305
2317 } // namespace ash 2306 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/shelf_layout_manager_observer.h ('k') | ash/shelf/shelf_locking_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698