Chromium Code Reviews| 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(start, end, |
| 421 base::TimeDelta::FromMilliseconds(10), kNumScrollSteps, | 423 kTimeDelta, kNumScrollSteps, |
|
Mr4D (OOO till 08-26)
2014/06/02 14:32:59
Our style guide requires to put each parameter int
tdresser
2014/06/02 14:43:47
Done.
| |
| 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 Loading... | |
| 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 |
| OLD | NEW |