Index: ash/wm/overview/window_selector_unittest.cc |
diff --git a/ash/wm/overview/window_selector_unittest.cc b/ash/wm/overview/window_selector_unittest.cc |
index 5ebf669077064d5b40f97a806f80b6eb7f235eaf..3ae60cc9458fe43d0e98bf248766d50a35c5a3ed 100644 |
--- a/ash/wm/overview/window_selector_unittest.cc |
+++ b/ash/wm/overview/window_selector_unittest.cc |
@@ -286,6 +286,7 @@ TEST_F(WindowSelectorTest, Basic) { |
scoped_ptr<aura::Window> window2(CreateWindow(bounds)); |
scoped_ptr<aura::Window> panel1(CreatePanelWindow(bounds)); |
scoped_ptr<aura::Window> panel2(CreatePanelWindow(bounds)); |
+ |
EXPECT_TRUE(WindowsOverlapping(window1.get(), window2.get())); |
EXPECT_TRUE(WindowsOverlapping(panel1.get(), panel2.get())); |
wm::ActivateWindow(window2.get()); |
@@ -313,6 +314,50 @@ TEST_F(WindowSelectorTest, Basic) { |
EXPECT_FALSE(aura::client::GetCursorClient(root_window)->IsCursorLocked()); |
} |
+// Tests entering overview mode with docked windows |
+TEST_F(WindowSelectorTest, BasicWithDocked) { |
+ // aura::Window* root_window = Shell::GetPrimaryRootWindow(); |
+ gfx::Rect bounds(300, 0, 200, 200); |
+ scoped_ptr<aura::Window> window1(CreateWindow(bounds)); |
+ scoped_ptr<aura::Window> window2(CreateWindow(bounds)); |
+ scoped_ptr<aura::Window> docked1(CreateWindow(bounds)); |
+ scoped_ptr<aura::Window> docked2(CreateWindow(bounds)); |
+ |
+ wm::WMEvent dock_event(wm::WM_EVENT_DOCK); |
+ wm::GetWindowState(docked1.get())->OnWMEvent(&dock_event); |
+ |
+ wm::WindowState* docked_state2 = wm::GetWindowState(docked2.get()); |
+ docked_state2->OnWMEvent(&dock_event); |
+ wm::WMEvent minimize_event(wm::WM_EVENT_MINIMIZE); |
+ docked_state2->OnWMEvent(&minimize_event); |
+ |
+ EXPECT_TRUE(WindowsOverlapping(window1.get(), window2.get())); |
+ gfx::Rect docked_bounds = docked1->GetBoundsInScreen(); |
+ |
+ EXPECT_NE(bounds.ToString(), docked_bounds.ToString()); |
+ EXPECT_FALSE(WindowsOverlapping(window1.get(), docked1.get())); |
+ EXPECT_FALSE(WindowsOverlapping(window1.get(), docked2.get())); |
+ EXPECT_FALSE(docked2->IsVisible()); |
+ |
+ EXPECT_EQ(wm::WINDOW_STATE_TYPE_DOCKED, |
+ wm::GetWindowState(docked1.get())->GetStateType()); |
+ EXPECT_EQ(wm::WINDOW_STATE_TYPE_DOCKED_MINIMIZED, |
+ wm::GetWindowState(docked2.get())->GetStateType()); |
+ |
+ ToggleOverview(); |
+ |
+ EXPECT_FALSE(WindowsOverlapping(window1.get(), window2.get())); |
+ // Docked windows stays the same. |
+ EXPECT_EQ(docked_bounds.ToString(), docked1->GetBoundsInScreen().ToString()); |
+ EXPECT_FALSE(docked2->IsVisible()); |
+ |
+ // Docked window can still be activated, which will exit the overview mode. |
+ ClickWindow(docked1.get()); |
+ EXPECT_TRUE(wm::IsActiveWindow(docked1.get())); |
+ EXPECT_FALSE( |
+ ash::Shell::GetInstance()->window_selector_controller()->IsSelecting()); |
+} |
+ |
// Tests selecting a window by tapping on it. |
TEST_F(WindowSelectorTest, BasicGesture) { |
gfx::Rect bounds(0, 0, 400, 400); |
@@ -710,29 +755,6 @@ TEST_F(WindowSelectorTest, QuickReentryRestoresInitialTransform) { |
GetTransformedTargetBounds(window.get()))); |
} |
-// Tests that non-activatable windows are hidden when entering overview mode. |
-TEST_F(WindowSelectorTest, NonActivatableWindowsHidden) { |
- gfx::Rect bounds(0, 0, 400, 400); |
- scoped_ptr<aura::Window> window1(CreateWindow(bounds)); |
- scoped_ptr<aura::Window> window2(CreateWindow(bounds)); |
- scoped_ptr<aura::Window> non_activatable_window( |
- CreateNonActivatableWindow(Shell::GetPrimaryRootWindow()->bounds())); |
- EXPECT_TRUE(non_activatable_window->IsVisible()); |
- ToggleOverview(); |
- EXPECT_FALSE(non_activatable_window->IsVisible()); |
- ToggleOverview(); |
- EXPECT_TRUE(non_activatable_window->IsVisible()); |
- |
- // Test that a window behind the fullscreen non-activatable window can be |
- // clicked. |
- non_activatable_window->parent()->StackChildAtTop( |
- non_activatable_window.get()); |
- ToggleOverview(); |
- ClickWindow(window1.get()); |
- EXPECT_FALSE(IsSelecting()); |
- EXPECT_TRUE(wm::IsActiveWindow(window1.get())); |
-} |
- |
// Tests that windows with modal child windows are transformed with the modal |
// child even though not activatable themselves. |
TEST_F(WindowSelectorTest, ModalChild) { |