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

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

Issue 11476033: [Launcher per display] Removed Shell::status_area_widget(), system_tray() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix style Created 8 years 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/shelf_layout_manager.h" 5 #include "ash/wm/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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 namespace { 42 namespace {
43 43
44 void StepWidgetLayerAnimatorToEnd(views::Widget* widget) { 44 void StepWidgetLayerAnimatorToEnd(views::Widget* widget) {
45 ui::AnimationContainerElement* element = 45 ui::AnimationContainerElement* element =
46 static_cast<ui::AnimationContainerElement*>( 46 static_cast<ui::AnimationContainerElement*>(
47 widget->GetNativeView()->layer()->GetAnimator()); 47 widget->GetNativeView()->layer()->GetAnimator());
48 element->Step(base::TimeTicks::Now() + base::TimeDelta::FromSeconds(1)); 48 element->Step(base::TimeTicks::Now() + base::TimeDelta::FromSeconds(1));
49 } 49 }
50 50
51 ShelfLayoutManager* GetShelfLayoutManager() { 51 ShelfLayoutManager* GetShelfLayoutManager() {
52 aura::Window* window = Shell::GetContainer( 52 return Shell::GetPrimaryRootWindowController()->shelf();
53 Shell::GetPrimaryRootWindow(), 53 }
54 internal::kShellWindowId_LauncherContainer); 54
55 return static_cast<ShelfLayoutManager*>(window->layout_manager()); 55 SystemTray* GetSystemTray() {
56 return Shell::GetPrimaryRootWindowController()->GetSystemTray();
56 } 57 }
57 58
58 class ShelfLayoutObserverTest : public ShelfLayoutManager::Observer { 59 class ShelfLayoutObserverTest : public ShelfLayoutManager::Observer {
59 public: 60 public:
60 ShelfLayoutObserverTest() 61 ShelfLayoutObserverTest()
61 : changed_auto_hide_state_(false) { 62 : changed_auto_hide_state_(false) {
62 } 63 }
63 64
64 virtual ~ShelfLayoutObserverTest() {} 65 virtual ~ShelfLayoutObserverTest() {}
65 66
66 bool changed_auto_hide_state() const { return changed_auto_hide_state_; } 67 bool changed_auto_hide_state() const { return changed_auto_hide_state_; }
67 68
68 private: 69 private:
69 virtual void OnAutoHideStateChanged( 70 virtual void OnAutoHideStateChanged(
70 ShelfAutoHideState new_state) OVERRIDE { 71 ShelfAutoHideState new_state) OVERRIDE {
71 changed_auto_hide_state_ = true; 72 changed_auto_hide_state_ = true;
72 } 73 }
73 74
74 bool changed_auto_hide_state_; 75 bool changed_auto_hide_state_;
75 76
76 DISALLOW_COPY_AND_ASSIGN(ShelfLayoutObserverTest); 77 DISALLOW_COPY_AND_ASSIGN(ShelfLayoutObserverTest);
77 }; 78 };
78 79
79 // Trivial item implementation that tracks its views for testing. 80 // Trivial item implementation that tracks its views for testing.
80 class TestItem : public SystemTrayItem { 81 class TestItem : public SystemTrayItem {
81 public: 82 public:
82 TestItem() 83 TestItem()
83 : SystemTrayItem(Shell::GetInstance()->system_tray()), 84 : SystemTrayItem(GetSystemTray()),
84 tray_view_(NULL), 85 tray_view_(NULL),
85 default_view_(NULL), 86 default_view_(NULL),
86 detailed_view_(NULL), 87 detailed_view_(NULL),
87 notification_view_(NULL) {} 88 notification_view_(NULL) {}
88 89
89 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE { 90 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE {
90 tray_view_ = new views::View; 91 tray_view_ = new views::View;
91 // Add a label so it has non-zero width. 92 // Add a label so it has non-zero width.
92 tray_view_->SetLayoutManager(new views::FillLayout); 93 tray_view_->SetLayoutManager(new views::FillLayout);
93 tray_view_->AddChildView(new views::Label(UTF8ToUTF16("Tray"))); 94 tray_view_->AddChildView(new views::Label(UTF8ToUTF16("Tray")));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 147
147 DISALLOW_COPY_AND_ASSIGN(TestItem); 148 DISALLOW_COPY_AND_ASSIGN(TestItem);
148 }; 149 };
149 150
150 } // namespace 151 } // namespace
151 152
152 class ShelfLayoutManagerTest : public ash::test::AshTestBase { 153 class ShelfLayoutManagerTest : public ash::test::AshTestBase {
153 public: 154 public:
154 ShelfLayoutManagerTest() {} 155 ShelfLayoutManagerTest() {}
155 156
156 ShelfLayoutManager* shelf_layout_manager() {
157 return Shell::GetPrimaryRootWindowController()->shelf();
158 }
159
160 void SetState(ShelfLayoutManager* shelf, 157 void SetState(ShelfLayoutManager* shelf,
161 ShelfVisibilityState state) { 158 ShelfVisibilityState state) {
162 shelf->SetState(state); 159 shelf->SetState(state);
163 } 160 }
164 161
165 void UpdateAutoHideStateNow() { 162 void UpdateAutoHideStateNow() {
166 GetShelfLayoutManager()->UpdateAutoHideStateNow(); 163 GetShelfLayoutManager()->UpdateAutoHideStateNow();
167 } 164 }
168 165
169 aura::Window* CreateTestWindow() { 166 aura::Window* CreateTestWindow() {
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); 500 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state());
504 } 501 }
505 502
506 // Makes sure shelf will be visible when app list opens as shelf is in 503 // Makes sure shelf will be visible when app list opens as shelf is in
507 // SHELF_VISIBLE state,and toggling app list won't change shelf 504 // SHELF_VISIBLE state,and toggling app list won't change shelf
508 // visibility state. 505 // visibility state.
509 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) { 506 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) {
510 Shell* shell = Shell::GetInstance(); 507 Shell* shell = Shell::GetInstance();
511 internal::RootWindowController* controller = 508 internal::RootWindowController* controller =
512 Shell::GetPrimaryRootWindowController(); 509 Shell::GetPrimaryRootWindowController();
513 ShelfLayoutManager* shelf = shelf_layout_manager(); 510 ShelfLayoutManager* shelf = GetShelfLayoutManager();
514 shelf->LayoutShelf(); 511 shelf->LayoutShelf();
515 controller->SetShelfAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 512 controller->SetShelfAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
516 513
517 // Create a normal unmaximized windowm shelf should be visible. 514 // Create a normal unmaximized windowm shelf should be visible.
518 aura::Window* window = CreateTestWindow(); 515 aura::Window* window = CreateTestWindow();
519 window->SetBounds(gfx::Rect(0, 0, 100, 100)); 516 window->SetBounds(gfx::Rect(0, 0, 100, 100));
520 window->Show(); 517 window->Show();
521 EXPECT_FALSE(shell->GetAppListTargetVisibility()); 518 EXPECT_FALSE(shell->GetAppListTargetVisibility());
522 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 519 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
523 520
524 // Toggle app list to show, and the shelf stays visible. 521 // Toggle app list to show, and the shelf stays visible.
525 shell->ToggleAppList(); 522 shell->ToggleAppList();
526 EXPECT_TRUE(shell->GetAppListTargetVisibility()); 523 EXPECT_TRUE(shell->GetAppListTargetVisibility());
527 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 524 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
528 525
529 // Toggle app list to hide, and the shelf stays visible. 526 // Toggle app list to hide, and the shelf stays visible.
530 shell->ToggleAppList(); 527 shell->ToggleAppList();
531 EXPECT_FALSE(shell->GetAppListTargetVisibility()); 528 EXPECT_FALSE(shell->GetAppListTargetVisibility());
532 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 529 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
533 } 530 }
534 531
535 // Makes sure shelf will be shown with SHELF_AUTO_HIDE_SHOWN state 532 // Makes sure shelf will be shown with SHELF_AUTO_HIDE_SHOWN state
536 // when app list opens as shelf is in SHELF_AUTO_HIDE state, and 533 // when app list opens as shelf is in SHELF_AUTO_HIDE state, and
537 // toggling app list won't change shelf visibility state. 534 // toggling app list won't change shelf visibility state.
538 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) { 535 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) {
539 Shell* shell = Shell::GetInstance(); 536 Shell* shell = Shell::GetInstance();
540 ShelfLayoutManager* shelf = shelf_layout_manager(); 537 ShelfLayoutManager* shelf = GetShelfLayoutManager();
541 internal::RootWindowController* controller = 538 internal::RootWindowController* controller =
542 Shell::GetPrimaryRootWindowController(); 539 Shell::GetPrimaryRootWindowController();
543 shelf->LayoutShelf(); 540 shelf->LayoutShelf();
544 controller->SetShelfAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 541 controller->SetShelfAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
545 542
546 // Create a window and show it in maximized state. 543 // Create a window and show it in maximized state.
547 aura::Window* window = CreateTestWindow(); 544 aura::Window* window = CreateTestWindow();
548 window->SetBounds(gfx::Rect(0, 0, 100, 100)); 545 window->SetBounds(gfx::Rect(0, 0, 100, 100));
549 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); 546 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
550 window->Show(); 547 window->Show();
(...skipping 15 matching lines...) Expand all
566 // Toggle app list to hide. 563 // Toggle app list to hide.
567 shell->ToggleAppList(); 564 shell->ToggleAppList();
568 EXPECT_FALSE(shell->GetAppListTargetVisibility()); 565 EXPECT_FALSE(shell->GetAppListTargetVisibility());
569 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 566 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
570 } 567 }
571 568
572 // Makes sure shelf will be hidden when app list opens as shelf is in HIDDEN 569 // Makes sure shelf will be hidden when app list opens as shelf is in HIDDEN
573 // state, and toggling app list won't change shelf visibility state. 570 // state, and toggling app list won't change shelf visibility state.
574 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfHiddenState) { 571 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfHiddenState) {
575 Shell* shell = Shell::GetInstance(); 572 Shell* shell = Shell::GetInstance();
576 ShelfLayoutManager* shelf = shelf_layout_manager(); 573 ShelfLayoutManager* shelf = GetShelfLayoutManager();
577 // For shelf to be visible, app list is not open in initial state. 574 // For shelf to be visible, app list is not open in initial state.
578 shelf->LayoutShelf(); 575 shelf->LayoutShelf();
579 576
580 // Create a window and make it full screen. 577 // Create a window and make it full screen.
581 aura::Window* window = CreateTestWindow(); 578 aura::Window* window = CreateTestWindow();
582 window->SetBounds(gfx::Rect(0, 0, 100, 100)); 579 window->SetBounds(gfx::Rect(0, 0, 100, 100));
583 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); 580 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN);
584 window->Show(); 581 window->Show();
585 wm::ActivateWindow(window); 582 wm::ActivateWindow(window);
586 583
587 // App list and shelf is not shown. 584 // App list and shelf is not shown.
588 EXPECT_FALSE(shell->GetAppListTargetVisibility()); 585 EXPECT_FALSE(shell->GetAppListTargetVisibility());
589 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); 586 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state());
590 587
591 // Toggle app list to show. 588 // Toggle app list to show.
592 shell->ToggleAppList(); 589 shell->ToggleAppList();
593 EXPECT_TRUE(shell->GetAppListTargetVisibility()); 590 EXPECT_TRUE(shell->GetAppListTargetVisibility());
594 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); 591 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state());
595 592
596 // Toggle app list to hide. 593 // Toggle app list to hide.
597 shell->ToggleAppList(); 594 shell->ToggleAppList();
598 EXPECT_FALSE(shell->GetAppListTargetVisibility()); 595 EXPECT_FALSE(shell->GetAppListTargetVisibility());
599 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); 596 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state());
600 } 597 }
601 598
602 // Tests SHELF_ALIGNMENT_LEFT and SHELF_ALIGNMENT_RIGHT. 599 // Tests SHELF_ALIGNMENT_LEFT and SHELF_ALIGNMENT_RIGHT.
603 TEST_F(ShelfLayoutManagerTest, SetAlignment) { 600 TEST_F(ShelfLayoutManagerTest, SetAlignment) {
604 ShelfLayoutManager* shelf = shelf_layout_manager(); 601 ShelfLayoutManager* shelf = GetShelfLayoutManager();
605 // Force an initial layout. 602 // Force an initial layout.
606 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 603 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
607 shelf->LayoutShelf(); 604 shelf->LayoutShelf();
608 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); 605 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state());
609 606
610 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); 607 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT);
611 gfx::Rect launcher_bounds( 608 gfx::Rect launcher_bounds(
612 shelf->launcher_widget()->GetWindowBoundsInScreen()); 609 shelf->launcher_widget()->GetWindowBoundsInScreen());
613 const internal::DisplayManager* manager = 610 const internal::DisplayManager* manager =
614 Shell::GetInstance()->display_manager(); 611 Shell::GetInstance()->display_manager();
615 gfx::Display display = 612 gfx::Display display =
616 manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 613 manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
617 ASSERT_NE(-1, display.id()); 614 ASSERT_NE(-1, display.id());
618 EXPECT_EQ(shelf->GetIdealBounds().width(), 615 EXPECT_EQ(shelf->GetIdealBounds().width(),
619 display.GetWorkAreaInsets().left()); 616 display.GetWorkAreaInsets().left());
620 EXPECT_GE( 617 EXPECT_GE(
621 launcher_bounds.width(), 618 launcher_bounds.width(),
622 shelf->launcher_widget()->GetContentsView()->GetPreferredSize().width()); 619 shelf->launcher_widget()->GetContentsView()->GetPreferredSize().width());
623 EXPECT_EQ(SHELF_ALIGNMENT_LEFT, 620 EXPECT_EQ(SHELF_ALIGNMENT_LEFT, GetSystemTray()->shelf_alignment());
624 Shell::GetInstance()->system_tray()->shelf_alignment());
625 StatusAreaWidget* status_area_widget = shelf->status_area_widget(); 621 StatusAreaWidget* status_area_widget = shelf->status_area_widget();
626 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen()); 622 gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen());
627 EXPECT_GE(status_bounds.width(), 623 EXPECT_GE(status_bounds.width(),
628 status_area_widget->GetContentsView()->GetPreferredSize().width()); 624 status_area_widget->GetContentsView()->GetPreferredSize().width());
629 EXPECT_EQ(shelf->GetIdealBounds().width(), 625 EXPECT_EQ(shelf->GetIdealBounds().width(),
630 display.GetWorkAreaInsets().left()); 626 display.GetWorkAreaInsets().left());
631 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); 627 EXPECT_EQ(0, display.GetWorkAreaInsets().top());
632 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); 628 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom());
633 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); 629 EXPECT_EQ(0, display.GetWorkAreaInsets().right());
634 EXPECT_EQ(display.bounds().x(), launcher_bounds.x()); 630 EXPECT_EQ(display.bounds().x(), launcher_bounds.x());
635 EXPECT_EQ(display.bounds().y(), launcher_bounds.y()); 631 EXPECT_EQ(display.bounds().y(), launcher_bounds.y());
636 EXPECT_EQ(display.bounds().height(), launcher_bounds.height()); 632 EXPECT_EQ(display.bounds().height(), launcher_bounds.height());
637 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 633 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
638 display = manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 634 display = manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
639 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, 635 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize,
640 display.GetWorkAreaInsets().left()); 636 display.GetWorkAreaInsets().left());
641 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, display.work_area().x()); 637 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, display.work_area().x());
642 638
643 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 639 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
644 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); 640 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT);
645 display = manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 641 display = manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
646 launcher_bounds = shelf->launcher_widget()->GetWindowBoundsInScreen(); 642 launcher_bounds = shelf->launcher_widget()->GetWindowBoundsInScreen();
647 display = manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); 643 display = manager->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow());
648 ASSERT_NE(-1, display.id()); 644 ASSERT_NE(-1, display.id());
649 EXPECT_EQ(shelf->GetIdealBounds().width(), 645 EXPECT_EQ(shelf->GetIdealBounds().width(),
650 display.GetWorkAreaInsets().right()); 646 display.GetWorkAreaInsets().right());
651 EXPECT_GE(launcher_bounds.width(), 647 EXPECT_GE(launcher_bounds.width(),
652 shelf->launcher_widget()->GetContentsView()->GetPreferredSize().width()); 648 shelf->launcher_widget()->GetContentsView()->GetPreferredSize().width());
653 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, 649 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, GetSystemTray()->shelf_alignment());
654 Shell::GetInstance()->system_tray()->shelf_alignment());
655 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); 650 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen());
656 EXPECT_GE(status_bounds.width(), 651 EXPECT_GE(status_bounds.width(),
657 status_area_widget->GetContentsView()->GetPreferredSize().width()); 652 status_area_widget->GetContentsView()->GetPreferredSize().width());
658 EXPECT_EQ(shelf->GetIdealBounds().width(), 653 EXPECT_EQ(shelf->GetIdealBounds().width(),
659 display.GetWorkAreaInsets().right()); 654 display.GetWorkAreaInsets().right());
660 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); 655 EXPECT_EQ(0, display.GetWorkAreaInsets().top());
661 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); 656 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom());
662 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); 657 EXPECT_EQ(0, display.GetWorkAreaInsets().left());
663 EXPECT_EQ(display.work_area().right(), launcher_bounds.x()); 658 EXPECT_EQ(display.work_area().right(), launcher_bounds.x());
664 EXPECT_EQ(display.bounds().y(), launcher_bounds.y()); 659 EXPECT_EQ(display.bounds().y(), launcher_bounds.y());
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state()); 765 EXPECT_EQ(SHELF_HIDDEN, shelf->visibility_state());
771 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior()); 766 EXPECT_EQ(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, shelf->auto_hide_behavior());
772 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString()); 767 EXPECT_EQ(bounds_fullscreen.ToString(), window->bounds().ToString());
773 } 768 }
774 769
775 TEST_F(ShelfLayoutManagerTest, GestureRevealsTrayBubble) { 770 TEST_F(ShelfLayoutManagerTest, GestureRevealsTrayBubble) {
776 ShelfLayoutManager* shelf = GetShelfLayoutManager(); 771 ShelfLayoutManager* shelf = GetShelfLayoutManager();
777 shelf->LayoutShelf(); 772 shelf->LayoutShelf();
778 773
779 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); 774 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
780 SystemTray* tray = Shell::GetInstance()->system_tray(); 775 SystemTray* tray = GetSystemTray();
781 776
782 // First, make sure the shelf is visible. 777 // First, make sure the shelf is visible.
783 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 778 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
784 EXPECT_FALSE(tray->HasSystemBubble()); 779 EXPECT_FALSE(tray->HasSystemBubble());
785 780
786 // Now, drag up on the tray to show the bubble. 781 // Now, drag up on the tray to show the bubble.
787 gfx::Point start = 782 gfx::Point start =
788 shelf->status_area_widget()->GetWindowBoundsInScreen().CenterPoint(); 783 shelf->status_area_widget()->GetWindowBoundsInScreen().CenterPoint();
789 gfx::Point end(start.x(), start.y() - 100); 784 gfx::Point end(start.x(), start.y() - 100);
790 generator.GestureScrollSequence(start, end, 785 generator.GestureScrollSequence(start, end,
(...skipping 29 matching lines...) Expand all
820 // Turn on auto-hide for the shelf. 815 // Turn on auto-hide for the shelf.
821 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 816 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
822 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 817 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
823 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); 818 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->auto_hide_state());
824 819
825 // Show the status menu. That should make the shelf visible again. 820 // Show the status menu. That should make the shelf visible again.
826 Shell::GetInstance()->accelerator_controller()->PerformAction( 821 Shell::GetInstance()->accelerator_controller()->PerformAction(
827 SHOW_SYSTEM_TRAY_BUBBLE, ui::Accelerator()); 822 SHOW_SYSTEM_TRAY_BUBBLE, ui::Accelerator());
828 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 823 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
829 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); 824 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state());
830 EXPECT_TRUE(Shell::GetInstance()->system_tray()->HasSystemBubble()); 825 EXPECT_TRUE(GetSystemTray()->HasSystemBubble());
831 826
832 // Now activate the tray (using the keyboard, instead of using the mouse to 827 // Now activate the tray (using the keyboard, instead of using the mouse to
833 // make sure the mouse does not alter the auto-hide state in the shelf). 828 // make sure the mouse does not alter the auto-hide state in the shelf).
834 // This should not trigger any auto-hide state change in the shelf. 829 // This should not trigger any auto-hide state change in the shelf.
835 ShelfLayoutObserverTest observer; 830 ShelfLayoutObserverTest observer;
836 shelf->AddObserver(&observer); 831 shelf->AddObserver(&observer);
837 832
838 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); 833 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
839 generator.PressKey(ui::VKEY_SPACE, 0); 834 generator.PressKey(ui::VKEY_SPACE, 0);
840 generator.ReleaseKey(ui::VKEY_SPACE, 0); 835 generator.ReleaseKey(ui::VKEY_SPACE, 0);
841 EXPECT_TRUE(Shell::GetInstance()->system_tray()->HasSystemBubble()); 836 EXPECT_TRUE(GetSystemTray()->HasSystemBubble());
842 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state()); 837 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->visibility_state());
843 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state()); 838 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->auto_hide_state());
844 EXPECT_FALSE(observer.changed_auto_hide_state()); 839 EXPECT_FALSE(observer.changed_auto_hide_state());
845 840
846 shelf->RemoveObserver(&observer); 841 shelf->RemoveObserver(&observer);
847 } 842 }
848 843
849 TEST_F(ShelfLayoutManagerTest, WorkAreaChangeWorkspace) { 844 TEST_F(ShelfLayoutManagerTest, WorkAreaChangeWorkspace) {
850 // Make sure the shelf is always visible. 845 // Make sure the shelf is always visible.
851 ShelfLayoutManager* shelf = GetShelfLayoutManager(); 846 ShelfLayoutManager* shelf = GetShelfLayoutManager();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 // Activate the first window. Now, both windows should be of the same size 889 // Activate the first window. Now, both windows should be of the same size
895 // again. 890 // again.
896 widget_two->Activate(); 891 widget_two->Activate();
897 EXPECT_EQ(widget_one->GetNativeWindow()->bounds().ToString(), 892 EXPECT_EQ(widget_one->GetNativeWindow()->bounds().ToString(),
898 widget_two->GetNativeWindow()->bounds().ToString()); 893 widget_two->GetNativeWindow()->bounds().ToString());
899 } 894 }
900 895
901 // Confirm that the shelf is dimmed only when content is maximized and 896 // Confirm that the shelf is dimmed only when content is maximized and
902 // shelf is not autohidden. 897 // shelf is not autohidden.
903 TEST_F(ShelfLayoutManagerTest, Dimming) { 898 TEST_F(ShelfLayoutManagerTest, Dimming) {
904 shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); 899 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER);
905 scoped_ptr<aura::Window> w1(CreateTestWindow()); 900 scoped_ptr<aura::Window> w1(CreateTestWindow());
906 w1->Show(); 901 w1->Show();
907 wm::ActivateWindow(w1.get()); 902 wm::ActivateWindow(w1.get());
908 903
909 // Normal window doesn't dim shelf. 904 // Normal window doesn't dim shelf.
910 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); 905 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
911 Launcher* launcher = Launcher::ForPrimaryDisplay(); 906 Launcher* launcher = Launcher::ForPrimaryDisplay();
912 EXPECT_FALSE(launcher->GetDimsShelf()); 907 EXPECT_FALSE(launcher->GetDimsShelf());
913 908
914 // Maximized window does. 909 // Maximized window does.
915 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); 910 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
916 EXPECT_TRUE(launcher->GetDimsShelf()); 911 EXPECT_TRUE(launcher->GetDimsShelf());
917 912
918 // Change back to normal stops dimming. 913 // Change back to normal stops dimming.
919 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); 914 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL);
920 EXPECT_FALSE(launcher->GetDimsShelf()); 915 EXPECT_FALSE(launcher->GetDimsShelf());
921 916
922 // Changing back to maximized dims again. 917 // Changing back to maximized dims again.
923 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); 918 w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
924 EXPECT_TRUE(launcher->GetDimsShelf()); 919 EXPECT_TRUE(launcher->GetDimsShelf());
925 920
926 // Changing shelf to autohide stops dimming. 921 // Changing shelf to autohide stops dimming.
927 shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 922 GetShelfLayoutManager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
928 EXPECT_FALSE(launcher->GetDimsShelf()); 923 EXPECT_FALSE(launcher->GetDimsShelf());
929 } 924 }
930 925
931 // Make sure that the shelf will not hide if the mouse is between a bubble and 926 // Make sure that the shelf will not hide if the mouse is between a bubble and
932 // the shelf. 927 // the shelf.
933 TEST_F(ShelfLayoutManagerTest, BubbleEnlargesShelfMouseHitArea) { 928 TEST_F(ShelfLayoutManagerTest, BubbleEnlargesShelfMouseHitArea) {
934 ShelfLayoutManager* shelf = GetShelfLayoutManager(); 929 ShelfLayoutManager* shelf = GetShelfLayoutManager();
935 StatusAreaWidget* status_area_widget = 930 StatusAreaWidget* status_area_widget =
936 Shell::GetPrimaryRootWindowController()->status_area_widget(); 931 Shell::GetPrimaryRootWindowController()->status_area_widget();
937 SystemTray* tray = Shell::GetInstance()->system_tray(); 932 SystemTray* tray = GetSystemTray();
938 933
939 shelf->LayoutShelf(); 934 shelf->LayoutShelf();
940 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); 935 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
941 936
942 // Make two iterations - first without a message bubble which should make 937 // Make two iterations - first without a message bubble which should make
943 // the shelf disappear and then with a message bubble which should keep it 938 // the shelf disappear and then with a message bubble which should keep it
944 // visible. 939 // visible.
945 for (int i = 0; i < 2; i++) { 940 for (int i = 0; i < 2; i++) {
946 // Make sure the shelf is visible and position the mouse over it. Then 941 // Make sure the shelf is visible and position the mouse over it. Then
947 // allow auto hide. 942 // allow auto hide.
(...skipping 24 matching lines...) Expand all
972 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); 967 EXPECT_TRUE(status_area_widget->IsMessageBubbleShown());
973 } else { 968 } else {
974 EXPECT_FALSE(shelf->IsVisible()); 969 EXPECT_FALSE(shelf->IsVisible());
975 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); 970 EXPECT_FALSE(status_area_widget->IsMessageBubbleShown());
976 } 971 }
977 } 972 }
978 } 973 }
979 974
980 } // namespace internal 975 } // namespace internal
981 } // namespace ash 976 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/gestures/tray_gesture_handler.cc ('k') | chrome/browser/chromeos/login/webui_login_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698