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

Unified Diff: athena/wm/window_manager_unittest.cc

Issue 550043002: Keep the split view activities topmost in z-order in Athena (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« athena/wm/window_manager_impl.cc ('K') | « athena/wm/window_manager_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: athena/wm/window_manager_unittest.cc
diff --git a/athena/wm/window_manager_unittest.cc b/athena/wm/window_manager_unittest.cc
index 0f03ae12ce2229b7ae13b6349965fb06353452b6..f3876ec5f2d7348f9363e70007c60723fdd98d75 100644
--- a/athena/wm/window_manager_unittest.cc
+++ b/athena/wm/window_manager_unittest.cc
@@ -19,36 +19,34 @@
#include "ui/gfx/screen.h"
#include "ui/wm/core/window_util.h"
-namespace {
-
-scoped_ptr<aura::Window> CreateWindow(aura::WindowDelegate* delegate) {
- scoped_ptr<aura::Window> window(new aura::Window(delegate));
- window->SetType(ui::wm::WINDOW_TYPE_NORMAL);
- window->Init(aura::WINDOW_LAYER_SOLID_COLOR);
- window->Show();
- return window.Pass();
-}
+namespace athena {
-} // namespace
+class WindowManagerTest : public test::AthenaTestBase {
+ public:
+ WindowManagerTest() {}
+ virtual ~WindowManagerTest() {}
-namespace athena {
+ scoped_ptr<aura::Window> CreateAndActivateWindow(
+ aura::WindowDelegate* delegate) {
+ scoped_ptr<aura::Window> window(CreateTestWindow(delegate, gfx::Rect()));
+ window->Show();
+ wm::ActivateWindow(window.get());
+ return window.Pass();
+ }
-typedef test::AthenaTestBase WindowManagerTest;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(WindowManagerTest);
+};
TEST_F(WindowManagerTest, Empty) {
}
TEST_F(WindowManagerTest, OverviewModeBasics) {
aura::test::TestWindowDelegate delegate;
- scoped_ptr<aura::Window> first(CreateWindow(&delegate));
- scoped_ptr<aura::Window> second(CreateWindow(&delegate));
+ scoped_ptr<aura::Window> first(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> second(CreateAndActivateWindow(&delegate));
test::WindowManagerImplTestApi wm_api;
- aura::client::ParentWindowWithContext(
- first.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- second.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- wm::ActivateWindow(second.get());
ASSERT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive());
EXPECT_EQ(first->bounds().ToString(), second->bounds().ToString());
@@ -85,10 +83,9 @@ TEST_F(WindowManagerTest, OverviewToSplitViewMode) {
test::WindowManagerImplTestApi wm_api;
aura::test::TestWindowDelegate delegate;
- scoped_ptr<aura::Window> w1(CreateTestWindow(&delegate, gfx::Rect()));
- scoped_ptr<aura::Window> w2(CreateTestWindow(&delegate, gfx::Rect()));
- scoped_ptr<aura::Window> w3(CreateTestWindow(&delegate, gfx::Rect()));
- wm::ActivateWindow(w3.get());
+ scoped_ptr<aura::Window> w1(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> w2(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> w3(CreateAndActivateWindow(&delegate));
WindowManager::GetInstance()->ToggleOverview();
EXPECT_TRUE(w1->IsVisible());
@@ -97,7 +94,7 @@ TEST_F(WindowManagerTest, OverviewToSplitViewMode) {
// Go into split-view mode.
WindowOverviewModeDelegate* overview_delegate = wm_api.wm();
- overview_delegate->OnSplitViewMode(NULL, w2.get());
+ overview_delegate->OnSplitViewMode(w3.get(), NULL);
EXPECT_TRUE(w3->IsVisible());
EXPECT_TRUE(w2->IsVisible());
EXPECT_FALSE(w1->IsVisible());
@@ -105,17 +102,11 @@ TEST_F(WindowManagerTest, OverviewToSplitViewMode) {
TEST_F(WindowManagerTest, BezelGestureToSplitViewMode) {
aura::test::TestWindowDelegate delegate;
- scoped_ptr<aura::Window> first(CreateWindow(&delegate));
- scoped_ptr<aura::Window> second(CreateWindow(&delegate));
- scoped_ptr<aura::Window> third(CreateWindow(&delegate));
+ scoped_ptr<aura::Window> first(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> second(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> third(CreateAndActivateWindow(&delegate));
test::WindowManagerImplTestApi wm_api;
- aura::client::ParentWindowWithContext(
- first.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- second.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- third.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
// Test that going into split-view mode with two-finger gesture selects the
// correct windows on left and right splits.
@@ -136,20 +127,13 @@ TEST_F(WindowManagerTest, BezelGestureToSplitViewMode) {
TEST_F(WindowManagerTest, BezelGestureToSwitchBetweenWindows) {
aura::test::TestWindowDelegate delegate;
- scoped_ptr<aura::Window> first(CreateWindow(&delegate));
- scoped_ptr<aura::Window> second(CreateWindow(&delegate));
- scoped_ptr<aura::Window> third(CreateWindow(&delegate));
+ scoped_ptr<aura::Window> first(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> second(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> third(CreateAndActivateWindow(&delegate));
first->Hide();
second->Hide();
test::WindowManagerImplTestApi wm_api;
- aura::client::ParentWindowWithContext(
- first.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- second.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- third.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
-
EXPECT_EQ(third.get(),
wm_api.GetWindowListProvider()->GetWindowList().back());
@@ -173,18 +157,11 @@ TEST_F(WindowManagerTest, BezelGestureToSwitchBetweenWindows) {
TEST_F(WindowManagerTest, TitleDragSwitchBetweenWindows) {
aura::test::TestWindowDelegate delegate;
delegate.set_window_component(HTCAPTION);
- scoped_ptr<aura::Window> first(CreateWindow(&delegate));
- scoped_ptr<aura::Window> second(CreateWindow(&delegate));
- scoped_ptr<aura::Window> third(CreateWindow(&delegate));
+ scoped_ptr<aura::Window> first(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> second(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> third(CreateAndActivateWindow(&delegate));
test::WindowManagerImplTestApi wm_api;
- aura::client::ParentWindowWithContext(
- first.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- second.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- third.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
-
EXPECT_EQ(third.get(),
wm_api.GetWindowListProvider()->GetWindowList().back());
@@ -226,20 +203,12 @@ TEST_F(WindowManagerTest, TitleDragSwitchBetweenWindows) {
TEST_F(WindowManagerTest, TitleDragSwitchBetweenWindowsInSplitViewMode) {
aura::test::TestWindowDelegate delegate;
delegate.set_window_component(HTCAPTION);
- scoped_ptr<aura::Window> first(CreateWindow(&delegate));
- scoped_ptr<aura::Window> second(CreateWindow(&delegate));
- scoped_ptr<aura::Window> third(CreateWindow(&delegate));
- scoped_ptr<aura::Window> fourth(CreateWindow(&delegate));
+ scoped_ptr<aura::Window> first(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> second(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> third(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> fourth(CreateAndActivateWindow(&delegate));
test::WindowManagerImplTestApi wm_api;
- aura::client::ParentWindowWithContext(
- first.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- second.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- third.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
- aura::client::ParentWindowWithContext(
- fourth.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
// Test that going into split-view mode with two-finger gesture selects the
// correct windows on left and right splits.
@@ -262,12 +231,13 @@ TEST_F(WindowManagerTest, TitleDragSwitchBetweenWindowsInSplitViewMode) {
5);
EXPECT_EQ(second.get(), wm_api.GetSplitViewController()->left_window());
EXPECT_EQ(fourth.get(), wm_api.GetSplitViewController()->right_window());
+ EXPECT_TRUE(wm::IsActiveWindow(second.get()));
aura::Window::Windows windows =
wm_api.GetWindowListProvider()->GetWindowList();
ASSERT_EQ(4u, windows.size());
EXPECT_EQ(second.get(), windows[3]);
- EXPECT_EQ(third.get(), windows[2]);
- EXPECT_EQ(fourth.get(), windows[1]);
+ EXPECT_EQ(fourth.get(), windows[2]);
+ EXPECT_EQ(third.get(), windows[1]);
// Swipe the title of the right window now. It should switch to |third|.
generator.GestureScrollSequence(gfx::Point(x_middle + 20, 10),
@@ -276,15 +246,20 @@ TEST_F(WindowManagerTest, TitleDragSwitchBetweenWindowsInSplitViewMode) {
5);
EXPECT_EQ(second.get(), wm_api.GetSplitViewController()->left_window());
EXPECT_EQ(third.get(), wm_api.GetSplitViewController()->right_window());
+ EXPECT_TRUE(wm::IsActiveWindow(third.get()));
+ windows = wm_api.GetWindowListProvider()->GetWindowList();
+ ASSERT_EQ(4u, windows.size());
+ EXPECT_EQ(third.get(), windows[3]);
+ EXPECT_EQ(second.get(), windows[2]);
+ EXPECT_EQ(fourth.get(), windows[1]);
}
TEST_F(WindowManagerTest, NewWindowBounds) {
aura::test::TestWindowDelegate delegate;
- scoped_ptr<aura::Window> first(CreateWindow(&delegate));
+ scoped_ptr<aura::Window> first(CreateAndActivateWindow(&delegate));
test::WindowManagerImplTestApi wm_api;
- aura::client::ParentWindowWithContext(
- first.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
+
// The window should have the same size as the container.
const gfx::Size work_area =
gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().work_area().size();
@@ -293,22 +268,18 @@ TEST_F(WindowManagerTest, NewWindowBounds) {
EXPECT_TRUE(first->bounds().origin().IsOrigin());
// A second window should have the same bounds as the first one.
- scoped_ptr<aura::Window> second(CreateWindow(&delegate));
- aura::client::ParentWindowWithContext(
- second.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
+ scoped_ptr<aura::Window> second(CreateAndActivateWindow(&delegate));
EXPECT_EQ(first->bounds().ToString(), second->bounds().ToString());
// Get into split view.
- wm_api.GetSplitViewController()->ActivateSplitMode(NULL, NULL);
+ wm_api.GetSplitViewController()->ActivateSplitMode(NULL, second.get());
const gfx::Rect left_bounds =
wm_api.GetSplitViewController()->left_window()->bounds();
EXPECT_NE(work_area.ToString(),
left_bounds.size().ToString());
// A new window should replace the left window when in split view.
- scoped_ptr<aura::Window> third(CreateWindow(&delegate));
- aura::client::ParentWindowWithContext(
- third.get(), ScreenManager::Get()->GetContext(), gfx::Rect());
+ scoped_ptr<aura::Window> third(CreateAndActivateWindow(&delegate));
EXPECT_EQ(wm_api.GetSplitViewController()->left_window(), third.get());
EXPECT_EQ(left_bounds.ToString(), third->bounds().ToString());
}
@@ -317,21 +288,15 @@ TEST_F(WindowManagerTest, SplitModeActivationByShortcut) {
test::WindowManagerImplTestApi wm_api;
aura::test::TestWindowDelegate delegate;
- scoped_ptr<aura::Window> w1(CreateTestWindow(&delegate, gfx::Rect()));
- w1->Show();
-
- ui::test::EventGenerator generator(root_window());
+ scoped_ptr<aura::Window> w1(CreateAndActivateWindow(&delegate));
// Splitview mode needs at least two windows.
- generator.PressKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN);
- generator.ReleaseKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN);
+ wm_api.wm()->ToggleSplitView();
EXPECT_FALSE(wm_api.GetSplitViewController()->IsSplitViewModeActive());
- scoped_ptr<aura::Window> w2(CreateTestWindow(&delegate, gfx::Rect()));
- w2->Show();
+ scoped_ptr<aura::Window> w2(CreateAndActivateWindow(&delegate));
- generator.PressKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN);
- generator.ReleaseKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN);
+ wm_api.wm()->ToggleSplitView();
pkotwicz 2014/09/08 02:27:46 In order for accelerators to work when an activity
EXPECT_TRUE(wm_api.GetSplitViewController()->IsSplitViewModeActive());
int width =
gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().work_area().width();
@@ -340,8 +305,7 @@ TEST_F(WindowManagerTest, SplitModeActivationByShortcut) {
EXPECT_EQ(width / 2, w2->bounds().width());
// Toggle back to normal mode.
- generator.PressKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN);
- generator.ReleaseKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN);
+ wm_api.wm()->ToggleSplitView();
EXPECT_FALSE(wm_api.GetSplitViewController()->IsSplitViewModeActive());
EXPECT_EQ(width, w1->bounds().width());
@@ -352,12 +316,12 @@ TEST_F(WindowManagerTest, OverviewModeFromSplitMode) {
test::WindowManagerImplTestApi wm_api;
aura::test::TestWindowDelegate delegate;
- scoped_ptr<aura::Window> w1(CreateTestWindow(&delegate, gfx::Rect()));
- scoped_ptr<aura::Window> w2(CreateTestWindow(&delegate, gfx::Rect()));
- scoped_ptr<aura::Window> w3(CreateTestWindow(&delegate, gfx::Rect()));
+ scoped_ptr<aura::Window> w1(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> w2(CreateAndActivateWindow(&delegate));
+ scoped_ptr<aura::Window> w3(CreateAndActivateWindow(&delegate));
// Get into split-view mode, and then turn on overview mode.
- wm_api.GetSplitViewController()->ActivateSplitMode(NULL, NULL);
+ wm_api.GetSplitViewController()->ActivateSplitMode(w3.get(), NULL);
WindowManager::GetInstance()->ToggleOverview();
EXPECT_TRUE(wm_api.GetSplitViewController()->IsSplitViewModeActive());
EXPECT_EQ(w3.get(), wm_api.GetSplitViewController()->left_window());
« athena/wm/window_manager_impl.cc ('K') | « athena/wm/window_manager_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698