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

Unified Diff: ash/wm/workspace/workspace_manager_unittest.cc

Issue 9764008: Makes the launcher auto-hide for maximized windows. This turned out to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add null checks and cleanup 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
Index: ash/wm/workspace/workspace_manager_unittest.cc
diff --git a/ash/wm/workspace/workspace_manager_unittest.cc b/ash/wm/workspace/workspace_manager_unittest.cc
index 0cc82c6433b3f91e53c7e924960c9cdf880e46f6..90bb287c93f94346febbe26bb8dfcb45a629726e 100644
--- a/ash/wm/workspace/workspace_manager_unittest.cc
+++ b/ash/wm/workspace/workspace_manager_unittest.cc
@@ -10,6 +10,7 @@
#include "ash/test/ash_test_base.h"
#include "ash/wm/activation_controller.h"
#include "ash/wm/property_util.h"
+#include "ash/wm/shelf_layout_manager.h"
#include "ash/wm/window_util.h"
#include "ash/wm/workspace_controller.h"
#include "ash/wm/workspace/workspace.h"
@@ -56,10 +57,6 @@ class WorkspaceManagerTest : public test::AshTestBase {
return manager_->workspaces_;
}
- gfx::Rect GetWorkAreaBounds() {
- return manager_->GetWorkAreaBounds();
- }
-
gfx::Rect GetFullscreenBounds(aura::Window* window) {
return gfx::Screen::GetMonitorAreaNearestWindow(window);
}
@@ -143,8 +140,10 @@ TEST_F(WorkspaceManagerTest, SingleMaximizeWindow) {
EXPECT_EQ(Workspace::TYPE_MAXIMIZED, workspaces()[1]->type());
ASSERT_EQ(1u, workspaces()[1]->windows().size());
EXPECT_EQ(w1.get(), workspaces()[1]->windows()[0]);
- EXPECT_EQ(GetWorkAreaBounds().width(), w1->bounds().width());
- EXPECT_EQ(GetWorkAreaBounds().height(), w1->bounds().height());
+ EXPECT_EQ(ScreenAsh::GetMaximizedWindowBounds(w1.get()).width(),
+ w1->bounds().width());
+ EXPECT_EQ(ScreenAsh::GetMaximizedWindowBounds(w1.get()).height(),
+ w1->bounds().height());
// Restore the window.
w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
@@ -158,51 +157,6 @@ TEST_F(WorkspaceManagerTest, SingleMaximizeWindow) {
EXPECT_EQ(251, w1->bounds().height());
}
-// Assertions around maximized window resizing on work area insets change.
-TEST_F(WorkspaceManagerTest, ResizeMaximizedWindowOnWorkAreaInsetsChange) {
- scoped_ptr<Window> w1(CreateTestWindow());
- w1->SetBounds(gfx::Rect(0, 0, 250, 251));
-
- ASSERT_TRUE(manager_->IsManagedWindow(w1.get()));
-
- w1->Show();
-
- ASSERT_TRUE(w1->layer() != NULL);
- EXPECT_TRUE(w1->layer()->visible());
-
- EXPECT_EQ(250, w1->bounds().width());
- EXPECT_EQ(251, w1->bounds().height());
-
- // Maximize the window.
- Shell::GetInstance()->SetMonitorWorkAreaInsets(
- Shell::GetRootWindow(),
- gfx::Insets(0, 0, 30, 0));
- w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
-
- // Should be 2 workspaces, the second TYPE_MAXIMIZED with w1, fills the work
- // area bounds.
- ASSERT_EQ(2u, workspaces().size());
- EXPECT_EQ(Workspace::TYPE_MAXIMIZED, workspaces()[1]->type());
- ASSERT_EQ(1u, workspaces()[1]->windows().size());
- EXPECT_EQ(w1.get(), workspaces()[1]->windows()[0]);
- EXPECT_EQ(GetWorkAreaBounds().width(), w1->bounds().width());
- EXPECT_EQ(GetWorkAreaBounds().height(), w1->bounds().height());
-
- // Change work area insets.
- Shell::GetInstance()->SetMonitorWorkAreaInsets(
- Shell::GetRootWindow(),
- gfx::Insets(0, 0, 60, 0));
-
- // Should be 2 workspaces, the second TYPE_MAXIMIZED with w1, fills the
- // changed work area bounds.
- ASSERT_EQ(2u, workspaces().size());
- EXPECT_EQ(Workspace::TYPE_MAXIMIZED, workspaces()[1]->type());
- ASSERT_EQ(1u, workspaces()[1]->windows().size());
- EXPECT_EQ(w1.get(), workspaces()[1]->windows()[0]);
- EXPECT_EQ(GetWorkAreaBounds().width(), w1->bounds().width());
- EXPECT_EQ(GetWorkAreaBounds().height(), w1->bounds().height());
-}
-
// Assertions around closing the last window in a workspace.
TEST_F(WorkspaceManagerTest, CloseLastWindowInWorkspace) {
scoped_ptr<Window> w1(CreateTestWindow());
@@ -246,8 +200,7 @@ TEST_F(WorkspaceManagerTest, AddMaximizedWindowWhenEmpty) {
ASSERT_TRUE(w1->layer() != NULL);
EXPECT_TRUE(w1->layer()->visible());
- gfx::Rect work_area(
- gfx::Screen::GetMonitorWorkAreaNearestWindow(w1.get()));
+ gfx::Rect work_area(ScreenAsh::GetMaximizedWindowBounds(w1.get()));
EXPECT_EQ(work_area.width(), w1->bounds().width());
EXPECT_EQ(work_area.height(), w1->bounds().height());
@@ -285,8 +238,7 @@ TEST_F(WorkspaceManagerTest, MaximizeWithNormalWindow) {
ASSERT_TRUE(w2->layer() != NULL);
EXPECT_TRUE(w2->layer()->visible());
- gfx::Rect work_area(
- gfx::Screen::GetMonitorWorkAreaNearestWindow(w1.get()));
+ gfx::Rect work_area(ScreenAsh::GetMaximizedWindowBounds(w1.get()));
EXPECT_EQ(work_area.width(), w2->bounds().width());
EXPECT_EQ(work_area.height(), w2->bounds().height());
@@ -488,5 +440,75 @@ TEST_F(WorkspaceManagerTest, MinimizeMaximizedWindow) {
EXPECT_TRUE(w2->layer()->IsDrawn());
}
+// Verifies ShelfLayoutManager's visibility/auto-hide state is correctly
+// updated.
+TEST_F(WorkspaceManagerTest, ShelfStateUpdated) {
+ // Two windows, w1 normal, w2 maximized.
+ scoped_ptr<Window> w1(CreateTestWindow());
+ w1->SetBounds(gfx::Rect(0, 1, 101, 102));
+ w1->Show();
+
+ ShelfLayoutManager* shelf = Shell::GetInstance()->shelf();
+
+ EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state());
+
+ // Maximize the window.
+ w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE, shelf->visibility_state());
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
+
+ // Restore.
+ w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
+ EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state());
+ EXPECT_EQ("0,1 101x102", w1->bounds().ToString());
+
+ // Fullscreen.
+ w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN);
+ EXPECT_EQ(ShelfLayoutManager::HIDDEN, shelf->visibility_state());
+
+ // Normal.
+ w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
+ EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state());
+ EXPECT_EQ("0,1 101x102", w1->bounds().ToString());
+
+ // Maximize again.
+ w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE, shelf->visibility_state());
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
+
+ // Minimize.
+ w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED);
+ EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state());
+
+ // Restore.
+ w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
+ EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state());
+ EXPECT_EQ("0,1 101x102", w1->bounds().ToString());
+
+ // Create another window, maximized.
+ scoped_ptr<Window> w2(CreateTestWindow());
+ w2->SetBounds(gfx::Rect(10, 11, 250, 251));
+ w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
+ w2->Show();
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE, shelf->visibility_state());
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
+ EXPECT_EQ("0,1 101x102", w1->bounds().ToString());
+
+ // Switch to w1.
+ w1->Show();
+ EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state());
+ EXPECT_EQ("0,1 101x102", w1->bounds().ToString());
+ EXPECT_EQ(ScreenAsh::GetMaximizedWindowBounds(w2.get()).ToString(),
+ w2->bounds().ToString());
+
+ // Switch to w2.
+ w2->Show();
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE, shelf->visibility_state());
+ EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
+ EXPECT_EQ("0,1 101x102", w1->bounds().ToString());
+ EXPECT_EQ(ScreenAsh::GetMaximizedWindowBounds(w2.get()).ToString(),
+ w2->bounds().ToString());
+}
+
} // namespace internal
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698