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

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

Issue 653563004: NULL -> nullptr under athena/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Created 6 years, 2 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 | « athena/wm/split_view_controller.cc ('k') | athena/wm/title_drag_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/split_view_controller.h" 5 #include "athena/wm/split_view_controller.h"
6 6
7 #include "athena/screen/public/screen_manager.h" 7 #include "athena/screen/public/screen_manager.h"
8 #include "athena/test/base/athena_test_base.h" 8 #include "athena/test/base/athena_test_base.h"
9 #include "athena/test/base/test_windows.h" 9 #include "athena/test/base/test_windows.h"
10 #include "athena/wm/public/window_list_provider.h" 10 #include "athena/wm/public/window_list_provider.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 DISALLOW_COPY_AND_ASSIGN(SplitViewControllerTest); 96 DISALLOW_COPY_AND_ASSIGN(SplitViewControllerTest);
97 }; 97 };
98 98
99 // Tests that when split mode is activated, the windows on the left and right 99 // Tests that when split mode is activated, the windows on the left and right
100 // are selected correctly. 100 // are selected correctly.
101 TEST_F(SplitViewControllerTest, SplitModeActivation) { 101 TEST_F(SplitViewControllerTest, SplitModeActivation) {
102 aura::test::TestWindowDelegate delegate; 102 aura::test::TestWindowDelegate delegate;
103 ScopedVector<aura::Window> windows; 103 ScopedVector<aura::Window> windows;
104 const int kNumWindows = 6; 104 const int kNumWindows = 6;
105 for (size_t i = 0; i < kNumWindows; ++i) { 105 for (size_t i = 0; i < kNumWindows; ++i) {
106 scoped_ptr<aura::Window> window = test::CreateNormalWindow(NULL, NULL); 106 scoped_ptr<aura::Window> window =
107 test::CreateNormalWindow(nullptr, nullptr);
107 windows.push_back(window.release()); 108 windows.push_back(window.release());
108 windows[i]->Hide(); 109 windows[i]->Hide();
109 } 110 }
110 111
111 windows[kNumWindows - 1]->Show(); 112 windows[kNumWindows - 1]->Show();
112 wm::ActivateWindow(windows[kNumWindows - 1]); 113 wm::ActivateWindow(windows[kNumWindows - 1]);
113 114
114 SplitViewController* controller = api()->GetSplitViewController(); 115 SplitViewController* controller = api()->GetSplitViewController();
115 ASSERT_FALSE(controller->IsSplitViewModeActive()); 116 ASSERT_FALSE(controller->IsSplitViewModeActive());
116 117
117 controller->ActivateSplitMode(NULL, NULL, NULL); 118 controller->ActivateSplitMode(nullptr, nullptr, nullptr);
118 ASSERT_TRUE(controller->IsSplitViewModeActive()); 119 ASSERT_TRUE(controller->IsSplitViewModeActive());
119 // The last two windows should be on the left and right, respectively. 120 // The last two windows should be on the left and right, respectively.
120 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 121 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
121 EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); 122 EXPECT_EQ(windows[kNumWindows - 2], controller->right_window());
122 EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow()); 123 EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow());
123 EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow()); 124 EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow());
124 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 125 EXPECT_TRUE(OnlySplitViewWindowsVisible());
125 126
126 // Select the window that is currently on the left for the right panel. The 127 // Select the window that is currently on the left for the right panel. The
127 // windows should switch. 128 // windows should switch.
128 controller->ActivateSplitMode( 129 controller->ActivateSplitMode(
129 NULL, windows[kNumWindows - 1], windows[kNumWindows - 1]); 130 nullptr, windows[kNumWindows - 1], windows[kNumWindows - 1]);
130 EXPECT_EQ(windows[kNumWindows - 2], controller->left_window()); 131 EXPECT_EQ(windows[kNumWindows - 2], controller->left_window());
131 EXPECT_EQ(windows[kNumWindows - 1], controller->right_window()); 132 EXPECT_EQ(windows[kNumWindows - 1], controller->right_window());
132 EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow()); 133 EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow());
133 EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow()); 134 EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow());
134 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 135 EXPECT_TRUE(OnlySplitViewWindowsVisible());
135 136
136 controller->ActivateSplitMode( 137 controller->ActivateSplitMode(
137 windows[kNumWindows - 1], NULL, windows[kNumWindows - 1]); 138 windows[kNumWindows - 1], nullptr, windows[kNumWindows - 1]);
138 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 139 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
139 EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); 140 EXPECT_EQ(windows[kNumWindows - 2], controller->right_window());
140 EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow()); 141 EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow());
141 EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow()); 142 EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow());
142 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 143 EXPECT_TRUE(OnlySplitViewWindowsVisible());
143 144
144 // Select the same windows, but pass in a different window to activate. 145 // Select the same windows, but pass in a different window to activate.
145 controller->ActivateSplitMode(windows[kNumWindows - 1], 146 controller->ActivateSplitMode(windows[kNumWindows - 1],
146 windows[kNumWindows - 2], 147 windows[kNumWindows - 2],
147 windows[kNumWindows - 2]); 148 windows[kNumWindows - 2]);
148 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 149 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
149 EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); 150 EXPECT_EQ(windows[kNumWindows - 2], controller->right_window());
150 EXPECT_EQ(windows[kNumWindows - 2], GetTopmostWindow()); 151 EXPECT_EQ(windows[kNumWindows - 2], GetTopmostWindow());
151 EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow()); 152 EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow());
152 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 153 EXPECT_TRUE(OnlySplitViewWindowsVisible());
153 154
154 // Select one of the windows behind the stacks for the right panel. The window 155 // Select one of the windows behind the stacks for the right panel. The window
155 // on the left should remain unchanged. 156 // on the left should remain unchanged.
156 controller->ActivateSplitMode(NULL, windows[0], windows[0]); 157 controller->ActivateSplitMode(nullptr, windows[0], windows[0]);
157 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 158 EXPECT_EQ(windows[kNumWindows - 1], controller->left_window());
158 EXPECT_EQ(windows[0], controller->right_window()); 159 EXPECT_EQ(windows[0], controller->right_window());
159 EXPECT_EQ(windows[0], GetTopmostWindow()); 160 EXPECT_EQ(windows[0], GetTopmostWindow());
160 EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow()); 161 EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow());
161 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 162 EXPECT_TRUE(OnlySplitViewWindowsVisible());
162 163
163 controller->ActivateSplitMode(windows[1], NULL, NULL); 164 controller->ActivateSplitMode(windows[1], nullptr, nullptr);
164 EXPECT_EQ(windows[1], controller->left_window()); 165 EXPECT_EQ(windows[1], controller->left_window());
165 EXPECT_EQ(windows[0], controller->right_window()); 166 EXPECT_EQ(windows[0], controller->right_window());
166 EXPECT_EQ(windows[0], GetTopmostWindow()); 167 EXPECT_EQ(windows[0], GetTopmostWindow());
167 EXPECT_EQ(windows[1], GetSecondTopmostWindow()); 168 EXPECT_EQ(windows[1], GetSecondTopmostWindow());
168 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 169 EXPECT_TRUE(OnlySplitViewWindowsVisible());
169 170
170 controller->ActivateSplitMode(windows[4], windows[5], windows[5]); 171 controller->ActivateSplitMode(windows[4], windows[5], windows[5]);
171 EXPECT_EQ(windows[4], controller->left_window()); 172 EXPECT_EQ(windows[4], controller->left_window());
172 EXPECT_EQ(windows[5], controller->right_window()); 173 EXPECT_EQ(windows[5], controller->right_window());
173 EXPECT_EQ(windows[5], GetTopmostWindow()); 174 EXPECT_EQ(windows[5], GetTopmostWindow());
174 EXPECT_EQ(windows[4], GetSecondTopmostWindow()); 175 EXPECT_EQ(windows[4], GetSecondTopmostWindow());
175 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 176 EXPECT_TRUE(OnlySplitViewWindowsVisible());
176 177
177 controller->ActivateSplitMode(windows[0], NULL, windows[0]); 178 controller->ActivateSplitMode(windows[0], nullptr, windows[0]);
178 EXPECT_EQ(windows[0], controller->left_window()); 179 EXPECT_EQ(windows[0], controller->left_window());
179 EXPECT_EQ(windows[5], controller->right_window()); 180 EXPECT_EQ(windows[5], controller->right_window());
180 EXPECT_EQ(windows[0], GetTopmostWindow()); 181 EXPECT_EQ(windows[0], GetTopmostWindow());
181 EXPECT_EQ(windows[5], GetSecondTopmostWindow()); 182 EXPECT_EQ(windows[5], GetSecondTopmostWindow());
182 EXPECT_TRUE(OnlySplitViewWindowsVisible()); 183 EXPECT_TRUE(OnlySplitViewWindowsVisible());
183 } 184 }
184 185
185 // Helper function used to return the x-translation value of the layer 186 // Helper function used to return the x-translation value of the layer
186 // containing |window|. 187 // containing |window|.
187 float XTranslationForWindow(aura::Window* window) { 188 float XTranslationForWindow(aura::Window* window) {
188 return window->layer()->transform().To2dTranslation().x(); 189 return window->layer()->transform().To2dTranslation().x();
189 } 190 }
190 191
191 // Tests that calls to the methods of DragHandleScrollDelegate will disengage 192 // Tests that calls to the methods of DragHandleScrollDelegate will disengage
192 // split view mode under the correct circumstances. 193 // split view mode under the correct circumstances.
193 TEST_F(SplitViewControllerTest, ScrollDragHandle) { 194 TEST_F(SplitViewControllerTest, ScrollDragHandle) {
194 aura::test::TestWindowDelegate delegate; 195 aura::test::TestWindowDelegate delegate;
195 ScopedVector<aura::Window> windows; 196 ScopedVector<aura::Window> windows;
196 const int kNumWindows = 2; 197 const int kNumWindows = 2;
197 for (size_t i = 0; i < kNumWindows; ++i) { 198 for (size_t i = 0; i < kNumWindows; ++i) {
198 scoped_ptr<aura::Window> window = test::CreateNormalWindow(NULL, NULL); 199 scoped_ptr<aura::Window> window =
200 test::CreateNormalWindow(nullptr, nullptr);
199 windows.push_back(window.release()); 201 windows.push_back(window.release());
200 windows[i]->Hide(); 202 windows[i]->Hide();
201 } 203 }
202 204
203 SplitViewController* controller = api()->GetSplitViewController(); 205 SplitViewController* controller = api()->GetSplitViewController();
204 ASSERT_FALSE(controller->IsSplitViewModeActive()); 206 ASSERT_FALSE(controller->IsSplitViewModeActive());
205 207
206 aura::Window* left_window = windows[0]; 208 aura::Window* left_window = windows[0];
207 aura::Window* right_window = windows[1]; 209 aura::Window* right_window = windows[1];
208 left_window->Show(); 210 left_window->Show();
(...skipping 23 matching lines...) Expand all
232 ASSERT_TRUE(controller->IsSplitViewModeActive()); 234 ASSERT_TRUE(controller->IsSplitViewModeActive());
233 EXPECT_EQ(left_window, controller->left_window()); 235 EXPECT_EQ(left_window, controller->left_window());
234 EXPECT_EQ(right_window, controller->right_window()); 236 EXPECT_EQ(right_window, controller->right_window());
235 237
236 // Scroll far enough to the right to be able to disengage split view. Split 238 // Scroll far enough to the right to be able to disengage split view. Split
237 // view should be disengaged with the left window active. 239 // view should be disengaged with the left window active.
238 HandleScrollBegin(small_distance); 240 HandleScrollBegin(small_distance);
239 HandleScrollUpdate(large_distance); 241 HandleScrollUpdate(large_distance);
240 HandleScrollEnd(0.0f); 242 HandleScrollEnd(0.0f);
241 ASSERT_FALSE(controller->IsSplitViewModeActive()); 243 ASSERT_FALSE(controller->IsSplitViewModeActive());
242 EXPECT_EQ(NULL, controller->left_window()); 244 EXPECT_EQ(nullptr, controller->left_window());
243 EXPECT_EQ(NULL, controller->right_window()); 245 EXPECT_EQ(nullptr, controller->right_window());
244 EXPECT_EQ(left_window, GetTopmostWindow()); 246 EXPECT_EQ(left_window, GetTopmostWindow());
245 247
246 // Re-activate split view mode. 248 // Re-activate split view mode.
247 controller->ActivateSplitMode(left_window, right_window, left_window); 249 controller->ActivateSplitMode(left_window, right_window, left_window);
248 250
249 // Start scrolling a small distance and then fling, but not fast enough to 251 // Start scrolling a small distance and then fling, but not fast enough to
250 // disengage split view (see kMinFlingVelocity). Split view mode should 252 // disengage split view (see kMinFlingVelocity). Split view mode should
251 // remain engaged. Also verify that |right_window| is translated correctly. 253 // remain engaged. Also verify that |right_window| is translated correctly.
252 EXPECT_EQ(0.0f, XTranslationForWindow(right_window)); 254 EXPECT_EQ(0.0f, XTranslationForWindow(right_window));
253 HandleScrollBegin(-small_distance + 1.0f); 255 HandleScrollBegin(-small_distance + 1.0f);
254 EXPECT_EQ(-small_distance + 1.0f, XTranslationForWindow(right_window)); 256 EXPECT_EQ(-small_distance + 1.0f, XTranslationForWindow(right_window));
255 HandleScrollUpdate(-small_distance); 257 HandleScrollUpdate(-small_distance);
256 EXPECT_EQ(-small_distance, XTranslationForWindow(right_window)); 258 EXPECT_EQ(-small_distance, XTranslationForWindow(right_window));
257 HandleScrollEnd(slow_velocity); 259 HandleScrollEnd(slow_velocity);
258 EXPECT_EQ(0.0f, XTranslationForWindow(right_window)); 260 EXPECT_EQ(0.0f, XTranslationForWindow(right_window));
259 ASSERT_TRUE(controller->IsSplitViewModeActive()); 261 ASSERT_TRUE(controller->IsSplitViewModeActive());
260 EXPECT_EQ(left_window, controller->left_window()); 262 EXPECT_EQ(left_window, controller->left_window());
261 EXPECT_EQ(right_window, controller->right_window()); 263 EXPECT_EQ(right_window, controller->right_window());
262 264
263 // Scroll far enough to the left to be able to disengage split view, then 265 // Scroll far enough to the left to be able to disengage split view, then
264 // fling to the right (but not faster than kMinFlingVelocity). Split view 266 // fling to the right (but not faster than kMinFlingVelocity). Split view
265 // should be disengaged with the right window active. 267 // should be disengaged with the right window active.
266 HandleScrollBegin(-small_distance); 268 HandleScrollBegin(-small_distance);
267 HandleScrollUpdate(-large_distance); 269 HandleScrollUpdate(-large_distance);
268 HandleScrollEnd(slow_velocity); 270 HandleScrollEnd(slow_velocity);
269 ASSERT_FALSE(controller->IsSplitViewModeActive()); 271 ASSERT_FALSE(controller->IsSplitViewModeActive());
270 EXPECT_EQ(NULL, controller->left_window()); 272 EXPECT_EQ(nullptr, controller->left_window());
271 EXPECT_EQ(NULL, controller->right_window()); 273 EXPECT_EQ(nullptr, controller->right_window());
272 EXPECT_EQ(right_window, GetTopmostWindow()); 274 EXPECT_EQ(right_window, GetTopmostWindow());
273 275
274 // Re-activate split view mode. 276 // Re-activate split view mode.
275 controller->ActivateSplitMode(left_window, right_window, left_window); 277 controller->ActivateSplitMode(left_window, right_window, left_window);
276 278
277 // Scroll far enough to the left to be able to disengage split view, then 279 // Scroll far enough to the left to be able to disengage split view, then
278 // fling to the right, this time faster than kMinFlingVelocity). Split view 280 // fling to the right, this time faster than kMinFlingVelocity). Split view
279 // should be disengaged with the left window active. 281 // should be disengaged with the left window active.
280 HandleScrollBegin(-small_distance); 282 HandleScrollBegin(-small_distance);
281 HandleScrollUpdate(-large_distance); 283 HandleScrollUpdate(-large_distance);
282 HandleScrollEnd(fast_velocity); 284 HandleScrollEnd(fast_velocity);
283 ASSERT_FALSE(controller->IsSplitViewModeActive()); 285 ASSERT_FALSE(controller->IsSplitViewModeActive());
284 EXPECT_EQ(NULL, controller->left_window()); 286 EXPECT_EQ(nullptr, controller->left_window());
285 EXPECT_EQ(NULL, controller->right_window()); 287 EXPECT_EQ(nullptr, controller->right_window());
286 EXPECT_EQ(left_window, GetTopmostWindow()); 288 EXPECT_EQ(left_window, GetTopmostWindow());
287 } 289 }
288 290
289 TEST_F(SplitViewControllerTest, LandscapeOnly) { 291 TEST_F(SplitViewControllerTest, LandscapeOnly) {
290 aura::test::TestWindowDelegate delegate; 292 aura::test::TestWindowDelegate delegate;
291 ScopedVector<aura::Window> windows; 293 ScopedVector<aura::Window> windows;
292 const int kNumWindows = 2; 294 const int kNumWindows = 2;
293 for (size_t i = 0; i < kNumWindows; ++i) { 295 for (size_t i = 0; i < kNumWindows; ++i) {
294 scoped_ptr<aura::Window> window = test::CreateNormalWindow(NULL, NULL); 296 scoped_ptr<aura::Window> window =
297 test::CreateNormalWindow(nullptr, nullptr);
295 window->Hide(); 298 window->Hide();
296 windows.push_back(window.release()); 299 windows.push_back(window.release());
297 } 300 }
298 windows[kNumWindows - 1]->Show(); 301 windows[kNumWindows - 1]->Show();
299 wm::ActivateWindow(windows[kNumWindows - 1]); 302 wm::ActivateWindow(windows[kNumWindows - 1]);
300 303
301 ASSERT_EQ(gfx::Display::ROTATE_0, 304 ASSERT_EQ(gfx::Display::ROTATE_0,
302 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation()); 305 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation());
303 306
304 SplitViewController* controller = api()->GetSplitViewController(); 307 SplitViewController* controller = api()->GetSplitViewController();
305 ASSERT_TRUE(IsSplitViewAllowed()); 308 ASSERT_TRUE(IsSplitViewAllowed());
306 ASSERT_FALSE(controller->IsSplitViewModeActive()); 309 ASSERT_FALSE(controller->IsSplitViewModeActive());
307 310
308 controller->ActivateSplitMode(NULL, NULL, NULL); 311 controller->ActivateSplitMode(nullptr, nullptr, nullptr);
309 ASSERT_TRUE(controller->IsSplitViewModeActive()); 312 ASSERT_TRUE(controller->IsSplitViewModeActive());
310 313
311 // Screen rotation should be locked while in splitview. 314 // Screen rotation should be locked while in splitview.
312 ScreenManager::Get()->SetRotation(gfx::Display::ROTATE_90); 315 ScreenManager::Get()->SetRotation(gfx::Display::ROTATE_90);
313 EXPECT_EQ(gfx::Display::ROTATE_0, 316 EXPECT_EQ(gfx::Display::ROTATE_0,
314 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation()); 317 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation());
315 318
316 // Screen is rotated on exiting splitview. 319 // Screen is rotated on exiting splitview.
317 controller->DeactivateSplitMode(); 320 controller->DeactivateSplitMode();
318 ASSERT_EQ(gfx::Display::ROTATE_90, 321 ASSERT_EQ(gfx::Display::ROTATE_90,
319 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation()); 322 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation());
320 323
321 // Entering splitview should now be disabled now that the screen is in a 324 // Entering splitview should now be disabled now that the screen is in a
322 // portrait orientation. 325 // portrait orientation.
323 EXPECT_FALSE(IsSplitViewAllowed()); 326 EXPECT_FALSE(IsSplitViewAllowed());
324 327
325 // Rotating back to 0 allows splitview again. 328 // Rotating back to 0 allows splitview again.
326 ScreenManager::Get()->SetRotation(gfx::Display::ROTATE_0); 329 ScreenManager::Get()->SetRotation(gfx::Display::ROTATE_0);
327 EXPECT_TRUE(IsSplitViewAllowed()); 330 EXPECT_TRUE(IsSplitViewAllowed());
328 } 331 }
329 332
330 } // namespace athena 333 } // namespace athena
OLDNEW
« no previous file with comments | « athena/wm/split_view_controller.cc ('k') | athena/wm/title_drag_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698