OLD | NEW |
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 Loading... |
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( |
421 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 423 start, |
| 424 end, |
| 425 kTimeDelta, |
| 426 kNumScrollSteps, |
422 base::Bind(&ShelfDragCallback::ProcessScroll, | 427 base::Bind(&ShelfDragCallback::ProcessScroll, |
423 base::Unretained(&handler))); | 428 base::Unretained(&handler))); |
424 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 429 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
425 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 430 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
426 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 431 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
427 EXPECT_NE(bounds_shelf.ToString(), window->bounds().ToString()); | 432 EXPECT_NE(bounds_shelf.ToString(), window->bounds().ToString()); |
428 EXPECT_NE(shelf_shown.ToString(), | 433 EXPECT_NE(shelf_shown.ToString(), |
429 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 434 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
430 | 435 |
431 // Swipe up to show the shelf. | 436 // Swipe up to show the shelf. |
432 generator.GestureScrollSequenceWithCallback(end, start, | 437 generator.GestureScrollSequenceWithCallback( |
433 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 438 end, |
| 439 start, |
| 440 kTimeDelta, |
| 441 kNumScrollSteps, |
434 base::Bind(&ShelfDragCallback::ProcessScroll, | 442 base::Bind(&ShelfDragCallback::ProcessScroll, |
435 base::Unretained(&handler))); | 443 base::Unretained(&handler))); |
436 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 444 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
437 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 445 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
438 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 446 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
439 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), | 447 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), |
440 GetShelfWidget()->GetWindowBoundsInScreen()); | 448 GetShelfWidget()->GetWindowBoundsInScreen()); |
441 EXPECT_EQ(shelf_shown.ToString(), | 449 EXPECT_EQ(shelf_shown.ToString(), |
442 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 450 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
443 | 451 |
444 // Swipe up again. The shelf should hide. | 452 // Swipe up again. The shelf should hide. |
445 end = start - delta; | 453 end = start - delta; |
446 generator.GestureScrollSequenceWithCallback(start, end, | 454 generator.GestureScrollSequenceWithCallback( |
447 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 455 start, |
| 456 end, |
| 457 kTimeDelta, |
| 458 kNumScrollSteps, |
448 base::Bind(&ShelfDragCallback::ProcessScroll, | 459 base::Bind(&ShelfDragCallback::ProcessScroll, |
449 base::Unretained(&handler))); | 460 base::Unretained(&handler))); |
450 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 461 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
451 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 462 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
452 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 463 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
453 EXPECT_EQ(shelf_hidden.ToString(), | 464 EXPECT_EQ(shelf_hidden.ToString(), |
454 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 465 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
455 | 466 |
456 // Swipe up yet again to show it. | 467 // Swipe up yet again to show it. |
457 end = start + delta; | 468 end = start + delta; |
458 generator.GestureScrollSequenceWithCallback(end, start, | 469 generator.GestureScrollSequenceWithCallback( |
459 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 470 end, |
| 471 start, |
| 472 kTimeDelta, |
| 473 kNumScrollSteps, |
460 base::Bind(&ShelfDragCallback::ProcessScroll, | 474 base::Bind(&ShelfDragCallback::ProcessScroll, |
461 base::Unretained(&handler))); | 475 base::Unretained(&handler))); |
462 | 476 |
463 // Swipe down very little. It shouldn't change any state. | 477 // Swipe down very little. It shouldn't change any state. |
464 if (GetShelfLayoutManager()->IsHorizontalAlignment()) | 478 if (GetShelfLayoutManager()->IsHorizontalAlignment()) |
465 end.set_y(start.y() + shelf_shown.height() * 3 / 10); | 479 end.set_y(start.y() + shelf_shown.height() * 3 / 10); |
466 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) | 480 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) |
467 end.set_x(start.x() - shelf_shown.width() * 3 / 10); | 481 end.set_x(start.x() - shelf_shown.width() * 3 / 10); |
468 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) | 482 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) |
469 end.set_x(start.x() + shelf_shown.width() * 3 / 10); | 483 end.set_x(start.x() + shelf_shown.width() * 3 / 10); |
470 generator.GestureScrollSequence(start, end, | 484 generator.GestureScrollSequence(start, end, kTimeDelta, 5); |
471 base::TimeDelta::FromMilliseconds(10), 5); | |
472 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 485 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
473 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 486 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
474 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 487 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
475 EXPECT_EQ(shelf_shown.ToString(), | 488 EXPECT_EQ(shelf_shown.ToString(), |
476 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 489 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
477 | 490 |
478 // Swipe down again to hide. | 491 // Swipe down again to hide. |
479 end = start + delta; | 492 end = start + delta; |
480 generator.GestureScrollSequenceWithCallback(start, end, | 493 generator.GestureScrollSequenceWithCallback( |
481 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 494 start, |
| 495 end, |
| 496 kTimeDelta, |
| 497 kNumScrollSteps, |
482 base::Bind(&ShelfDragCallback::ProcessScroll, | 498 base::Bind(&ShelfDragCallback::ProcessScroll, |
483 base::Unretained(&handler))); | 499 base::Unretained(&handler))); |
484 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 500 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
485 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 501 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
486 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 502 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
487 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); | 503 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); |
488 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); | 504 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); |
489 EXPECT_EQ(shelf_hidden.ToString(), | 505 EXPECT_EQ(shelf_hidden.ToString(), |
490 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 506 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
491 | 507 |
492 // Swipe up in extended hit region to show it. | 508 // Swipe up in extended hit region to show it. |
493 gfx::Point extended_start = start; | 509 gfx::Point extended_start = start; |
494 if (GetShelfLayoutManager()->IsHorizontalAlignment()) | 510 if (GetShelfLayoutManager()->IsHorizontalAlignment()) |
495 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1); | 511 extended_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().y() -1); |
496 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) | 512 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) |
497 extended_start.set_x( | 513 extended_start.set_x( |
498 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); | 514 GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); |
499 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) | 515 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) |
500 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); | 516 extended_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); |
501 end = extended_start - delta; | 517 end = extended_start - delta; |
502 generator.GestureScrollSequenceWithCallback(extended_start, end, | 518 generator.GestureScrollSequenceWithCallback( |
503 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 519 extended_start, |
| 520 end, |
| 521 kTimeDelta, |
| 522 kNumScrollSteps, |
504 base::Bind(&ShelfDragCallback::ProcessScroll, | 523 base::Bind(&ShelfDragCallback::ProcessScroll, |
505 base::Unretained(&handler))); | 524 base::Unretained(&handler))); |
506 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 525 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
507 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 526 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
508 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 527 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
509 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), | 528 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), |
510 GetShelfWidget()->GetWindowBoundsInScreen()); | 529 GetShelfWidget()->GetWindowBoundsInScreen()); |
511 EXPECT_EQ(shelf_shown.ToString(), | 530 EXPECT_EQ(shelf_shown.ToString(), |
512 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 531 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
513 | 532 |
514 // Swipe down again to hide. | 533 // Swipe down again to hide. |
515 end = start + delta; | 534 end = start + delta; |
516 generator.GestureScrollSequenceWithCallback(start, end, | 535 generator.GestureScrollSequenceWithCallback( |
517 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 536 start, |
| 537 end, |
| 538 kTimeDelta, |
| 539 kNumScrollSteps, |
518 base::Bind(&ShelfDragCallback::ProcessScroll, | 540 base::Bind(&ShelfDragCallback::ProcessScroll, |
519 base::Unretained(&handler))); | 541 base::Unretained(&handler))); |
520 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 542 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
521 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 543 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
522 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 544 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
523 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); | 545 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); |
524 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); | 546 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); |
525 EXPECT_EQ(shelf_hidden.ToString(), | 547 EXPECT_EQ(shelf_hidden.ToString(), |
526 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 548 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
527 | 549 |
528 // Swipe up outside the hit area. This should not change anything. | 550 // Swipe up outside the hit area. This should not change anything. |
529 gfx::Point outside_start = gfx::Point( | 551 gfx::Point outside_start = gfx::Point( |
530 (GetShelfWidget()->GetWindowBoundsInScreen().x() + | 552 (GetShelfWidget()->GetWindowBoundsInScreen().x() + |
531 GetShelfWidget()->GetWindowBoundsInScreen().right())/2, | 553 GetShelfWidget()->GetWindowBoundsInScreen().right())/2, |
532 GetShelfWidget()->GetWindowBoundsInScreen().y() - 50); | 554 GetShelfWidget()->GetWindowBoundsInScreen().y() - 50); |
533 end = outside_start + delta; | 555 end = outside_start + delta; |
534 generator.GestureScrollSequence(outside_start, | 556 generator.GestureScrollSequence( |
535 end, | 557 outside_start, end, kTimeDelta, kNumScrollSteps); |
536 base::TimeDelta::FromMilliseconds(10), | |
537 kNumScrollSteps); | |
538 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 558 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
539 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 559 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
540 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 560 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
541 EXPECT_EQ(shelf_hidden.ToString(), | 561 EXPECT_EQ(shelf_hidden.ToString(), |
542 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 562 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
543 | 563 |
544 // Swipe up from below the shelf where a bezel would be, this should show the | 564 // Swipe up from below the shelf where a bezel would be, this should show the |
545 // shelf. | 565 // shelf. |
546 gfx::Point below_start = start; | 566 gfx::Point below_start = start; |
547 if (GetShelfLayoutManager()->IsHorizontalAlignment()) | 567 if (GetShelfLayoutManager()->IsHorizontalAlignment()) |
548 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); | 568 below_start.set_y(GetShelfWidget()->GetWindowBoundsInScreen().bottom() + 1); |
549 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) | 569 else if (SHELF_ALIGNMENT_LEFT == GetShelfLayoutManager()->GetAlignment()) |
550 below_start.set_x( | 570 below_start.set_x( |
551 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); | 571 GetShelfWidget()->GetWindowBoundsInScreen().x() - 1); |
552 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) | 572 else if (SHELF_ALIGNMENT_RIGHT == GetShelfLayoutManager()->GetAlignment()) |
553 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); | 573 below_start.set_x(GetShelfWidget()->GetWindowBoundsInScreen().right() + 1); |
554 end = below_start - delta; | 574 end = below_start - delta; |
555 generator.GestureScrollSequence(below_start, | 575 generator.GestureScrollSequence( |
556 end, | 576 below_start, end, kTimeDelta, kNumScrollSteps); |
557 base::TimeDelta::FromMilliseconds(10), | |
558 kNumScrollSteps); | |
559 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 577 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
560 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 578 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
561 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); | 579 EXPECT_EQ(bounds_shelf.ToString(), window->bounds().ToString()); |
562 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), | 580 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), |
563 GetShelfWidget()->GetWindowBoundsInScreen()); | 581 GetShelfWidget()->GetWindowBoundsInScreen()); |
564 EXPECT_EQ(shelf_shown.ToString(), | 582 EXPECT_EQ(shelf_shown.ToString(), |
565 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 583 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
566 | 584 |
567 // Swipe down again to hide. | 585 // Swipe down again to hide. |
568 end = start + delta; | 586 end = start + delta; |
569 generator.GestureScrollSequenceWithCallback(start, end, | 587 generator.GestureScrollSequenceWithCallback( |
570 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 588 start, |
| 589 end, |
| 590 kTimeDelta, |
| 591 kNumScrollSteps, |
571 base::Bind(&ShelfDragCallback::ProcessScroll, | 592 base::Bind(&ShelfDragCallback::ProcessScroll, |
572 base::Unretained(&handler))); | 593 base::Unretained(&handler))); |
573 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 594 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
574 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 595 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
575 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 596 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
576 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); | 597 EXPECT_EQ(GetShelfWidget()->GetDimmerBoundsForTest(), gfx::Rect()); |
577 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); | 598 EXPECT_EQ(bounds_noshelf.ToString(), window->bounds().ToString()); |
578 EXPECT_EQ(shelf_hidden.ToString(), | 599 EXPECT_EQ(shelf_hidden.ToString(), |
579 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 600 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
580 | 601 |
581 // Put |widget| into fullscreen. Set the shelf to be auto hidden when |widget| | 602 // Put |widget| into fullscreen. Set the shelf to be auto hidden when |widget| |
582 // is fullscreen. (eg browser immersive fullscreen). | 603 // is fullscreen. (eg browser immersive fullscreen). |
583 widget->SetFullscreen(true); | 604 widget->SetFullscreen(true); |
584 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(false); | 605 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(false); |
585 shelf->UpdateVisibilityState(); | 606 shelf->UpdateVisibilityState(); |
586 | 607 |
587 gfx::Rect bounds_fullscreen = window->bounds(); | 608 gfx::Rect bounds_fullscreen = window->bounds(); |
588 EXPECT_TRUE(widget->IsFullscreen()); | 609 EXPECT_TRUE(widget->IsFullscreen()); |
589 EXPECT_NE(bounds_noshelf.ToString(), bounds_fullscreen.ToString()); | 610 EXPECT_NE(bounds_noshelf.ToString(), bounds_fullscreen.ToString()); |
590 | 611 |
591 // Swipe up. This should show the shelf. | 612 // Swipe up. This should show the shelf. |
592 end = below_start - delta; | 613 end = below_start - delta; |
593 generator.GestureScrollSequenceWithCallback(below_start, end, | 614 generator.GestureScrollSequenceWithCallback( |
594 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 615 below_start, |
| 616 end, |
| 617 kTimeDelta, |
| 618 kNumScrollSteps, |
595 base::Bind(&ShelfDragCallback::ProcessScroll, | 619 base::Bind(&ShelfDragCallback::ProcessScroll, |
596 base::Unretained(&handler))); | 620 base::Unretained(&handler))); |
597 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 621 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
598 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); | 622 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); |
599 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); | 623 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_NEVER, shelf->auto_hide_behavior()); |
600 EXPECT_EQ(shelf_shown.ToString(), | 624 EXPECT_EQ(shelf_shown.ToString(), |
601 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 625 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
602 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); | 626 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); |
603 | 627 |
604 // Swipe up again. This should hide the shelf. | 628 // Swipe up again. This should hide the shelf. |
605 generator.GestureScrollSequenceWithCallback(below_start, end, | 629 generator.GestureScrollSequenceWithCallback( |
606 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 630 below_start, |
| 631 end, |
| 632 kTimeDelta, |
| 633 kNumScrollSteps, |
607 base::Bind(&ShelfDragCallback::ProcessScroll, | 634 base::Bind(&ShelfDragCallback::ProcessScroll, |
608 base::Unretained(&handler))); | 635 base::Unretained(&handler))); |
609 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 636 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
610 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); | 637 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
611 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 638 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
612 EXPECT_EQ(shelf_hidden.ToString(), | 639 EXPECT_EQ(shelf_hidden.ToString(), |
613 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); | 640 GetShelfWidget()->GetWindowBoundsInScreen().ToString()); |
614 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); | 641 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); |
615 | 642 |
616 // Set the shelf to be hidden when |widget| is fullscreen. (eg tab fullscreen | 643 // Set the shelf to be hidden when |widget| is fullscreen. (eg tab fullscreen |
617 // with or without immersive browser fullscreen). | 644 // with or without immersive browser fullscreen). |
618 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(true); | 645 wm::GetWindowState(window)->set_hide_shelf_when_fullscreen(true); |
619 shelf->UpdateVisibilityState(); | 646 shelf->UpdateVisibilityState(); |
620 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); | 647 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); |
621 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 648 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
622 | 649 |
623 // Swipe-up. This should not change anything. | 650 // Swipe-up. This should not change anything. |
624 end = start - delta; | 651 end = start - delta; |
625 generator.GestureScrollSequenceWithCallback(below_start, end, | 652 generator.GestureScrollSequenceWithCallback( |
626 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 653 below_start, |
| 654 end, |
| 655 kTimeDelta, |
| 656 kNumScrollSteps, |
627 base::Bind(&ShelfDragCallback::ProcessScroll, | 657 base::Bind(&ShelfDragCallback::ProcessScroll, |
628 base::Unretained(&handler))); | 658 base::Unretained(&handler))); |
629 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); | 659 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); |
630 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 660 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
631 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); | 661 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); |
632 | 662 |
633 // Close actually, otherwise further event may be affected since widget | 663 // Close actually, otherwise further event may be affected since widget |
634 // is fullscreen status. | 664 // is fullscreen status. |
635 widget->Close(); | 665 widget->Close(); |
636 RunAllPendingInMessageLoop(); | 666 RunAllPendingInMessageLoop(); |
637 | 667 |
638 // The shelf should be shown because there are no more visible windows. | 668 // The shelf should be shown because there are no more visible windows. |
639 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 669 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
640 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); | 670 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); |
641 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 671 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
642 | 672 |
643 // Swipe-up to hide. This should have no effect because there are no visible | 673 // Swipe-up to hide. This should have no effect because there are no visible |
644 // windows. | 674 // windows. |
645 end = below_start - delta; | 675 end = below_start - delta; |
646 generator.GestureScrollSequenceWithCallback(below_start, end, | 676 generator.GestureScrollSequenceWithCallback( |
647 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 677 below_start, |
| 678 end, |
| 679 kTimeDelta, |
| 680 kNumScrollSteps, |
648 base::Bind(&ShelfDragCallback::ProcessScroll, | 681 base::Bind(&ShelfDragCallback::ProcessScroll, |
649 base::Unretained(&handler))); | 682 base::Unretained(&handler))); |
650 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); | 683 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); |
651 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); | 684 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); |
652 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); | 685 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); |
653 } | 686 } |
654 | 687 |
655 // Need to be implemented. http://crbug.com/111279. | 688 // Need to be implemented. http://crbug.com/111279. |
656 #if defined(OS_WIN) | 689 #if defined(OS_WIN) |
657 #define MAYBE_SetVisible DISABLED_SetVisible | 690 #define MAYBE_SetVisible DISABLED_SetVisible |
(...skipping 1427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2085 generator.MoveMouseTo(0, 399); | 2118 generator.MoveMouseTo(0, 399); |
2086 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); | 2119 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); |
2087 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2120 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2088 generator.ClickLeftButton(); | 2121 generator.ClickLeftButton(); |
2089 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); | 2122 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); |
2090 generator.ClickLeftButton(); | 2123 generator.ClickLeftButton(); |
2091 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); | 2124 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
2092 } | 2125 } |
2093 | 2126 |
2094 } // namespace ash | 2127 } // namespace ash |
OLD | NEW |