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

Side by Side Diff: ash/wm/splitview/split_view_controller_unittest.cc

Issue 2978273002: Revert of Cros Tablet Window management - Split Screen part II (Closed)
Patch Set: Created 3 years, 5 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
« no previous file with comments | « ash/wm/splitview/split_view_controller.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "ash/wm/splitview/split_view_controller.h" 5 #include "ash/wm/splitview/split_view_controller.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "ash/wm/overview/window_selector_controller.h"
10 #include "ash/wm/window_state.h" 9 #include "ash/wm/window_state.h"
11 #include "ash/wm/window_util.h" 10 #include "ash/wm/window_util.h"
12 #include "ash/wm/wm_event.h" 11 #include "ash/wm/wm_event.h"
13 #include "ui/aura/test/test_window_delegate.h" 12 #include "ui/aura/test/test_window_delegate.h"
14 13
15 namespace ash { 14 namespace ash {
16 15
17 class SplitViewControllerTest : public AshTestBase { 16 class SplitViewControllerTest : public AshTestBase {
18 public: 17 public:
19 SplitViewControllerTest() {} 18 SplitViewControllerTest() {}
20 ~SplitViewControllerTest() override {} 19 ~SplitViewControllerTest() override {}
21 20
22 aura::Window* CreateWindow(const gfx::Rect& bounds) { 21 aura::Window* CreateWindow(const gfx::Rect& bounds) {
23 aura::Window* window = 22 aura::Window* window =
24 CreateTestWindowInShellWithDelegate(&delegate_, -1, bounds); 23 CreateTestWindowInShellWithDelegate(&delegate_, -1, bounds);
25 return window; 24 return window;
26 } 25 }
27 26
28 void EndSplitView() { split_view_controller()->EndSplitView(); } 27 void EndSplitView() { split_view_controller()->EndSplitView(); }
29 28
30 void ToggleOverview() {
31 Shell::Get()->window_selector_controller()->ToggleOverview();
32 }
33
34 std::vector<aura::Window*> GetWindowsInOverviewGrids() {
35 return Shell::Get()
36 ->window_selector_controller()
37 ->GetWindowsListInOverviewGridsForTesting();
38 }
39
40 SplitViewController* split_view_controller() { 29 SplitViewController* split_view_controller() {
41 return Shell::Get()->split_view_controller(); 30 return Shell::Get()->split_view_controller();
42 } 31 }
43 32
44 private: 33 private:
45 aura::test::TestWindowDelegate delegate_; 34 aura::test::TestWindowDelegate delegate_;
46 35
47 DISALLOW_COPY_AND_ASSIGN(SplitViewControllerTest); 36 DISALLOW_COPY_AND_ASSIGN(SplitViewControllerTest);
48 }; 37 };
49 38
50 // Tests the basic functionalities. 39 // Tests the basic functionalities.
51 TEST_F(SplitViewControllerTest, Basic) { 40 TEST_F(SplitViewControllerTest, Basic) {
52 const gfx::Rect bounds(0, 0, 400, 400); 41 const gfx::Rect bounds(0, 0, 400, 400);
53 std::unique_ptr<aura::Window> window1(CreateWindow(bounds)); 42 std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
54 std::unique_ptr<aura::Window> window2(CreateWindow(bounds)); 43 std::unique_ptr<aura::Window> window2(CreateWindow(bounds));
55 44
56 EXPECT_EQ(split_view_controller()->state(), SplitViewController::NO_SNAP); 45 EXPECT_EQ(split_view_controller()->state(), SplitViewController::NO_SNAP);
57 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), false); 46 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), false);
58 47
59 split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT); 48 split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
60 EXPECT_EQ(split_view_controller()->state(), 49 EXPECT_EQ(split_view_controller()->state(),
61 SplitViewController::LEFT_SNAPPED); 50 SplitViewController::LEFT_SNAPPED);
62 EXPECT_EQ(split_view_controller()->left_window(), window1.get()); 51 EXPECT_EQ(split_view_controller()->left_window(), window1.get());
63 EXPECT_NE(split_view_controller()->left_window(), window2.get()); 52 EXPECT_NE(split_view_controller()->left_window(), window2.get());
64 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), true); 53 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), true);
65 EXPECT_EQ(window1->GetBoundsInScreen(), 54 EXPECT_EQ(window1->GetBoundsInScreen(),
66 split_view_controller()->GetSnappedWindowBoundsInScreen( 55 split_view_controller()->GetSnappedWindowBoundsInScreen(
67 window1.get(), SplitViewController::LEFT)); 56 window1.get(), SplitViewController::LEFT_SNAPPED));
68 57
69 split_view_controller()->SnapWindow(window2.get(), 58 split_view_controller()->SnapWindow(window2.get(),
70 SplitViewController::RIGHT); 59 SplitViewController::RIGHT);
71 EXPECT_EQ(split_view_controller()->state(), 60 EXPECT_EQ(split_view_controller()->state(),
72 SplitViewController::BOTH_SNAPPED); 61 SplitViewController::BOTH_SNAPPED);
73 EXPECT_EQ(split_view_controller()->right_window(), window2.get()); 62 EXPECT_EQ(split_view_controller()->right_window(), window2.get());
74 EXPECT_NE(split_view_controller()->right_window(), window1.get()); 63 EXPECT_NE(split_view_controller()->right_window(), window1.get());
75 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), true); 64 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), true);
76 EXPECT_EQ(window2->GetBoundsInScreen(), 65 EXPECT_EQ(window2->GetBoundsInScreen(),
77 split_view_controller()->GetSnappedWindowBoundsInScreen( 66 split_view_controller()->GetSnappedWindowBoundsInScreen(
78 window2.get(), SplitViewController::RIGHT)); 67 window2.get(), SplitViewController::RIGHT_SNAPPED));
79 68
80 EndSplitView(); 69 EndSplitView();
81 EXPECT_EQ(split_view_controller()->state(), SplitViewController::NO_SNAP); 70 EXPECT_EQ(split_view_controller()->state(), SplitViewController::NO_SNAP);
82 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), false); 71 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), false);
83 } 72 }
84 73
85 // Tests that the default snapped window is the first window that gets snapped. 74 // Tests that the default snapped window is the first window that gets snapped.
86 TEST_F(SplitViewControllerTest, DefaultSnappedWindow) { 75 TEST_F(SplitViewControllerTest, DefaultSnappedWindow) {
87 const gfx::Rect bounds(0, 0, 400, 400); 76 const gfx::Rect bounds(0, 0, 400, 400);
88 std::unique_ptr<aura::Window> window1(CreateWindow(bounds)); 77 std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 EXPECT_EQ(split_view_controller()->right_window(), window2.get()); 153 EXPECT_EQ(split_view_controller()->right_window(), window2.get());
165 EXPECT_EQ(split_view_controller()->state(), 154 EXPECT_EQ(split_view_controller()->state(),
166 SplitViewController::BOTH_SNAPPED); 155 SplitViewController::BOTH_SNAPPED);
167 156
168 wm::ActivateWindow(window3.get()); 157 wm::ActivateWindow(window3.get());
169 EXPECT_EQ(split_view_controller()->right_window(), window3.get()); 158 EXPECT_EQ(split_view_controller()->right_window(), window3.get());
170 EXPECT_EQ(split_view_controller()->state(), 159 EXPECT_EQ(split_view_controller()->state(),
171 SplitViewController::BOTH_SNAPPED); 160 SplitViewController::BOTH_SNAPPED);
172 } 161 }
173 162
174 // Tests that if split view mode and overview mode are active at the same time,
175 // i.e., half of the screen is occupied by a snapped window and half of the
176 // screen is occupied by the overview windows grid, the next activatable window
177 // will be picked to snap when exiting the overview mode.
178 TEST_F(SplitViewControllerTest, ExitOverviewTest) {
179 const gfx::Rect bounds(0, 0, 400, 400);
180 std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
181 std::unique_ptr<aura::Window> window2(CreateWindow(bounds));
182 std::unique_ptr<aura::Window> window3(CreateWindow(bounds));
183 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), false);
184
185 ToggleOverview();
186 split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
187 EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), true);
188 EXPECT_EQ(split_view_controller()->state(),
189 SplitViewController::LEFT_SNAPPED);
190 EXPECT_EQ(split_view_controller()->left_window(), window1.get());
191
192 ToggleOverview();
193 EXPECT_EQ(split_view_controller()->state(),
194 SplitViewController::BOTH_SNAPPED);
195 EXPECT_EQ(split_view_controller()->right_window(), window3.get());
196 }
197
198 // Tests that if split view mode is active when entering overview, the overview
199 // windows grid should show in the non-default side of the screen, and the
200 // default snapped window should not be shown in the overview window grid.
201 TEST_F(SplitViewControllerTest, EnterOverviewTest) {
202 const gfx::Rect bounds(0, 0, 400, 400);
203 std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
204 std::unique_ptr<aura::Window> window2(CreateWindow(bounds));
205 std::unique_ptr<aura::Window> window3(CreateWindow(bounds));
206
207 split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
208 split_view_controller()->SnapWindow(window2.get(),
209 SplitViewController::RIGHT);
210 EXPECT_EQ(split_view_controller()->state(),
211 SplitViewController::BOTH_SNAPPED);
212 EXPECT_EQ(split_view_controller()->GetDefaultSnappedWindow(), window1.get());
213
214 ToggleOverview();
215 EXPECT_EQ(split_view_controller()->state(),
216 SplitViewController::LEFT_SNAPPED);
217 std::vector<aura::Window*> windows = GetWindowsInOverviewGrids();
218 auto iter = std::find(windows.begin(), windows.end(),
219 split_view_controller()->GetDefaultSnappedWindow());
220 EXPECT_TRUE(iter == windows.end());
221 }
222
223 } // namespace ash 163 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/splitview/split_view_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698