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

Side by Side Diff: athena/wm/window_manager_unittest.cc

Issue 546123002: Ensure that an activity is activated when overview mode is exited (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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "athena/wm/public/window_manager.h" 5 #include "athena/wm/public/window_manager.h"
6 6
7 #include "athena/screen/public/screen_manager.h" 7 #include "athena/screen/public/screen_manager.h"
8 #include "athena/test/athena_test_base.h" 8 #include "athena/test/athena_test_base.h"
9 #include "athena/wm/public/window_list_provider.h" 9 #include "athena/wm/public/window_list_provider.h"
10 #include "athena/wm/split_view_controller.h" 10 #include "athena/wm/split_view_controller.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 ASSERT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive()); 53 ASSERT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive());
54 EXPECT_EQ(first->bounds().ToString(), second->bounds().ToString()); 54 EXPECT_EQ(first->bounds().ToString(), second->bounds().ToString());
55 EXPECT_EQ(gfx::Screen::GetNativeScreen() 55 EXPECT_EQ(gfx::Screen::GetNativeScreen()
56 ->GetPrimaryDisplay() 56 ->GetPrimaryDisplay()
57 .work_area() 57 .work_area()
58 .size() 58 .size()
59 .ToString(), 59 .ToString(),
60 first->bounds().size().ToString()); 60 first->bounds().size().ToString());
61 EXPECT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive()); 61 EXPECT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive());
62 62
63 // Tests that going into overview mode does not change the window bounds.
64 WindowManager::GetInstance()->ToggleOverview(); 63 WindowManager::GetInstance()->ToggleOverview();
65 ASSERT_TRUE(WindowManager::GetInstance()->IsOverviewModeActive()); 64 ASSERT_TRUE(WindowManager::GetInstance()->IsOverviewModeActive());
65
66 // |second| should no longer be active. If |second| were to stay active, it
67 // would be possible to type text into a text field in |second| and to stay
68 // in overview mode.
69 EXPECT_FALSE(wm::IsActiveWindow(first.get()));
70 EXPECT_FALSE(wm::IsActiveWindow(second.get()));
71
72 // Entering overview mode should not have changed the window bounds.
66 EXPECT_EQ(first->bounds().ToString(), second->bounds().ToString()); 73 EXPECT_EQ(first->bounds().ToString(), second->bounds().ToString());
67 EXPECT_EQ(gfx::Screen::GetNativeScreen() 74 EXPECT_EQ(gfx::Screen::GetNativeScreen()
68 ->GetPrimaryDisplay() 75 ->GetPrimaryDisplay()
69 .work_area() 76 .work_area()
70 .size() 77 .size()
71 .ToString(), 78 .ToString(),
72 first->bounds().size().ToString()); 79 first->bounds().size().ToString());
73 EXPECT_TRUE(first->IsVisible()); 80 EXPECT_TRUE(first->IsVisible());
74 EXPECT_TRUE(second->IsVisible()); 81 EXPECT_TRUE(second->IsVisible());
75 82
76 // Terminate overview mode. |first| should be hidden, since it's not visible 83 // Terminate overview mode. |first| should be hidden, since it's not visible
77 // to the user anymore. 84 // to the user anymore.
78 WindowManager::GetInstance()->ToggleOverview(); 85 WindowManager::GetInstance()->ToggleOverview();
79 ASSERT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive()); 86 ASSERT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive());
80 EXPECT_FALSE(first->IsVisible()); 87 EXPECT_FALSE(first->IsVisible());
81 EXPECT_TRUE(second->IsVisible()); 88 EXPECT_TRUE(second->IsVisible());
89 EXPECT_TRUE(wm::IsActiveWindow(second.get()));
82 } 90 }
83 91
84 TEST_F(WindowManagerTest, OverviewToSplitViewMode) { 92 TEST_F(WindowManagerTest, OverviewToSplitViewMode) {
85 test::WindowManagerImplTestApi wm_api; 93 test::WindowManagerImplTestApi wm_api;
86 94
87 aura::test::TestWindowDelegate delegate; 95 aura::test::TestWindowDelegate delegate;
88 scoped_ptr<aura::Window> w1(CreateTestWindow(&delegate, gfx::Rect())); 96 scoped_ptr<aura::Window> w1(CreateTestWindow(&delegate, gfx::Rect()));
89 scoped_ptr<aura::Window> w2(CreateTestWindow(&delegate, gfx::Rect())); 97 scoped_ptr<aura::Window> w2(CreateTestWindow(&delegate, gfx::Rect()));
90 scoped_ptr<aura::Window> w3(CreateTestWindow(&delegate, gfx::Rect())); 98 scoped_ptr<aura::Window> w3(CreateTestWindow(&delegate, gfx::Rect()));
91 wm::ActivateWindow(w3.get()); 99 wm::ActivateWindow(w3.get());
92 100
93 WindowManager::GetInstance()->ToggleOverview(); 101 WindowManager::GetInstance()->ToggleOverview();
94 EXPECT_TRUE(w1->IsVisible()); 102 EXPECT_TRUE(w1->IsVisible());
95 EXPECT_TRUE(w2->IsVisible()); 103 EXPECT_TRUE(w2->IsVisible());
96 EXPECT_TRUE(w3->IsVisible()); 104 EXPECT_TRUE(w3->IsVisible());
97 105
98 // Go into split-view mode. 106 // Go into split-view mode.
99 WindowOverviewModeDelegate* overview_delegate = wm_api.wm(); 107 WindowOverviewModeDelegate* overview_delegate = wm_api.wm();
100 overview_delegate->OnSplitViewMode(NULL, w2.get()); 108 overview_delegate->OnSelectWindow(w2.get(),
109 WindowOverviewModeDelegate::SPLIT_LEFT);
101 EXPECT_TRUE(w3->IsVisible()); 110 EXPECT_TRUE(w3->IsVisible());
102 EXPECT_TRUE(w2->IsVisible()); 111 EXPECT_TRUE(w2->IsVisible());
103 EXPECT_FALSE(w1->IsVisible()); 112 EXPECT_FALSE(w1->IsVisible());
113 EXPECT_TRUE(wm::IsActiveWindow(w2.get()));
114 }
115
116 TEST_F(WindowManagerTest, NewWindowFromOverview) {
117 aura::test::TestWindowDelegate delegate;
118 scoped_ptr<aura::Window> w1(CreateTestWindow(&delegate, gfx::Rect()));
119 scoped_ptr<aura::Window> w2(CreateTestWindow(&delegate, gfx::Rect()));
120 wm::ActivateWindow(w2.get());
121
122 WindowManager::GetInstance()->ToggleOverview();
123 EXPECT_TRUE(w1->IsVisible());
124 EXPECT_TRUE(w2->IsVisible());
125
126 // Test that opening a new window exits overview mode. The new window could
127 // have been opened by JavaScript or by the home card.
128 scoped_ptr<aura::Window> w3(CreateTestWindow(&delegate, gfx::Rect()));
129
130 ASSERT_FALSE(WindowManager::GetInstance()->IsOverviewModeActive());
131 EXPECT_TRUE(w3->IsVisible());
132 EXPECT_TRUE(wm::IsActiveWindow(w3.get()));
133 EXPECT_FALSE(w1->IsVisible());
134 EXPECT_FALSE(w2->IsVisible());
104 } 135 }
105 136
106 TEST_F(WindowManagerTest, BezelGestureToSplitViewMode) { 137 TEST_F(WindowManagerTest, BezelGestureToSplitViewMode) {
107 aura::test::TestWindowDelegate delegate; 138 aura::test::TestWindowDelegate delegate;
108 scoped_ptr<aura::Window> first(CreateWindow(&delegate)); 139 scoped_ptr<aura::Window> first(CreateWindow(&delegate));
109 scoped_ptr<aura::Window> second(CreateWindow(&delegate)); 140 scoped_ptr<aura::Window> second(CreateWindow(&delegate));
110 scoped_ptr<aura::Window> third(CreateWindow(&delegate)); 141 scoped_ptr<aura::Window> third(CreateWindow(&delegate));
111 142
112 test::WindowManagerImplTestApi wm_api; 143 test::WindowManagerImplTestApi wm_api;
113 aura::client::ParentWindowWithContext( 144 aura::client::ParentWindowWithContext(
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 scoped_ptr<aura::Window> w3(CreateTestWindow(&delegate, gfx::Rect())); 388 scoped_ptr<aura::Window> w3(CreateTestWindow(&delegate, gfx::Rect()));
358 389
359 // Get into split-view mode, and then turn on overview mode. 390 // Get into split-view mode, and then turn on overview mode.
360 wm_api.GetSplitViewController()->ActivateSplitMode(NULL, NULL); 391 wm_api.GetSplitViewController()->ActivateSplitMode(NULL, NULL);
361 WindowManager::GetInstance()->ToggleOverview(); 392 WindowManager::GetInstance()->ToggleOverview();
362 EXPECT_TRUE(wm_api.GetSplitViewController()->IsSplitViewModeActive()); 393 EXPECT_TRUE(wm_api.GetSplitViewController()->IsSplitViewModeActive());
363 EXPECT_EQ(w3.get(), wm_api.GetSplitViewController()->left_window()); 394 EXPECT_EQ(w3.get(), wm_api.GetSplitViewController()->left_window());
364 EXPECT_EQ(w2.get(), wm_api.GetSplitViewController()->right_window()); 395 EXPECT_EQ(w2.get(), wm_api.GetSplitViewController()->right_window());
365 396
366 WindowOverviewModeDelegate* overview_delegate = wm_api.wm(); 397 WindowOverviewModeDelegate* overview_delegate = wm_api.wm();
367 overview_delegate->OnSelectWindow(w1.get()); 398 overview_delegate->OnSelectWindow(w1.get(),
399 WindowOverviewModeDelegate::SPLIT_NONE);
368 EXPECT_FALSE(wm_api.GetSplitViewController()->IsSplitViewModeActive()); 400 EXPECT_FALSE(wm_api.GetSplitViewController()->IsSplitViewModeActive());
369 EXPECT_TRUE(w1->IsVisible()); 401 EXPECT_TRUE(w1->IsVisible());
402 EXPECT_TRUE(wm::IsActiveWindow(w1.get()));
370 // Make sure the windows that were in split-view mode are hidden. 403 // Make sure the windows that were in split-view mode are hidden.
371 EXPECT_FALSE(w2->IsVisible()); 404 EXPECT_FALSE(w2->IsVisible());
372 EXPECT_FALSE(w3->IsVisible()); 405 EXPECT_FALSE(w3->IsVisible());
373 } 406 }
374 407
375 } // namespace athena 408 } // namespace athena
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698