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

Side by Side Diff: ash/wm/custom_frame_view_ash_unittest.cc

Issue 23471004: Only support left/right maximizing at 50% width when the --ash-enable-alternate-caption-button (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch is now friendlier to pending docking changes Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/custom_frame_view_ash.h" 5 #include "ash/wm/custom_frame_view_ash.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/maximize_bubble_controller.h" 9 #include "ash/wm/maximize_bubble_controller.h"
10 #include "ash/wm/property_util.h" 10 #include "ash/wm/property_util.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 { 194 {
195 generator.PressLeftButton(); 195 generator.PressLeftButton();
196 generator.MoveMouseBy(10, 0); 196 generator.MoveMouseBy(10, 0);
197 generator.ReleaseLeftButton(); 197 generator.ReleaseLeftButton();
198 RunAllPendingInMessageLoop(); 198 RunAllPendingInMessageLoop();
199 199
200 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); 200 EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
201 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); 201 EXPECT_FALSE(ash::wm::IsWindowMinimized(window));
202 internal::SnapSizer sizer(window, center, 202 internal::SnapSizer sizer(window, center,
203 internal::SnapSizer::RIGHT_EDGE, 203 internal::SnapSizer::RIGHT_EDGE,
204 internal::SnapSizer::OTHER_INPUT); 204 internal::SnapSizer::STEP_NO);
205 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); 205 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString());
206 } 206 }
207 207
208 // Snap left. 208 // Snap left.
209 { 209 {
210 center = view->GetBoundsInScreen().CenterPoint(); 210 center = view->GetBoundsInScreen().CenterPoint();
211 generator.MoveMouseTo(center); 211 generator.MoveMouseTo(center);
212 generator.PressLeftButton(); 212 generator.PressLeftButton();
213 generator.MoveMouseBy(-10, 0); 213 generator.MoveMouseBy(-10, 0);
214 generator.ReleaseLeftButton(); 214 generator.ReleaseLeftButton();
215 RunAllPendingInMessageLoop(); 215 RunAllPendingInMessageLoop();
216 216
217 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); 217 EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
218 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); 218 EXPECT_FALSE(ash::wm::IsWindowMinimized(window));
219 internal::SnapSizer sizer(window, center, 219 internal::SnapSizer sizer(window, center,
220 internal::SnapSizer::LEFT_EDGE, 220 internal::SnapSizer::LEFT_EDGE,
221 internal::SnapSizer::OTHER_INPUT); 221 internal::SnapSizer::STEP_NO);
222 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); 222 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString());
223 } 223 }
224 224
225 // Minimize. 225 // Minimize.
226 { 226 {
227 center = view->GetBoundsInScreen().CenterPoint(); 227 center = view->GetBoundsInScreen().CenterPoint();
228 generator.MoveMouseTo(center); 228 generator.MoveMouseTo(center);
229 generator.PressLeftButton(); 229 generator.PressLeftButton();
230 generator.MoveMouseBy(0, 10); 230 generator.MoveMouseBy(0, 10);
231 generator.ReleaseLeftButton(); 231 generator.ReleaseLeftButton();
(...skipping 11 matching lines...) Expand all
243 center = view->GetBoundsInScreen().CenterPoint(); 243 center = view->GetBoundsInScreen().CenterPoint();
244 gfx::Point end = center; 244 gfx::Point end = center;
245 end.Offset(40, 0); 245 end.Offset(40, 0);
246 generator.GestureScrollSequence(center, end, 246 generator.GestureScrollSequence(center, end,
247 base::TimeDelta::FromMilliseconds(100), 247 base::TimeDelta::FromMilliseconds(100),
248 3); 248 3);
249 RunAllPendingInMessageLoop(); 249 RunAllPendingInMessageLoop();
250 250
251 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); 251 EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
252 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); 252 EXPECT_FALSE(ash::wm::IsWindowMinimized(window));
253 // This is a short resizing distance and different touch behavior 253 internal::SnapSizer sizer(window, center,
254 // applies which leads in half of the screen being used. 254 internal::SnapSizer::RIGHT_EDGE,
255 EXPECT_EQ("400,0 400x552", window->bounds().ToString()); 255 internal::SnapSizer::STEP_NO);
256 EXPECT_EQ(sizer.target_bounds(), window->bounds().ToString());
256 } 257 }
257 258
258 // Snap left. 259 // Snap left.
259 { 260 {
260 center = view->GetBoundsInScreen().CenterPoint(); 261 center = view->GetBoundsInScreen().CenterPoint();
261 gfx::Point end = center; 262 gfx::Point end = center;
262 end.Offset(-40, 0); 263 end.Offset(-40, 0);
263 generator.GestureScrollSequence(center, end, 264 generator.GestureScrollSequence(center, end,
264 base::TimeDelta::FromMilliseconds(100), 265 base::TimeDelta::FromMilliseconds(100),
265 3); 266 3);
266 RunAllPendingInMessageLoop(); 267 RunAllPendingInMessageLoop();
267 268
268 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); 269 EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
269 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); 270 EXPECT_FALSE(ash::wm::IsWindowMinimized(window));
270 internal::SnapSizer sizer(window, center, 271 internal::SnapSizer sizer(window, center,
271 internal::SnapSizer::LEFT_EDGE, 272 internal::SnapSizer::LEFT_EDGE,
272 internal::SnapSizer::OTHER_INPUT); 273 internal::SnapSizer::STEP_NO);
273 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); 274 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString());
274 } 275 }
275 276
276 // Minimize. 277 // Minimize.
277 { 278 {
278 center = view->GetBoundsInScreen().CenterPoint(); 279 center = view->GetBoundsInScreen().CenterPoint();
279 gfx::Point end = center; 280 gfx::Point end = center;
280 end.Offset(0, 40); 281 end.Offset(0, 40);
281 generator.GestureScrollSequence(center, end, 282 generator.GestureScrollSequence(center, end,
282 base::TimeDelta::FromMilliseconds(100), 283 base::TimeDelta::FromMilliseconds(100),
283 3); 284 3);
284 RunAllPendingInMessageLoop(); 285 RunAllPendingInMessageLoop();
285 286
286 EXPECT_TRUE(ash::wm::IsWindowMinimized(window)); 287 EXPECT_TRUE(ash::wm::IsWindowMinimized(window));
287 } 288 }
288 289
289 // Test with gesture events. 290 // Test with gesture events.
290 } 291 }
291 292
292 #if defined(OS_WIN)
293 // RootWindow and Display can't resize on Windows Ash. http://crbug.com/165962
294 #define MAYBE_TouchDragResizeCloseToCornerDiffersFromMouse \
295 DISABLED_TouchDragResizeCloseToCornerDiffersFromMouse
296 #else
297 #define MAYBE_TouchDragResizeCloseToCornerDiffersFromMouse \
298 TouchDragResizeCloseToCornerDiffersFromMouse
299 #endif
300
301 // Tests Left/Right snapping with resize button touch dragging - which should
302 // trigger dependent on the available drag distance.
303 TEST_F(CustomFrameViewAshTest,
304 MAYBE_TouchDragResizeCloseToCornerDiffersFromMouse) {
varkha 2013/08/30 17:13:25 I understand that you don't need to test that touc
pkotwicz 2013/08/30 21:10:57 Yes, we test snapping left and right via touch in
305 aura::Window* window = widget()->GetNativeWindow();
306 views::View* view = maximize_button();
307
308 gfx::Rect work_area = widget()->GetWorkAreaBoundsInScreen();
309 gfx::Rect bounds = window->bounds();
310 bounds.set_x(work_area.width() - bounds.width());
311 widget()->SetBounds(bounds);
312
313 gfx::Point start_point = view->GetBoundsInScreen().CenterPoint();
314 // We want to move all the way to the right (the few pixels we have).
315 gfx::Point end_point = gfx::Point(work_area.width(), start_point.y());
316
317 aura::test::EventGenerator generator(window->GetRootWindow(), start_point);
318
319 EXPECT_TRUE(ash::wm::IsWindowNormal(window));
320
321 // Snap right with a touch drag.
322 generator.GestureScrollSequence(start_point,
323 end_point,
324 base::TimeDelta::FromMilliseconds(100),
325 10);
326 RunAllPendingInMessageLoop();
327
328 EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
329 EXPECT_FALSE(ash::wm::IsWindowMinimized(window));
330 gfx::Rect touch_result = window->bounds();
331 EXPECT_NE(bounds.ToString(), touch_result.ToString());
332
333 // Set the position back to where it was before and re-try with a mouse.
334 widget()->SetBounds(bounds);
335
336 generator.MoveMouseTo(start_point);
337 generator.PressLeftButton();
338 generator.MoveMouseTo(end_point, 10);
339 generator.ReleaseLeftButton();
340 RunAllPendingInMessageLoop();
341
342 EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
343 EXPECT_FALSE(ash::wm::IsWindowMinimized(window));
344 gfx::Rect mouse_result = window->bounds();
345
346 // The difference between the two operations should be that the mouse
347 // operation should have just started to resize and the touch operation is
348 // already all the way down to the smallest possible size.
349 EXPECT_NE(mouse_result.ToString(), touch_result.ToString());
350 EXPECT_GT(mouse_result.width(), touch_result.width());
351 }
352
353 // Test that closing the (browser) window with an opened balloon does not 293 // Test that closing the (browser) window with an opened balloon does not
354 // crash the system. In other words: Make sure that shutting down the frame 294 // crash the system. In other words: Make sure that shutting down the frame
355 // destroys the opened balloon in an orderly fashion. 295 // destroys the opened balloon in an orderly fashion.
356 TEST_F(CustomFrameViewAshTest, MaximizeButtonExternalShutDown) { 296 TEST_F(CustomFrameViewAshTest, MaximizeButtonExternalShutDown) {
357 aura::Window* window = widget()->GetNativeWindow(); 297 aura::Window* window = widget()->GetNativeWindow();
358 ash::FrameMaximizeButton* maximize_button = 298 ash::FrameMaximizeButton* maximize_button =
359 CustomFrameViewAshTest::maximize_button(); 299 CustomFrameViewAshTest::maximize_button();
360 maximize_button->set_bubble_appearance_delay_ms(0); 300 maximize_button->set_bubble_appearance_delay_ms(0);
361 gfx::Point button_pos = maximize_button->GetBoundsInScreen().CenterPoint(); 301 gfx::Point button_pos = maximize_button->GetBoundsInScreen().CenterPoint();
362 gfx::Point off_pos(button_pos.x() + 100, button_pos.y() + 100); 302 gfx::Point off_pos(button_pos.x() + 100, button_pos.y() + 100);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 EXPECT_TRUE(maximize_button->phantom_window_open()); 408 EXPECT_TRUE(maximize_button->phantom_window_open());
469 generator.ClickLeftButton(); 409 generator.ClickLeftButton();
470 410
471 EXPECT_FALSE(maximize_button->maximizer()); 411 EXPECT_FALSE(maximize_button->maximizer());
472 EXPECT_FALSE(maximize_button->phantom_window_open()); 412 EXPECT_FALSE(maximize_button->phantom_window_open());
473 413
474 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); 414 EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
475 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); 415 EXPECT_FALSE(ash::wm::IsWindowMinimized(window));
476 internal::SnapSizer sizer(window, button_pos, 416 internal::SnapSizer sizer(window, button_pos,
477 internal::SnapSizer::LEFT_EDGE, 417 internal::SnapSizer::LEFT_EDGE,
478 internal::SnapSizer::OTHER_INPUT); 418 internal::SnapSizer::STEP_NO);
479 sizer.SelectDefaultSizeAndDisableResize(); 419 sizer.SelectDefaultSizeAndDisableResize();
480 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); 420 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString());
481 } 421 }
482 422
483 // Test that the activation focus does not change when the bubble gets shown. 423 // Test that the activation focus does not change when the bubble gets shown.
484 TEST_F(CustomFrameViewAshTest, MaximizeKeepFocus) { 424 TEST_F(CustomFrameViewAshTest, MaximizeKeepFocus) {
485 aura::Window* window = widget()->GetNativeWindow(); 425 aura::Window* window = widget()->GetNativeWindow();
486 ash::FrameMaximizeButton* maximize_button = 426 ash::FrameMaximizeButton* maximize_button =
487 CustomFrameViewAshTest::maximize_button(); 427 CustomFrameViewAshTest::maximize_button();
488 maximize_button->set_bubble_appearance_delay_ms(0); 428 maximize_button->set_bubble_appearance_delay_ms(0);
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 746
807 // Check that there was no size change. 747 // Check that there was no size change.
808 EXPECT_EQ(widget()->GetWindowBoundsInScreen().size().ToString(), 748 EXPECT_EQ(widget()->GetWindowBoundsInScreen().size().ToString(),
809 initial_bounds.size().ToString()); 749 initial_bounds.size().ToString());
810 // Check that there is no phantom window left open. 750 // Check that there is no phantom window left open.
811 EXPECT_FALSE(maximize_button->phantom_window_open()); 751 EXPECT_FALSE(maximize_button->phantom_window_open());
812 } 752 }
813 753
814 } // namespace test 754 } // namespace test
815 } // namespace ash 755 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698