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

Unified Diff: ash/wm/shelf_layout_manager_unittest.cc

Issue 9817026: Changes how we detect whether the launcher should be shown when (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix comment Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/wm/shelf_layout_manager.cc ('k') | ash/wm/workspace/workspace_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/shelf_layout_manager_unittest.cc
diff --git a/ash/wm/shelf_layout_manager_unittest.cc b/ash/wm/shelf_layout_manager_unittest.cc
index b90130781f3795b3293d4c33c43f599bc430e879..1dcd3bec37da857bd614a9f72219f3b46c2328a5 100644
--- a/ash/wm/shelf_layout_manager_unittest.cc
+++ b/ash/wm/shelf_layout_manager_unittest.cc
@@ -13,6 +13,7 @@
#include "ui/aura/monitor.h"
#include "ui/aura/monitor_manager.h"
#include "ui/aura/root_window.h"
+#include "ui/aura/test/event_generator.h"
#include "ui/aura/window.h"
#include "ui/base/animation/animation_container_element.h"
#include "ui/gfx/compositor/layer_animator.h"
@@ -65,8 +66,7 @@ TEST_F(ShelfLayoutManagerTest, MAYBE_SetVisible) {
monitor->work_area_insets().bottom());
// Hide the shelf.
- shelf->SetState(ShelfLayoutManager::HIDDEN,
- ShelfLayoutManager::AUTO_HIDE_HIDDEN);
+ shelf->SetState(ShelfLayoutManager::HIDDEN);
// Run the animation to completion.
StepWidgetLayerAnimatorToEnd(shelf->launcher_widget());
StepWidgetLayerAnimatorToEnd(shelf->status());
@@ -80,8 +80,7 @@ TEST_F(ShelfLayoutManagerTest, MAYBE_SetVisible) {
gfx::Screen::GetPrimaryMonitorBounds().bottom());
// And show it again.
- shelf->SetState(ShelfLayoutManager::VISIBLE,
- ShelfLayoutManager::AUTO_HIDE_HIDDEN);
+ shelf->SetState(ShelfLayoutManager::VISIBLE);
// Run the animation to completion.
StepWidgetLayerAnimatorToEnd(shelf->launcher_widget());
StepWidgetLayerAnimatorToEnd(shelf->status());
@@ -115,8 +114,7 @@ TEST_F(ShelfLayoutManagerTest, LayoutShelfWhileAnimating) {
manager->GetMonitorNearestWindow(Shell::GetRootWindow());
// Hide the shelf.
- shelf->SetState(ShelfLayoutManager::HIDDEN,
- ShelfLayoutManager::AUTO_HIDE_HIDDEN);
+ shelf->SetState(ShelfLayoutManager::HIDDEN);
shelf->LayoutShelf();
EXPECT_EQ(ShelfLayoutManager::HIDDEN, shelf->visibility_state());
EXPECT_EQ(0, monitor->work_area_insets().bottom());
@@ -163,5 +161,45 @@ TEST_F(ShelfLayoutManagerTest, DontReferenceLauncherAfterDeletion) {
widget->SetFullscreen(true);
}
+// Various assertions around auto-hide.
+TEST_F(ShelfLayoutManagerTest, AutoHide) {
+ ShelfLayoutManager* shelf = GetShelfLayoutManager();
+ views::Widget* widget = new views::Widget;
+ views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
+ params.bounds = gfx::Rect(0, 0, 200, 200);
+ // Widget is now owned by the parent window.
+ widget->Init(params);
+ widget->Maximize();
+ widget->Show();
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE, shelf->visibility_state());
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
+
+ aura::RootWindow* root = Shell::GetRootWindow();
+ // LayoutShelf() forces the animation to completion, at which point the
+ // launcher should go off the screen.
+ shelf->LayoutShelf();
+ EXPECT_EQ(root->bounds().bottom() - ShelfLayoutManager::kAutoHideHeight,
+ shelf->launcher_widget()->GetWindowScreenBounds().y());
+
+ // Move the mouse to the bottom of the screen.
+ aura::test::EventGenerator generator(root, root);
+ generator.MoveMouseTo(gfx::Point(0, root->bounds().bottom() - 1));
+
+ // Shelf should be shown again.
+ shelf->SetState(ShelfLayoutManager::AUTO_HIDE);
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_SHOWN, shelf->auto_hide_state());
+ shelf->LayoutShelf();
+ EXPECT_EQ(root->bounds().bottom() - shelf->shelf_height(),
+ shelf->launcher_widget()->GetWindowScreenBounds().y());
+
+ // Move mouse back up.
+ generator.MoveMouseTo(gfx::Point(0, 0));
+ shelf->SetState(ShelfLayoutManager::AUTO_HIDE);
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
+ shelf->LayoutShelf();
+ EXPECT_EQ(root->bounds().bottom() - ShelfLayoutManager::kAutoHideHeight,
+ shelf->launcher_widget()->GetWindowScreenBounds().y());
+}
+
} // namespace internal
} // namespace ash
« no previous file with comments | « ash/wm/shelf_layout_manager.cc ('k') | ash/wm/workspace/workspace_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698