Index: ash/wm/shelf_layout_manager_unittest.cc |
diff --git a/ash/wm/shelf_layout_manager_unittest.cc b/ash/wm/shelf_layout_manager_unittest.cc |
index 54e1075201b54a7896cd34506ba4c449b90a9548..dff6dc595481d1241b350d31074da02f16d3f832 100644 |
--- a/ash/wm/shelf_layout_manager_unittest.cc |
+++ b/ash/wm/shelf_layout_manager_unittest.cc |
@@ -9,6 +9,7 @@ |
#include "ash/ash_switches.h" |
#include "ash/focus_cycler.h" |
#include "ash/launcher/launcher.h" |
+#include "ash/root_window_controller.h" |
#include "ash/screen_ash.h" |
#include "ash/shell.h" |
#include "ash/shell_delegate.h" |
@@ -152,6 +153,10 @@ class ShelfLayoutManagerTest : public ash::test::AshTestBase { |
public: |
ShelfLayoutManagerTest() {} |
+ ShelfLayoutManager* shelf_layout_manager() { |
+ return Shell::GetPrimaryRootWindowController()->shelf(); |
+ } |
+ |
void SetState(ShelfLayoutManager* shelf, |
ShelfLayoutManager::VisibilityState state) { |
shelf->SetState(state); |
@@ -193,7 +198,8 @@ TEST_F(ShelfLayoutManagerTest, MAYBE_SetVisible) { |
shelf->LayoutShelf(); |
EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state()); |
- gfx::Rect status_bounds(shelf->status()->GetWindowBoundsInScreen()); |
+ gfx::Rect status_bounds( |
+ shelf->status_area_widget()->GetWindowBoundsInScreen()); |
gfx::Rect launcher_bounds( |
shelf->launcher_widget()->GetWindowBoundsInScreen()); |
int shelf_height = shelf->GetIdealBounds().height(); |
@@ -211,7 +217,7 @@ TEST_F(ShelfLayoutManagerTest, MAYBE_SetVisible) { |
SetState(shelf, ShelfLayoutManager::HIDDEN); |
// Run the animation to completion. |
StepWidgetLayerAnimatorToEnd(shelf->launcher_widget()); |
- StepWidgetLayerAnimatorToEnd(shelf->status()); |
+ StepWidgetLayerAnimatorToEnd(shelf->status_area_widget()); |
EXPECT_EQ(ShelfLayoutManager::HIDDEN, shelf->visibility_state()); |
EXPECT_EQ(0, |
display.bounds().bottom() - display.work_area().bottom()); |
@@ -219,14 +225,14 @@ TEST_F(ShelfLayoutManagerTest, MAYBE_SetVisible) { |
// Make sure the bounds of the two widgets changed. |
EXPECT_GE(shelf->launcher_widget()->GetNativeView()->bounds().y(), |
Shell::GetScreen()->GetPrimaryDisplay().bounds().bottom()); |
- EXPECT_GE(shelf->status()->GetNativeView()->bounds().y(), |
+ EXPECT_GE(shelf->status_area_widget()->GetNativeView()->bounds().y(), |
Shell::GetScreen()->GetPrimaryDisplay().bounds().bottom()); |
// And show it again. |
SetState(shelf, ShelfLayoutManager::VISIBLE); |
// Run the animation to completion. |
StepWidgetLayerAnimatorToEnd(shelf->launcher_widget()); |
- StepWidgetLayerAnimatorToEnd(shelf->status()); |
+ StepWidgetLayerAnimatorToEnd(shelf->status_area_widget()); |
EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state()); |
EXPECT_EQ(shelf_height, |
display.bounds().bottom() - display.work_area().bottom()); |
@@ -238,7 +244,7 @@ TEST_F(ShelfLayoutManagerTest, MAYBE_SetVisible) { |
EXPECT_EQ(launcher_bounds.y(), |
bottom + (shelf->GetIdealBounds().height() - |
launcher_bounds.height()) / 2); |
- status_bounds = shelf->status()->GetNativeView()->bounds(); |
+ status_bounds = shelf->status_area_widget()->GetNativeView()->bounds(); |
EXPECT_EQ(status_bounds.y(), |
bottom + shelf_height - status_bounds.height()); |
} |
@@ -264,19 +270,19 @@ TEST_F(ShelfLayoutManagerTest, LayoutShelfWhileAnimating) { |
// Make sure the bounds of the two widgets changed. |
EXPECT_GE(shelf->launcher_widget()->GetNativeView()->bounds().y(), |
Shell::GetScreen()->GetPrimaryDisplay().bounds().bottom()); |
- EXPECT_GE(shelf->status()->GetNativeView()->bounds().y(), |
+ EXPECT_GE(shelf->status_area_widget()->GetNativeView()->bounds().y(), |
Shell::GetScreen()->GetPrimaryDisplay().bounds().bottom()); |
} |
// Makes sure the launcher is initially sized correctly. |
TEST_F(ShelfLayoutManagerTest, LauncherInitiallySized) { |
- Launcher* launcher = Shell::GetInstance()->launcher(); |
+ Launcher* launcher = Launcher::ForPrimaryDisplay(); |
ASSERT_TRUE(launcher); |
ShelfLayoutManager* shelf_layout_manager = GetShelfLayoutManager(); |
ASSERT_TRUE(shelf_layout_manager); |
- ASSERT_TRUE(shelf_layout_manager->status()); |
- int status_width = |
- shelf_layout_manager->status()->GetWindowBoundsInScreen().width(); |
+ ASSERT_TRUE(shelf_layout_manager->status_area_widget()); |
+ int status_width = shelf_layout_manager->status_area_widget()-> |
+ GetWindowBoundsInScreen().width(); |
// Test only makes sense if the status is > 0, which is better be. |
EXPECT_GT(status_width, 0); |
EXPECT_EQ(status_width, launcher->status_size().width()); |
@@ -284,12 +290,13 @@ TEST_F(ShelfLayoutManagerTest, LauncherInitiallySized) { |
// Makes sure the launcher is sized when the status area changes size. |
TEST_F(ShelfLayoutManagerTest, LauncherUpdatedWhenStatusAreaChangesSize) { |
- Launcher* launcher = Shell::GetInstance()->launcher(); |
+ Launcher* launcher = Launcher::ForPrimaryDisplay(); |
ASSERT_TRUE(launcher); |
ShelfLayoutManager* shelf_layout_manager = GetShelfLayoutManager(); |
ASSERT_TRUE(shelf_layout_manager); |
- ASSERT_TRUE(shelf_layout_manager->status()); |
- shelf_layout_manager->status()->SetBounds(gfx::Rect(0, 0, 200, 200)); |
+ ASSERT_TRUE(shelf_layout_manager->status_area_widget()); |
+ shelf_layout_manager->status_area_widget()->SetBounds( |
+ gfx::Rect(0, 0, 200, 200)); |
EXPECT_EQ(200, launcher->status_size().width()); |
} |
@@ -493,7 +500,7 @@ TEST_F(ShelfLayoutManagerTest, VisibleWhenStatusOrLauncherFocused) { |
// Trying to activate the status should fail, since we only allow activating |
// it when the user is using the keyboard (i.e. through FocusCycler). |
- shelf->status()->Activate(); |
+ shelf->status_area_widget()->Activate(); |
EXPECT_EQ(ShelfLayoutManager::AUTO_HIDE_HIDDEN, shelf->auto_hide_state()); |
shelf->launcher()->GetFocusCycler()->RotateFocus(FocusCycler::FORWARD); |
@@ -504,7 +511,7 @@ TEST_F(ShelfLayoutManagerTest, VisibleWhenStatusOrLauncherFocused) { |
// state,and toggling app list won't change shelf visibility state. |
TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) { |
Shell* shell = Shell::GetInstance(); |
- ShelfLayoutManager* shelf = Shell::GetInstance()->shelf(); |
+ ShelfLayoutManager* shelf = shelf_layout_manager(); |
shelf->LayoutShelf(); |
shell->SetShelfAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
@@ -531,7 +538,7 @@ TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) { |
// visibility state. |
TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) { |
Shell* shell = Shell::GetInstance(); |
- ShelfLayoutManager* shelf = Shell::GetInstance()->shelf(); |
+ ShelfLayoutManager* shelf = shelf_layout_manager(); |
shelf->LayoutShelf(); |
shell->SetShelfAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
@@ -565,7 +572,7 @@ TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) { |
// state, and toggling app list won't change shelf visibility state. |
TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfHiddenState) { |
Shell* shell = Shell::GetInstance(); |
- ShelfLayoutManager* shelf = Shell::GetInstance()->shelf(); |
+ ShelfLayoutManager* shelf = shelf_layout_manager(); |
// For shelf to be visible, app list is not open in initial state. |
shelf->LayoutShelf(); |
@@ -593,7 +600,7 @@ TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfHiddenState) { |
// Tests SHELF_ALIGNMENT_LEFT and SHELF_ALIGNMENT_RIGHT. |
TEST_F(ShelfLayoutManagerTest, SetAlignment) { |
- ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
+ ShelfLayoutManager* shelf = shelf_layout_manager(); |
// Force an initial layout. |
shelf->LayoutShelf(); |
EXPECT_EQ(ShelfLayoutManager::VISIBLE, shelf->visibility_state()); |
@@ -614,9 +621,10 @@ TEST_F(ShelfLayoutManagerTest, SetAlignment) { |
shelf->launcher_widget()->GetContentsView()->GetPreferredSize().width()); |
EXPECT_EQ(SHELF_ALIGNMENT_LEFT, |
Shell::GetInstance()->system_tray()->shelf_alignment()); |
- gfx::Rect status_bounds(shelf->status()->GetWindowBoundsInScreen()); |
+ StatusAreaWidget* status_area_widget = shelf->status_area_widget(); |
+ gfx::Rect status_bounds(status_area_widget->GetWindowBoundsInScreen()); |
EXPECT_GE(status_bounds.width(), |
- shelf->status()->GetContentsView()->GetPreferredSize().width()); |
+ status_area_widget->GetContentsView()->GetPreferredSize().width()); |
EXPECT_EQ(shelf->GetIdealBounds().width(), |
display.GetWorkAreaInsets().left()); |
EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
@@ -637,9 +645,9 @@ TEST_F(ShelfLayoutManagerTest, SetAlignment) { |
shelf->launcher_widget()->GetContentsView()->GetPreferredSize().width()); |
EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, |
Shell::GetInstance()->system_tray()->shelf_alignment()); |
- status_bounds = gfx::Rect(shelf->status()->GetWindowBoundsInScreen()); |
+ status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); |
EXPECT_GE(status_bounds.width(), |
- shelf->status()->GetContentsView()->GetPreferredSize().width()); |
+ status_area_widget->GetContentsView()->GetPreferredSize().width()); |
EXPECT_EQ(shelf->GetIdealBounds().width(), |
display.GetWorkAreaInsets().right()); |
EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
@@ -763,7 +771,8 @@ TEST_F(ShelfLayoutManagerTest, GestureRevealsTrayBubble) { |
EXPECT_FALSE(tray->HasSystemBubble()); |
// Now, drag up on the tray to show the bubble. |
- gfx::Point start = shelf->status()->GetWindowBoundsInScreen().CenterPoint(); |
+ gfx::Point start = |
+ shelf->status_area_widget()->GetWindowBoundsInScreen().CenterPoint(); |
gfx::Point end(start.x(), start.y() - 100); |
generator.GestureScrollSequence(start, end, |
base::TimeDelta::FromMilliseconds(10), 1); |
@@ -879,39 +888,39 @@ TEST_F(ShelfLayoutManagerTest, WorkAreaChangeWorkspace) { |
// Confirm that the shelf is dimmed only when content is maximized and |
// shelf is not autohidden. |
TEST_F(ShelfLayoutManagerTest, Dimming) { |
- Shell::GetInstance()->shelf()->SetAutoHideBehavior( |
- SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
+ shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
scoped_ptr<aura::Window> w1(CreateTestWindow()); |
w1->Show(); |
wm::ActivateWindow(w1.get()); |
// Normal window doesn't dim shelf. |
w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); |
- EXPECT_FALSE(Shell::GetInstance()->launcher()->GetDimsShelf()); |
+ Launcher* launcher = Launcher::ForPrimaryDisplay(); |
+ EXPECT_FALSE(launcher->GetDimsShelf()); |
// Maximized window does. |
w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
- EXPECT_TRUE(Shell::GetInstance()->launcher()->GetDimsShelf()); |
+ EXPECT_TRUE(launcher->GetDimsShelf()); |
// Change back to normal stops dimming. |
w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); |
- EXPECT_FALSE(Shell::GetInstance()->launcher()->GetDimsShelf()); |
+ EXPECT_FALSE(launcher->GetDimsShelf()); |
// Changing back to maximized dims again. |
w1->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
- EXPECT_TRUE(Shell::GetInstance()->launcher()->GetDimsShelf()); |
+ EXPECT_TRUE(launcher->GetDimsShelf()); |
// Changing shelf to autohide stops dimming. |
- Shell::GetInstance()->shelf()->SetAutoHideBehavior( |
- SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
- EXPECT_FALSE(Shell::GetInstance()->launcher()->GetDimsShelf()); |
+ shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
+ EXPECT_FALSE(launcher->GetDimsShelf()); |
} |
// Make sure that the shelf will not hide if the mouse is between a bubble and |
// the shelf. |
TEST_F(ShelfLayoutManagerTest, BubbleEnlargesShelfMouseHitArea) { |
ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
- StatusAreaWidget* status_area = Shell::GetInstance()->status_area_widget(); |
+ StatusAreaWidget* status_area_widget = |
+ Shell::GetPrimaryRootWindowController()->status_area_widget(); |
SystemTray* tray = Shell::GetInstance()->system_tray(); |
shelf->LayoutShelf(); |
@@ -924,33 +933,33 @@ TEST_F(ShelfLayoutManagerTest, BubbleEnlargesShelfMouseHitArea) { |
// Make sure the shelf is visible and position the mouse over it. Then |
// allow auto hide. |
shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
- EXPECT_FALSE(status_area->IsMessageBubbleShown()); |
+ EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
gfx::Point center = |
- shelf->status()->GetWindowBoundsInScreen().CenterPoint(); |
+ status_area_widget->GetWindowBoundsInScreen().CenterPoint(); |
generator.MoveMouseTo(center.x(), center.y()); |
shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
EXPECT_TRUE(shelf->IsVisible()); |
if (!i) { |
// In our first iteration we make sure there is no bubble. |
tray->CloseBubbleForTest(); |
- EXPECT_FALSE(status_area->IsMessageBubbleShown()); |
+ EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
} else { |
// In our second iteration we show a bubble. |
TestItem *item = new TestItem; |
tray->AddTrayItem(item); |
tray->ShowNotificationView(item); |
- EXPECT_TRUE(status_area->IsMessageBubbleShown()); |
+ EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); |
} |
// Move the pointer over the edge of the shelf. |
- generator.MoveMouseTo(center.x(), |
- shelf->status()->GetWindowBoundsInScreen().y() - 7); |
+ generator.MoveMouseTo( |
+ center.x(), status_area_widget->GetWindowBoundsInScreen().y() - 7); |
shelf->UpdateVisibilityState(); |
if (i) { |
EXPECT_TRUE(shelf->IsVisible()); |
- EXPECT_TRUE(status_area->IsMessageBubbleShown()); |
+ EXPECT_TRUE(status_area_widget->IsMessageBubbleShown()); |
} else { |
EXPECT_FALSE(shelf->IsVisible()); |
- EXPECT_FALSE(status_area->IsMessageBubbleShown()); |
+ EXPECT_FALSE(status_area_widget->IsMessageBubbleShown()); |
} |
} |
} |