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

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

Issue 1998933002: Update shelf spacing in Chrome OS according to the MD specs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments & Refactor border around item implementation 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
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/display/display_manager.h" 10 #include "ash/display/display_manager.h"
11 #include "ash/display/window_tree_host_manager.h" 11 #include "ash/display/window_tree_host_manager.h"
12 #include "ash/focus_cycler.h" 12 #include "ash/focus_cycler.h"
13 #include "ash/root_window_controller.h" 13 #include "ash/root_window_controller.h"
14 #include "ash/session/session_state_delegate.h" 14 #include "ash/session/session_state_delegate.h"
15 #include "ash/shelf/shelf.h" 15 #include "ash/shelf/shelf.h"
16 #include "ash/shelf/shelf_constants.h"
16 #include "ash/shelf/shelf_layout_manager_observer.h" 17 #include "ash/shelf/shelf_layout_manager_observer.h"
17 #include "ash/shelf/shelf_locking_manager.h" 18 #include "ash/shelf/shelf_locking_manager.h"
18 #include "ash/shelf/shelf_view.h" 19 #include "ash/shelf/shelf_view.h"
19 #include "ash/shelf/shelf_widget.h" 20 #include "ash/shelf/shelf_widget.h"
20 #include "ash/shell.h" 21 #include "ash/shell.h"
21 #include "ash/shell_window_ids.h" 22 #include "ash/shell_window_ids.h"
22 #include "ash/system/status_area_widget.h" 23 #include "ash/system/status_area_widget.h"
23 #include "ash/system/tray/system_tray.h" 24 #include "ash/system/tray/system_tray.h"
24 #include "ash/system/tray/system_tray_item.h" 25 #include "ash/system/tray/system_tray_item.h"
25 #include "ash/test/ash_test_base.h" 26 #include "ash/test/ash_test_base.h"
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 // Widget is now owned by the parent window. 839 // Widget is now owned by the parent window.
839 widget->Init(params); 840 widget->Init(params);
840 widget->Maximize(); 841 widget->Maximize();
841 widget->Show(); 842 widget->Show();
842 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 843 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
843 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 844 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
844 845
845 // LayoutShelf() forces the animation to completion, at which point the 846 // LayoutShelf() forces the animation to completion, at which point the
846 // shelf should go off the screen. 847 // shelf should go off the screen.
847 shelf->LayoutShelf(); 848 shelf->LayoutShelf();
848 EXPECT_EQ(root->bounds().bottom() - ShelfLayoutManager::kAutoHideSize, 849 EXPECT_EQ(root->bounds().bottom() - kAutoHideSize,
849 GetShelfWidget()->GetWindowBoundsInScreen().y()); 850 GetShelfWidget()->GetWindowBoundsInScreen().y());
850 EXPECT_EQ(root->bounds().bottom() - ShelfLayoutManager::kAutoHideSize, 851 EXPECT_EQ(root->bounds().bottom() - kAutoHideSize,
851 display::Screen::GetScreen() 852 display::Screen::GetScreen()
852 ->GetDisplayNearestWindow(root) 853 ->GetDisplayNearestWindow(root)
853 .work_area() 854 .work_area()
854 .bottom()); 855 .bottom());
855 856
856 // Move the mouse to the bottom of the screen. 857 // Move the mouse to the bottom of the screen.
857 generator.MoveMouseTo(0, root->bounds().bottom() - 1); 858 generator.MoveMouseTo(0, root->bounds().bottom() - 1);
858 859
859 // Shelf should be shown again (but it shouldn't have changed the work area). 860 // Shelf should be shown again (but it shouldn't have changed the work area).
860 SetState(shelf, SHELF_AUTO_HIDE); 861 SetState(shelf, SHELF_AUTO_HIDE);
861 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); 862 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state());
862 shelf->LayoutShelf(); 863 shelf->LayoutShelf();
863 EXPECT_EQ(root->bounds().bottom() - shelf->GetIdealBounds().height(), 864 EXPECT_EQ(root->bounds().bottom() - shelf->GetIdealBounds().height(),
864 GetShelfWidget()->GetWindowBoundsInScreen().y()); 865 GetShelfWidget()->GetWindowBoundsInScreen().y());
865 EXPECT_EQ(root->bounds().bottom() - ShelfLayoutManager::kAutoHideSize, 866 EXPECT_EQ(root->bounds().bottom() - kAutoHideSize,
866 display::Screen::GetScreen() 867 display::Screen::GetScreen()
867 ->GetDisplayNearestWindow(root) 868 ->GetDisplayNearestWindow(root)
868 .work_area() 869 .work_area()
869 .bottom()); 870 .bottom());
870 871
871 // Move mouse back up. 872 // Move mouse back up.
872 generator.MoveMouseTo(0, 0); 873 generator.MoveMouseTo(0, 0);
873 SetState(shelf, SHELF_AUTO_HIDE); 874 SetState(shelf, SHELF_AUTO_HIDE);
874 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 875 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
875 shelf->LayoutShelf(); 876 shelf->LayoutShelf();
876 EXPECT_EQ(root->bounds().bottom() - ShelfLayoutManager::kAutoHideSize, 877 EXPECT_EQ(root->bounds().bottom() - kAutoHideSize,
877 GetShelfWidget()->GetWindowBoundsInScreen().y()); 878 GetShelfWidget()->GetWindowBoundsInScreen().y());
878 879
879 // Drag mouse to bottom of screen. 880 // Drag mouse to bottom of screen.
880 generator.PressLeftButton(); 881 generator.PressLeftButton();
881 generator.MoveMouseTo(0, root->bounds().bottom() - 1); 882 generator.MoveMouseTo(0, root->bounds().bottom() - 1);
882 UpdateAutoHideStateNow(); 883 UpdateAutoHideStateNow();
883 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 884 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
884 885
885 generator.ReleaseLeftButton(); 886 generator.ReleaseLeftButton();
886 generator.MoveMouseTo(1, root->bounds().bottom() - 1); 887 generator.MoveMouseTo(1, root->bounds().bottom() - 1);
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 widget->Init(params); 1008 widget->Init(params);
1008 widget->Maximize(); 1009 widget->Maximize();
1009 widget->Show(); 1010 widget->Show();
1010 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 1011 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
1011 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 1012 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
1012 1013
1013 aura::Window* root = Shell::GetPrimaryRootWindow(); 1014 aura::Window* root = Shell::GetPrimaryRootWindow();
1014 // LayoutShelf() forces the animation to completion, at which point the 1015 // LayoutShelf() forces the animation to completion, at which point the
1015 // shelf should go off the screen. 1016 // shelf should go off the screen.
1016 shelf->LayoutShelf(); 1017 shelf->LayoutShelf();
1017 EXPECT_EQ(root->bounds().bottom() - ShelfLayoutManager::kAutoHideSize, 1018 EXPECT_EQ(root->bounds().bottom() - kAutoHideSize,
1018 GetShelfWidget()->GetWindowBoundsInScreen().y()); 1019 GetShelfWidget()->GetWindowBoundsInScreen().y());
1019 1020
1020 aura::Window* lock_container = Shell::GetContainer( 1021 aura::Window* lock_container = Shell::GetContainer(
1021 Shell::GetPrimaryRootWindow(), kShellWindowId_LockScreenContainer); 1022 Shell::GetPrimaryRootWindow(), kShellWindowId_LockScreenContainer);
1022 1023
1023 views::Widget* lock_widget = new views::Widget; 1024 views::Widget* lock_widget = new views::Widget;
1024 views::Widget::InitParams lock_params( 1025 views::Widget::InitParams lock_params(
1025 views::Widget::InitParams::TYPE_WINDOW); 1026 views::Widget::InitParams::TYPE_WINDOW);
1026 lock_params.bounds = gfx::Rect(0, 0, 200, 200); 1027 lock_params.bounds = gfx::Rect(0, 0, 200, 200);
1027 params.context = CurrentContext(); 1028 params.context = CurrentContext();
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
1687 EXPECT_EQ(shelf->GetIdealBounds().width(), 1688 EXPECT_EQ(shelf->GetIdealBounds().width(),
1688 display.GetWorkAreaInsets().left()); 1689 display.GetWorkAreaInsets().left());
1689 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); 1690 EXPECT_EQ(0, display.GetWorkAreaInsets().top());
1690 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); 1691 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom());
1691 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); 1692 EXPECT_EQ(0, display.GetWorkAreaInsets().right());
1692 EXPECT_EQ(display.bounds().x(), shelf_bounds.x()); 1693 EXPECT_EQ(display.bounds().x(), shelf_bounds.x());
1693 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); 1694 EXPECT_EQ(display.bounds().y(), shelf_bounds.y());
1694 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); 1695 EXPECT_EQ(display.bounds().height(), shelf_bounds.height());
1695 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 1696 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
1696 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1697 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1697 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, 1698 EXPECT_EQ(kAutoHideSize, display.GetWorkAreaInsets().left());
1698 display.GetWorkAreaInsets().left()); 1699 EXPECT_EQ(kAutoHideSize, display.work_area().x());
1699 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, display.work_area().x());
1700 1700
1701 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 1701 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
1702 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT); 1702 shelf->SetAlignment(wm::SHELF_ALIGNMENT_RIGHT);
1703 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1703 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1704 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); 1704 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen();
1705 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1705 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1706 ASSERT_NE(-1, display.id()); 1706 ASSERT_NE(-1, display.id());
1707 EXPECT_EQ(shelf->GetIdealBounds().width(), 1707 EXPECT_EQ(shelf->GetIdealBounds().width(),
1708 display.GetWorkAreaInsets().right()); 1708 display.GetWorkAreaInsets().right());
1709 EXPECT_GE(shelf_bounds.width(), 1709 EXPECT_GE(shelf_bounds.width(),
1710 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); 1710 GetShelfWidget()->GetContentsView()->GetPreferredSize().width());
1711 EXPECT_EQ(wm::SHELF_ALIGNMENT_RIGHT, GetSystemTray()->shelf_alignment()); 1711 EXPECT_EQ(wm::SHELF_ALIGNMENT_RIGHT, GetSystemTray()->shelf_alignment());
1712 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); 1712 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen());
1713 EXPECT_GE(status_bounds.width(), 1713 EXPECT_GE(status_bounds.width(),
1714 status_area_widget->GetContentsView()->GetPreferredSize().width()); 1714 status_area_widget->GetContentsView()->GetPreferredSize().width());
1715 EXPECT_EQ(shelf->GetIdealBounds().width(), 1715 EXPECT_EQ(shelf->GetIdealBounds().width(),
1716 display.GetWorkAreaInsets().right()); 1716 display.GetWorkAreaInsets().right());
1717 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); 1717 EXPECT_EQ(0, display.GetWorkAreaInsets().top());
1718 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); 1718 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom());
1719 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); 1719 EXPECT_EQ(0, display.GetWorkAreaInsets().left());
1720 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); 1720 EXPECT_EQ(display.work_area().right(), shelf_bounds.x());
1721 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); 1721 EXPECT_EQ(display.bounds().y(), shelf_bounds.y());
1722 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); 1722 EXPECT_EQ(display.bounds().height(), shelf_bounds.height());
1723 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 1723 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
1724 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1724 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1725 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, 1725 EXPECT_EQ(kAutoHideSize, display.GetWorkAreaInsets().right());
1726 display.GetWorkAreaInsets().right()); 1726 EXPECT_EQ(kAutoHideSize,
1727 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, 1727 display.bounds().right() - display.work_area().right());
1728 display.bounds().right() - display.work_area().right());
1729 } 1728 }
1730 1729
1731 TEST_F(ShelfLayoutManagerTest, GestureEdgeSwipe) { 1730 TEST_F(ShelfLayoutManagerTest, GestureEdgeSwipe) {
1732 ShelfLayoutManager* shelf = GetShelfLayoutManager(); 1731 ShelfLayoutManager* shelf = GetShelfLayoutManager();
1733 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 1732 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
1734 views::Widget* widget = new views::Widget; 1733 views::Widget* widget = new views::Widget;
1735 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); 1734 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
1736 params.bounds = gfx::Rect(0, 0, 200, 200); 1735 params.bounds = gfx::Rect(0, 0, 200, 200);
1737 params.context = CurrentContext(); 1736 params.context = CurrentContext();
1738 widget->Init(params); 1737 widget->Init(params);
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
2294 StatusAreaWidget* status_area_widget = 2293 StatusAreaWidget* status_area_widget =
2295 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); 2294 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget();
2296 EXPECT_TRUE(status_area_widget->IsVisible()); 2295 EXPECT_TRUE(status_area_widget->IsVisible());
2297 // Shelf should be in the first display's area. 2296 // Shelf should be in the first display's area.
2298 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); 2297 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen());
2299 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); 2298 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds));
2300 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); 2299 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right());
2301 } 2300 }
2302 2301
2303 } // namespace ash 2302 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698