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

Side by Side Diff: ash/shelf/shelf_layout_manager_unittest.cc

Issue 306483003: Prepare for Unified Gesture Recognizer landing in Aura (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: All Gesture events should have timestamps. (UGR on) Created 6 years, 6 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/shelf/shelf_layout_manager.h" 5 #include "ash/shelf/shelf_layout_manager.h"
6 6
7 #include "ash/accelerators/accelerator_controller.h" 7 #include "ash/accelerators/accelerator_controller.h"
8 #include "ash/accelerators/accelerator_table.h" 8 #include "ash/accelerators/accelerator_table.h"
9 #include "ash/ash_switches.h" 9 #include "ash/ash_switches.h"
10 #include "ash/display/display_manager.h" 10 #include "ash/display/display_manager.h"
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 ShelfLayoutManager* shelf = GetShelfLayoutManager(); 384 ShelfLayoutManager* shelf = GetShelfLayoutManager();
385 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 385 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
386 views::Widget* widget = new views::Widget; 386 views::Widget* widget = new views::Widget;
387 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); 387 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
388 params.bounds = gfx::Rect(0, 0, 200, 200); 388 params.bounds = gfx::Rect(0, 0, 200, 200);
389 params.context = CurrentContext(); 389 params.context = CurrentContext();
390 widget->Init(params); 390 widget->Init(params);
391 widget->Show(); 391 widget->Show();
392 widget->Maximize(); 392 widget->Maximize();
393 393
394 const base::TimeDelta kTimeDelta = base::TimeDelta::FromMilliseconds(40);
395
394 aura::Window* window = widget->GetNativeWindow(); 396 aura::Window* window = widget->GetNativeWindow();
395 shelf->LayoutShelf(); 397 shelf->LayoutShelf();
396 398
397 gfx::Rect shelf_shown = GetShelfWidget()->GetWindowBoundsInScreen(); 399 gfx::Rect shelf_shown = GetShelfWidget()->GetWindowBoundsInScreen();
398 gfx::Rect bounds_shelf = window->bounds(); 400 gfx::Rect bounds_shelf = window->bounds();
399 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 401 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
400 402
401 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 403 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
402 shelf->LayoutShelf(); 404 shelf->LayoutShelf();
403 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 405 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
404 406
405 gfx::Rect bounds_noshelf = window->bounds(); 407 gfx::Rect bounds_noshelf = window->bounds();
406 gfx::Rect shelf_hidden = GetShelfWidget()->GetWindowBoundsInScreen(); 408 gfx::Rect shelf_hidden = GetShelfWidget()->GetWindowBoundsInScreen();
407 409
408 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 410 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
409 shelf->LayoutShelf(); 411 shelf->LayoutShelf();
410 412
411 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); 413 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
412 const int kNumScrollSteps = 4; 414 const int kNumScrollSteps = 4;
413 ShelfDragCallback handler(shelf_hidden, shelf_shown); 415 ShelfDragCallback handler(shelf_hidden, shelf_shown);
414 416
415 // Swipe up on the shelf. This should not change any state. 417 // Swipe up on the shelf. This should not change any state.
416 gfx::Point start = GetShelfWidget()->GetWindowBoundsInScreen().CenterPoint(); 418 gfx::Point start = GetShelfWidget()->GetWindowBoundsInScreen().CenterPoint();
417 gfx::Point end = start + delta; 419 gfx::Point end = start + delta;
418 420
419 // Swipe down on the shelf to hide it. 421 // Swipe down on the shelf to hide it.
420 generator.GestureScrollSequenceWithCallback(start, end, 422 generator.GestureScrollSequenceWithCallback(start, end,
421 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 423 kTimeDelta, kNumScrollSteps,
422 base::Bind(&ShelfDragCallback::ProcessScroll, 424 base::Bind(&ShelfDragCallback::ProcessScroll,
423 base::Unretained(&handler))); 425 base::Unretained(&handler)));
424 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 426 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
425 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 427 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
426 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 428 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
427 EXPECT_NE(bounds_shelf.ToString(), window->bounds().ToString()); 429 EXPECT_NE(bounds_shelf.ToString(), window->bounds().ToString());
428 EXPECT_NE(shelf_shown.ToString(), 430 EXPECT_NE(shelf_shown.ToString(),
429 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 431 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
430 432
431 // Swipe up to show the shelf. 433 // Swipe up to show the shelf.
432 generator.GestureScrollSequenceWithCallback(end, start, 434 generator.GestureScrollSequenceWithCallback(end, start,
433 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 435 kTimeDelta, kNumScrollSteps,
434 base::Bind(&ShelfDragCallback::ProcessScroll, 436 base::Bind(&ShelfDragCallback::ProcessScroll,
435 base::Unretained(&handler))); 437 base::Unretained(&handler)));
436 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 438 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
437 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 439 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
438 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); 440 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString());
439 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), 441 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(),
440 GetShelfWidget()->GetWindowBoundsInScreen()); 442 GetShelfWidget()->GetWindowBoundsInScreen());
441 EXPECT_EQ(shelf_shown.ToString(), 443 EXPECT_EQ(shelf_shown.ToString(),
442 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 444 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
443 445
444 // Swipe up again. The shelf should hide. 446 // Swipe up again. The shelf should hide.
445 end = start - delta; 447 end = start - delta;
446 generator.GestureScrollSequenceWithCallback(start, end, 448 generator.GestureScrollSequenceWithCallback(start, end,
447 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 449 kTimeDelta, kNumScrollSteps,
448 base::Bind(&ShelfDragCallback::ProcessScroll, 450 base::Bind(&ShelfDragCallback::ProcessScroll,
449 base::Unretained(&handler))); 451 base::Unretained(&handler)));
450 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 452 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
451 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 453 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
452 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 454 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
453 EXPECT_EQ(shelf_hidden.ToString(), 455 EXPECT_EQ(shelf_hidden.ToString(),
454 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 456 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
455 457
456 // Swipe up yet again to show it. 458 // Swipe up yet again to show it.
457 end = start + delta; 459 end = start + delta;
458 generator.GestureScrollSequenceWithCallback(end, start, 460 generator.GestureScrollSequenceWithCallback(end, start,
459 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 461 kTimeDelta, kNumScrollSteps,
460 base::Bind(&ShelfDragCallback::ProcessScroll, 462 base::Bind(&ShelfDragCallback::ProcessScroll,
461 base::Unretained(&handler))); 463 base::Unretained(&handler)));
462 464
463 // Swipe down very little. It shouldn't change any state. 465 // Swipe down very little. It shouldn't change any state.
464 if (GetShelfLayoutManager()->IsHorizontalAlignment()) 466 if (GetShelfLayoutManager()->IsHorizontalAlignment())
465 end.set_y(start.y() + shelf_shown.height() * 3 / 10); 467 end.set_y(start.y() + shelf_shown.height() * 3 / 10);
466 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) 468 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment())
467 end.set_x(start.x() - shelf_shown.width() * 3 / 10); 469 end.set_x(start.x() - shelf_shown.width() * 3 / 10);
468 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) 470 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment())
469 end.set_x(start.x() + shelf_shown.width() * 3 / 10); 471 end.set_x(start.x() + shelf_shown.width() * 3 / 10);
470 generator.GestureScrollSequence(start, end, 472 generator.GestureScrollSequence(start, end, kTimeDelta, 5);
471 base::TimeDelta::FromMilliseconds(10), 5);
472 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 473 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
473 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 474 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
474 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); 475 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString());
475 EXPECT_EQ(shelf_shown.ToString(), 476 EXPECT_EQ(shelf_shown.ToString(),
476 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 477 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
477 478
478 // Swipe down again to hide. 479 // Swipe down again to hide.
479 end = start + delta; 480 end = start + delta;
480 generator.GestureScrollSequenceWithCallback(start, end, 481 generator.GestureScrollSequenceWithCallback(start, end,
481 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 482 kTimeDelta, kNumScrollSteps,
482 base::Bind(&ShelfDragCallback::ProcessScroll, 483 base::Bind(&ShelfDragCallback::ProcessScroll,
483 base::Unretained(&handler))); 484 base::Unretained(&handler)));
484 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 485 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
485 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 486 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
486 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 487 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
487 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); 488 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect());
488 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); 489 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString());
489 EXPECT_EQ(shelf_hidden.ToString(), 490 EXPECT_EQ(shelf_hidden.ToString(),
490 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 491 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
491 492
492 // Swipe up in extended hit region to show it. 493 // Swipe up in extended hit region to show it.
493 gfx::Point extended_start = start; 494 gfx::Point extended_start = start;
494 if (GetShelfLayoutManager()->IsHorizontalAlignment()) 495 if (GetShelfLayoutManager()->IsHorizontalAlignment())
495 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1); 496 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1);
496 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) 497 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment())
497 extended_start.set_x( 498 extended_start.set_x(
498 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); 499 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1);
499 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) 500 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment())
500 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); 501 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1);
501 end = extended_start - delta; 502 end = extended_start - delta;
502 generator.GestureScrollSequenceWithCallback(extended_start, end, 503 generator.GestureScrollSequenceWithCallback(extended_start, end,
503 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 504 kTimeDelta, kNumScrollSteps,
504 base::Bind(&ShelfDragCallback::ProcessScroll, 505 base::Bind(&ShelfDragCallback::ProcessScroll,
505 base::Unretained(&handler))); 506 base::Unretained(&handler)));
506 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 507 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
507 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 508 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
508 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); 509 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString());
509 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), 510 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(),
510 GetShelfWidget()->GetWindowBoundsInScreen()); 511 GetShelfWidget()->GetWindowBoundsInScreen());
511 EXPECT_EQ(shelf_shown.ToString(), 512 EXPECT_EQ(shelf_shown.ToString(),
512 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 513 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
513 514
514 // Swipe down again to hide. 515 // Swipe down again to hide.
515 end = start + delta; 516 end = start + delta;
516 generator.GestureScrollSequenceWithCallback(start, end, 517 generator.GestureScrollSequenceWithCallback(start, end,
517 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 518 kTimeDelta, kNumScrollSteps,
518 base::Bind(&ShelfDragCallback::ProcessScroll, 519 base::Bind(&ShelfDragCallback::ProcessScroll,
519 base::Unretained(&handler))); 520 base::Unretained(&handler)));
520 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 521 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
521 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 522 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
522 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 523 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
523 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); 524 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect());
524 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); 525 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString());
525 EXPECT_EQ(shelf_hidden.ToString(), 526 EXPECT_EQ(shelf_hidden.ToString(),
526 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 527 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
527 528
528 // Swipe up outside the hit area. This should not change anything. 529 // Swipe up outside the hit area. This should not change anything.
529 gfx::Point outside_start = gfx::Point( 530 gfx::Point outside_start = gfx::Point(
530 (GetShelfWidget()->GetWindowBoundsInScreen().x() + 531 (GetShelfWidget()->GetWindowBoundsInScreen().x() +
531 GetShelfWidget()->GetWindowBoundsInScreen().right())/2, 532 GetShelfWidget()->GetWindowBoundsInScreen().right())/2,
532 GetShelfWidget()->GetWindowBoundsInScreen().y() - 50); 533 GetShelfWidget()->GetWindowBoundsInScreen().y() - 50);
533 end = outside_start + delta; 534 end = outside_start + delta;
534 generator.GestureScrollSequence(outside_start, 535 generator.GestureScrollSequence(
535 end, 536 outside_start, end, kTimeDelta, kNumScrollSteps);
536 base::TimeDelta::FromMilliseconds(10),
537 kNumScrollSteps);
538 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 537 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
539 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 538 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
540 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 539 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
541 EXPECT_EQ(shelf_hidden.ToString(), 540 EXPECT_EQ(shelf_hidden.ToString(),
542 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 541 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
543 542
544 // Swipe up from below the shelf where a bezel would be, this should show the 543 // Swipe up from below the shelf where a bezel would be, this should show the
545 // shelf. 544 // shelf.
546 gfx::Point below_start = start; 545 gfx::Point below_start = start;
547 if (GetShelfLayoutManager()->IsHorizontalAlignment()) 546 if (GetShelfLayoutManager()->IsHorizontalAlignment())
548 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); 547 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1);
549 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) 548 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment())
550 below_start.set_x( 549 below_start.set_x(
551 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); 550 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1);
552 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) 551 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment())
553 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); 552 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1);
554 end = below_start - delta; 553 end = below_start - delta;
555 generator.GestureScrollSequence(below_start, 554 generator.GestureScrollSequence(
556 end, 555 below_start, end, kTimeDelta, kNumScrollSteps);
557 base::TimeDelta::FromMilliseconds(10),
558 kNumScrollSteps);
559 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 556 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
560 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 557 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
561 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); 558 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString());
562 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), 559 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(),
563 GetShelfWidget()->GetWindowBoundsInScreen()); 560 GetShelfWidget()->GetWindowBoundsInScreen());
564 EXPECT_EQ(shelf_shown.ToString(), 561 EXPECT_EQ(shelf_shown.ToString(),
565 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 562 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
566 563
567 // Swipe down again to hide. 564 // Swipe down again to hide.
568 end = start + delta; 565 end = start + delta;
569 generator.GestureScrollSequenceWithCallback(start, end, 566 generator.GestureScrollSequenceWithCallback(start, end,
570 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 567 kTimeDelta, kNumScrollSteps,
571 base::Bind(&ShelfDragCallback::ProcessScroll, 568 base::Bind(&ShelfDragCallback::ProcessScroll,
572 base::Unretained(&handler))); 569 base::Unretained(&handler)));
573 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 570 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
574 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 571 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
575 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 572 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
576 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); 573 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect());
577 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); 574 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString());
578 EXPECT_EQ(shelf_hidden.ToString(), 575 EXPECT_EQ(shelf_hidden.ToString(),
579 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 576 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
580 577
581 // Put |widget| into fullscreen. Set the shelf to be auto hidden when |widget| 578 // Put |widget| into fullscreen. Set the shelf to be auto hidden when |widget|
582 // is fullscreen. (eg browser immersive fullscreen). 579 // is fullscreen. (eg browser immersive fullscreen).
583 widget->SetFullscreen(true); 580 widget->SetFullscreen(true);
584 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(false); 581 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(false);
585 shelf->UpdateVisibilityState(); 582 shelf->UpdateVisibilityState();
586 583
587 gfx::Rect bounds_fullscreen = window->bounds(); 584 gfx::Rect bounds_fullscreen = window->bounds();
588 EXPECT_TRUE(widget->IsFullscreen()); 585 EXPECT_TRUE(widget->IsFullscreen());
589 EXPECT_NE(bounds_noshelf.ToString(), bounds_fullscreen.ToString()); 586 EXPECT_NE(bounds_noshelf.ToString(), bounds_fullscreen.ToString());
590 587
591 // Swipe up. This should show the shelf. 588 // Swipe up. This should show the shelf.
592 end = below_start - delta; 589 end = below_start - delta;
593 generator.GestureScrollSequenceWithCallback(below_start, end, 590 generator.GestureScrollSequenceWithCallback(below_start, end,
594 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 591 kTimeDelta, kNumScrollSteps,
595 base::Bind(&ShelfDragCallback::ProcessScroll, 592 base::Bind(&ShelfDragCallback::ProcessScroll,
596 base::Unretained(&handler))); 593 base::Unretained(&handler)));
597 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 594 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
598 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); 595 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state());
599 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); 596 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior());
600 EXPECT_EQ(shelf_shown.ToString(), 597 EXPECT_EQ(shelf_shown.ToString(),
601 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 598 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
602 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); 599 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString());
603 600
604 // Swipe up again. This should hide the shelf. 601 // Swipe up again. This should hide the shelf.
605 generator.GestureScrollSequenceWithCallback(below_start, end, 602 generator.GestureScrollSequenceWithCallback(below_start, end,
606 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 603 kTimeDelta, kNumScrollSteps,
607 base::Bind(&ShelfDragCallback::ProcessScroll, 604 base::Bind(&ShelfDragCallback::ProcessScroll,
608 base::Unretained(&handler))); 605 base::Unretained(&handler)));
609 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 606 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
610 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 607 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
611 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 608 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
612 EXPECT_EQ(shelf_hidden.ToString(), 609 EXPECT_EQ(shelf_hidden.ToString(),
613 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); 610 GetShelfWidget()->GetWindowBoundsInScreen().ToString());
614 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); 611 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString());
615 612
616 // Set the shelf to be hidden when |widget| is fullscreen. (eg tab fullscreen 613 // Set the shelf to be hidden when |widget| is fullscreen. (eg tab fullscreen
617 // with or without immersive browser fullscreen). 614 // with or without immersive browser fullscreen).
618 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(true); 615 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(true);
619 shelf->UpdateVisibilityState(); 616 shelf->UpdateVisibilityState();
620 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); 617 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state());
621 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 618 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
622 619
623 // Swipe-up. This should not change anything. 620 // Swipe-up. This should not change anything.
624 end = start - delta; 621 end = start - delta;
625 generator.GestureScrollSequenceWithCallback(below_start, end, 622 generator.GestureScrollSequenceWithCallback(below_start, end,
626 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 623 kTimeDelta, kNumScrollSteps,
627 base::Bind(&ShelfDragCallback::ProcessScroll, 624 base::Bind(&ShelfDragCallback::ProcessScroll,
628 base::Unretained(&handler))); 625 base::Unretained(&handler)));
629 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); 626 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state());
630 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 627 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
631 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); 628 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString());
632 629
633 // Close actually, otherwise further event may be affected since widget 630 // Close actually, otherwise further event may be affected since widget
634 // is fullscreen status. 631 // is fullscreen status.
635 widget->Close(); 632 widget->Close();
636 RunAllPendingInMessageLoop(); 633 RunAllPendingInMessageLoop();
637 634
638 // The shelf should be shown because there are no more visible windows. 635 // The shelf should be shown because there are no more visible windows.
639 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 636 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
640 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); 637 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state());
641 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 638 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
642 639
643 // Swipe-up to hide. This should have no effect because there are no visible 640 // Swipe-up to hide. This should have no effect because there are no visible
644 // windows. 641 // windows.
645 end = below_start - delta; 642 end = below_start - delta;
646 generator.GestureScrollSequenceWithCallback(below_start, end, 643 generator.GestureScrollSequenceWithCallback(below_start, end,
647 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, 644 kTimeDelta, kNumScrollSteps,
648 base::Bind(&ShelfDragCallback::ProcessScroll, 645 base::Bind(&ShelfDragCallback::ProcessScroll,
649 base::Unretained(&handler))); 646 base::Unretained(&handler)));
650 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 647 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
651 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); 648 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state());
652 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 649 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
653 } 650 }
654 651
655 // Need to be implemented. http://crbug.com/111279. 652 // Need to be implemented. http://crbug.com/111279.
656 #if defined(OS_WIN) 653 #if defined(OS_WIN)
657 #define MAYBE_SetVisible DISABLED_SetVisible 654 #define MAYBE_SetVisible DISABLED_SetVisible
(...skipping 1427 matching lines...) Expand 10 before | Expand all | Expand 10 after
2085 generator.MoveMouseTo(0, 399); 2082 generator.MoveMouseTo(0, 399);
2086 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); 2083 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT);
2087 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2084 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2088 generator.ClickLeftButton(); 2085 generator.ClickLeftButton();
2089 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); 2086 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown());
2090 generator.ClickLeftButton(); 2087 generator.ClickLeftButton();
2091 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 2088 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
2092 } 2089 }
2093 2090
2094 } // namespace ash 2091 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698