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

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

Issue 2143033003: Fix tests in ShelfLayoutManagerTest when MD is enable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 | « no previous file | no next file » | 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/aura/wm_window_aura.h" 9 #include "ash/aura/wm_window_aura.h"
10 #include "ash/common/ash_switches.h" 10 #include "ash/common/ash_switches.h"
11 #include "ash/common/focus_cycler.h" 11 #include "ash/common/focus_cycler.h"
12 #include "ash/common/material_design/material_design_controller.h"
12 #include "ash/common/session/session_state_delegate.h" 13 #include "ash/common/session/session_state_delegate.h"
13 #include "ash/common/shelf/shelf_constants.h" 14 #include "ash/common/shelf/shelf_constants.h"
14 #include "ash/common/shell_window_ids.h" 15 #include "ash/common/shell_window_ids.h"
15 #include "ash/common/system/tray/system_tray_item.h" 16 #include "ash/common/system/tray/system_tray_item.h"
16 #include "ash/common/wm/window_state.h" 17 #include "ash/common/wm/window_state.h"
17 #include "ash/common/wm_shell.h" 18 #include "ash/common/wm_shell.h"
18 #include "ash/display/display_manager.h" 19 #include "ash/display/display_manager.h"
19 #include "ash/display/window_tree_host_manager.h" 20 #include "ash/display/window_tree_host_manager.h"
20 #include "ash/root_window_controller.h" 21 #include "ash/root_window_controller.h"
21 #include "ash/shelf/shelf.h" 22 #include "ash/shelf/shelf.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 GetShelfLayoutManager()->GetAlignment()) { 177 GetShelfLayoutManager()->GetAlignment()) {
177 EXPECT_EQ(not_visible_bounds_.x(), shelf_bounds.x()); 178 EXPECT_EQ(not_visible_bounds_.x(), shelf_bounds.x());
178 EXPECT_EQ(visible_bounds_.x(), shelf_bounds.x()); 179 EXPECT_EQ(visible_bounds_.x(), shelf_bounds.x());
179 } 180 }
180 181
181 // if the shelf is being dimmed test dimmer bounds as well. 182 // if the shelf is being dimmed test dimmer bounds as well.
182 if (GetShelfWidget()->GetDimsShelf()) 183 if (GetShelfWidget()->GetDimsShelf())
183 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(), 184 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(),
184 GetShelfWidget()->GetDimmerBoundsForTest()); 185 GetShelfWidget()->GetDimmerBoundsForTest());
185 186
186 // The shelf should never be smaller than the hidden state when shelf is 187 // For non-MD, the shelf should never be smaller than the hidden state.
187 // visible; the shelf has a height of 0 when it is hidden. 188 if (!ash::MaterialDesignController::IsShelfMaterial()) {
188 if (was_visible_on_drag_start_)
189 EXPECT_GE(shelf_bounds.height(), not_visible_bounds_.height()); 189 EXPECT_GE(shelf_bounds.height(), not_visible_bounds_.height());
190
191 // For MD, when shelf is at the auto hidden state, it has visible height
192 // of 0 and not_visible_bounds height is non zero and it is used to detect
193 // movements.
194 } else {
195 if (GetShelf()->GetAutoHideState() != ash::SHELF_AUTO_HIDE_HIDDEN) {
bruthig 2016/07/13 19:36:51 Can you collapse this 'if'/'else if' into a single
yiyix 2016/07/14 18:24:49 Done.
196 EXPECT_GE(shelf_bounds.height(), not_visible_bounds_.height());
197 }
198 }
190 float scroll_delta = 199 float scroll_delta =
191 GetShelfLayoutManager()->PrimaryAxisValue(scroll_.y(), scroll_.x()); 200 GetShelfLayoutManager()->PrimaryAxisValue(scroll_.y(), scroll_.x());
192 bool increasing_drag = 201 bool increasing_drag =
193 GetShelfWidget()->shelf()->SelectValueForShelfAlignment( 202 GetShelfWidget()->shelf()->SelectValueForShelfAlignment(
194 scroll_delta<0, scroll_delta> 0, scroll_delta < 0); 203 scroll_delta<0, scroll_delta> 0, scroll_delta < 0);
195 int shelf_size = GetShelfLayoutManager()->PrimaryAxisValue( 204 int shelf_size = GetShelfLayoutManager()->PrimaryAxisValue(
196 shelf_bounds.height(), shelf_bounds.width()); 205 shelf_bounds.height(), shelf_bounds.width());
197 int visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue( 206 int visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue(
198 visible_bounds_.height(), visible_bounds_.width()); 207 visible_bounds_.height(), visible_bounds_.width());
199 int not_visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue( 208 int not_visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue(
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 594 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
586 595
587 // Put |widget| into fullscreen. Set the shelf to be auto hidden when |widget| 596 // Put |widget| into fullscreen. Set the shelf to be auto hidden when |widget|
588 // is fullscreen. (eg browser immersive fullscreen). 597 // is fullscreen. (eg browser immersive fullscreen).
589 widget->SetFullscreen(true); 598 widget->SetFullscreen(true);
590 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(false); 599 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(false);
591 layout_manager->UpdateVisibilityState(); 600 layout_manager->UpdateVisibilityState();
592 601
593 gfx::Rect bounds_fullscreen = window->bounds(); 602 gfx::Rect bounds_fullscreen = window->bounds();
594 EXPECT_TRUE(widget->IsFullscreen()); 603 EXPECT_TRUE(widget->IsFullscreen());
595 EXPECT_NE(bounds_noshelf.ToString(), bounds_fullscreen.ToString()); 604
605 // For non-MD, some immersive hints are shown on both top and bottom in
606 // immersive mode; and for MD, the window has the same behavior in both
607 // immersive mode and full screen mode.
608 if (ash::MaterialDesignController::IsShelfMaterial())
609 EXPECT_EQ(bounds_noshelf.ToString(), bounds_fullscreen.ToString());
610 else
611 EXPECT_NE(bounds_noshelf.ToString(), bounds_fullscreen.ToString());
596 612
597 // Swipe up. This should show the shelf. 613 // Swipe up. This should show the shelf.
598 end = below_start - delta; 614 end = below_start - delta;
599 generator.GestureScrollSequenceWithCallback( 615 generator.GestureScrollSequenceWithCallback(
600 below_start, end, kTimeDelta, kNumScrollSteps, 616 below_start, end, kTimeDelta, kNumScrollSteps,
601 base::Bind(&ShelfDragCallback::ProcessScroll, 617 base::Bind(&ShelfDragCallback::ProcessScroll,
602 base::Unretained(&handler))); 618 base::Unretained(&handler)));
603 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); 619 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
604 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); 620 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState());
605 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 621 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 widget->Init(params); 822 widget->Init(params);
807 widget->Maximize(); 823 widget->Maximize();
808 widget->Show(); 824 widget->Show();
809 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); 825 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState());
810 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); 826 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState());
811 827
812 // LayoutShelf() forces the animation to completion, at which point the 828 // LayoutShelf() forces the animation to completion, at which point the
813 // shelf should go off the screen. 829 // shelf should go off the screen.
814 layout_manager->LayoutShelf(); 830 layout_manager->LayoutShelf();
815 int shelf_insets = GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE); 831 int shelf_insets = GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE);
816 EXPECT_EQ(root->bounds().bottom() - shelf_insets, 832
833 EXPECT_EQ(root->bounds().bottom() - kShelfAutoHideSize,
817 GetShelfWidget()->GetWindowBoundsInScreen().y()); 834 GetShelfWidget()->GetWindowBoundsInScreen().y());
818 EXPECT_EQ(root->bounds().bottom() - shelf_insets, 835 EXPECT_EQ(root->bounds().bottom() - shelf_insets,
819 display::Screen::GetScreen() 836 display::Screen::GetScreen()
820 ->GetDisplayNearestWindow(root) 837 ->GetDisplayNearestWindow(root)
821 .work_area() 838 .work_area()
822 .bottom()); 839 .bottom());
823 840
824 // Move the mouse to the bottom of the screen. 841 // Move the mouse to the bottom of the screen.
825 generator.MoveMouseTo(0, root->bounds().bottom() - 1); 842 generator.MoveMouseTo(0, root->bounds().bottom() - 1);
826 843
827 // Shelf should be shown again (but it shouldn't have changed the work area). 844 // Shelf should be shown again (but it shouldn't have changed the work area).
828 SetState(layout_manager, SHELF_AUTO_HIDE); 845 SetState(layout_manager, SHELF_AUTO_HIDE);
829 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); 846 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState());
830 layout_manager->LayoutShelf(); 847 layout_manager->LayoutShelf();
831 EXPECT_EQ(root->bounds().bottom() - layout_manager->GetIdealBounds().height(), 848 EXPECT_EQ(root->bounds().bottom() - layout_manager->GetIdealBounds().height(),
832 GetShelfWidget()->GetWindowBoundsInScreen().y()); 849 GetShelfWidget()->GetWindowBoundsInScreen().y());
833 EXPECT_EQ(root->bounds().bottom() - kShelfAutoHideSize, 850 EXPECT_EQ(root->bounds().bottom() - shelf_insets,
834 display::Screen::GetScreen() 851 display::Screen::GetScreen()
835 ->GetDisplayNearestWindow(root) 852 ->GetDisplayNearestWindow(root)
836 .work_area() 853 .work_area()
837 .bottom()); 854 .bottom());
838 855
839 // Move mouse back up. 856 // Move mouse back up.
840 generator.MoveMouseTo(0, 0); 857 generator.MoveMouseTo(0, 0);
841 SetState(layout_manager, SHELF_AUTO_HIDE); 858 SetState(layout_manager, SHELF_AUTO_HIDE);
842 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); 859 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState());
843 layout_manager->LayoutShelf(); 860 layout_manager->LayoutShelf();
(...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after
1697 EXPECT_EQ(layout_manager->GetIdealBounds().width(), 1714 EXPECT_EQ(layout_manager->GetIdealBounds().width(),
1698 display.GetWorkAreaInsets().right()); 1715 display.GetWorkAreaInsets().right());
1699 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); 1716 EXPECT_EQ(0, display.GetWorkAreaInsets().top());
1700 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); 1717 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom());
1701 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); 1718 EXPECT_EQ(0, display.GetWorkAreaInsets().left());
1702 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); 1719 EXPECT_EQ(display.work_area().right(), shelf_bounds.x());
1703 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); 1720 EXPECT_EQ(display.bounds().y(), shelf_bounds.y());
1704 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); 1721 EXPECT_EQ(display.bounds().height(), shelf_bounds.height());
1705 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 1722 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
1706 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 1723 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
1707 EXPECT_EQ(kShelfAutoHideSize, display.GetWorkAreaInsets().right()); 1724 EXPECT_EQ(GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE),
1708 EXPECT_EQ(kShelfAutoHideSize, 1725 display.GetWorkAreaInsets().right());
1726 EXPECT_EQ(GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE),
1709 display.bounds().right() - display.work_area().right()); 1727 display.bounds().right() - display.work_area().right());
1710 } 1728 }
1711 1729
1712 TEST_F(ShelfLayoutManagerTest, GestureEdgeSwipe) { 1730 TEST_F(ShelfLayoutManagerTest, GestureEdgeSwipe) {
1713 Shelf* shelf = GetShelf(); 1731 Shelf* shelf = GetShelf();
1714 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); 1732 ShelfLayoutManager* layout_manager = GetShelfLayoutManager();
1715 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 1733 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
1716 views::Widget* widget = new views::Widget; 1734 views::Widget* widget = new views::Widget;
1717 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); 1735 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
1718 params.bounds = gfx::Rect(0, 0, 200, 200); 1736 params.bounds = gfx::Rect(0, 0, 200, 200);
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
2265 ->shelf_widget() 2283 ->shelf_widget()
2266 ->status_area_widget(); 2284 ->status_area_widget();
2267 EXPECT_TRUE(status_area_widget->IsVisible()); 2285 EXPECT_TRUE(status_area_widget->IsVisible());
2268 // Shelf should be in the first display's area. 2286 // Shelf should be in the first display's area.
2269 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); 2287 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen());
2270 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); 2288 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds));
2271 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); 2289 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right());
2272 } 2290 }
2273 2291
2274 } // namespace ash 2292 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698