Index: ash/shelf/shelf_widget_unittest.cc |
diff --git a/ash/shelf/shelf_widget_unittest.cc b/ash/shelf/shelf_widget_unittest.cc |
index ab4f1a2a02bc98fc340fabe99a44d9726d066e5f..7a59f5a439584af2664723850574d0e97f363c96 100644 |
--- a/ash/shelf/shelf_widget_unittest.cc |
+++ b/ash/shelf/shelf_widget_unittest.cc |
@@ -6,7 +6,6 @@ |
#include "ash/common/material_design/material_design_controller.h" |
#include "ash/common/shelf/shelf_constants.h" |
-#include "ash/common/shelf/shelf_delegate.h" |
#include "ash/common/shelf/shelf_layout_manager.h" |
#include "ash/common/shelf/shelf_view.h" |
#include "ash/common/shelf/wm_shelf.h" |
@@ -19,7 +18,6 @@ |
#include "ash/test/ash_md_test_base.h" |
#include "ash/test/ash_test_helper.h" |
#include "ash/test/shelf_view_test_api.h" |
-#include "ash/test/test_shell_delegate.h" |
#include "ash/wm/window_util.h" |
#include "ui/aura/window_event_dispatcher.h" |
#include "ui/display/display.h" |
@@ -348,94 +346,41 @@ TEST_P(ShelfWidgetTest, HiddenShelfHitTestTouch) { |
namespace { |
-// A TestShelfDelegate that sets the shelf alignment and auto hide behavior in |
-// OnShelfCreated, to simulate ChromeLauncherController's behavior. |
-class TestShelfDelegate : public ShelfDelegate { |
+// A ShellObserver that sets the shelf alignment and auto hide behavior when the |
+// shelf is created, to simulate ChromeLauncherController's behavior. |
+class ShelfInitializer : public ShellObserver { |
public: |
- TestShelfDelegate(ShelfAlignment initial_alignment, |
- ShelfAutoHideBehavior initial_auto_hide_behavior) |
- : initial_alignment_(initial_alignment), |
- initial_auto_hide_behavior_(initial_auto_hide_behavior) {} |
- ~TestShelfDelegate() override {} |
- |
- // ShelfDelegate implementation. |
- void OnShelfCreated(WmShelf* shelf) override { |
- shelf->SetAlignment(initial_alignment_); |
- shelf->SetAutoHideBehavior(initial_auto_hide_behavior_); |
- } |
- void OnShelfDestroyed(WmShelf* shelf) override {} |
- void OnShelfAlignmentChanged(WmShelf* shelf) override {} |
- void OnShelfAutoHideBehaviorChanged(WmShelf* shelf) override {} |
- void OnShelfAutoHideStateChanged(WmShelf* shelf) override {} |
- void OnShelfVisibilityStateChanged(WmShelf* shelf) override {} |
- ShelfID GetShelfIDForAppID(const std::string& app_id) override { return 0; } |
- ShelfID GetShelfIDForAppIDAndLaunchID(const std::string& app_id, |
- const std::string& launch_id) override { |
- return 0; |
- } |
- bool HasShelfIDToAppIDMapping(ShelfID id) const override { return false; } |
- const std::string& GetAppIDForShelfID(ShelfID id) override { |
- return base::EmptyString(); |
- } |
- void PinAppWithID(const std::string& app_id) override {} |
- bool IsAppPinned(const std::string& app_id) override { return false; } |
- void UnpinAppWithID(const std::string& app_id) override {} |
- |
- private: |
- ShelfAlignment initial_alignment_; |
- ShelfAutoHideBehavior initial_auto_hide_behavior_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TestShelfDelegate); |
-}; |
- |
-// A TestShellDelegate that creates a TestShelfDelegate with initial values. |
-class ShelfWidgetTestShellDelegate : public test::TestShellDelegate { |
- public: |
- ShelfWidgetTestShellDelegate() {} |
- ~ShelfWidgetTestShellDelegate() override {} |
- |
- // test::TestShellDelegate |
- ShelfDelegate* CreateShelfDelegate(ShelfModel* model) override { |
- return new TestShelfDelegate(initial_alignment_, |
- initial_auto_hide_behavior_); |
+ ShelfInitializer(ShelfAlignment alignment, ShelfAutoHideBehavior auto_hide) |
+ : alignment_(alignment), auto_hide_(auto_hide) { |
+ WmShell::Get()->AddShellObserver(this); |
} |
+ ~ShelfInitializer() override { WmShell::Get()->RemoveShellObserver(this); } |
- void set_initial_alignment(ShelfAlignment alignment) { |
- initial_alignment_ = alignment; |
- } |
- |
- void set_initial_auto_hide_behavior(ShelfAutoHideBehavior behavior) { |
- initial_auto_hide_behavior_ = behavior; |
+ // ShellObserver: |
+ void OnShelfCreatedForRootWindow(WmWindow* root_window) override { |
+ WmShelf* shelf = root_window->GetRootWindowController()->GetShelf(); |
+ shelf->SetAlignment(alignment_); |
+ shelf->SetAutoHideBehavior(auto_hide_); |
} |
private: |
- ShelfAlignment initial_alignment_ = SHELF_ALIGNMENT_BOTTOM; |
- ShelfAutoHideBehavior initial_auto_hide_behavior_ = |
- SHELF_AUTO_HIDE_BEHAVIOR_NEVER; |
- DISALLOW_COPY_AND_ASSIGN(ShelfWidgetTestShellDelegate); |
+ ShelfAlignment alignment_; |
+ ShelfAutoHideBehavior auto_hide_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ShelfInitializer); |
}; |
-class ShelfWidgetTestWithDelegate : public ShelfWidgetTest { |
+class ShelfWidgetTestWithInitializer : public ShelfWidgetTest { |
public: |
- ShelfWidgetTestWithDelegate() { set_start_session(false); } |
- ~ShelfWidgetTestWithDelegate() override {} |
- |
- // ShelfWidgetTest: |
- void SetUp() override { |
- shelf_widget_test_shell_delegate_ = new ShelfWidgetTestShellDelegate; |
- ash_test_helper()->set_test_shell_delegate( |
- shelf_widget_test_shell_delegate_); |
- ShelfWidgetTest::SetUp(); |
- } |
+ ShelfWidgetTestWithInitializer() { set_start_session(false); } |
+ ~ShelfWidgetTestWithInitializer() override {} |
void TestCreateShelfWithInitialValues( |
ShelfAlignment initial_alignment, |
ShelfAutoHideBehavior initial_auto_hide_behavior, |
ShelfVisibilityState expected_shelf_visibility_state, |
ShelfAutoHideState expected_shelf_auto_hide_state) { |
- shelf_widget_test_shell_delegate_->set_initial_alignment(initial_alignment); |
- shelf_widget_test_shell_delegate_->set_initial_auto_hide_behavior( |
- initial_auto_hide_behavior); |
+ ShelfInitializer initializer(initial_alignment, initial_auto_hide_behavior); |
SetUserLoggedIn(true); |
SetSessionStarted(true); |
@@ -456,41 +401,40 @@ class ShelfWidgetTestWithDelegate : public ShelfWidgetTest { |
} |
private: |
- ShelfWidgetTestShellDelegate* shelf_widget_test_shell_delegate_; |
- DISALLOW_COPY_AND_ASSIGN(ShelfWidgetTestWithDelegate); |
+ DISALLOW_COPY_AND_ASSIGN(ShelfWidgetTestWithInitializer); |
}; |
} // namespace |
INSTANTIATE_TEST_CASE_P( |
/* prefix intentionally left blank due to only one parameterization */, |
- ShelfWidgetTestWithDelegate, |
+ ShelfWidgetTestWithInitializer, |
testing::Values(MaterialDesignController::NON_MATERIAL, |
MaterialDesignController::MATERIAL_NORMAL, |
MaterialDesignController::MATERIAL_EXPERIMENTAL)); |
-TEST_P(ShelfWidgetTestWithDelegate, CreateAutoHideAlwaysShelf) { |
+TEST_P(ShelfWidgetTestWithInitializer, CreateAutoHideAlwaysShelf) { |
// The actual auto hide state is shown because there are no open windows. |
TestCreateShelfWithInitialValues(SHELF_ALIGNMENT_BOTTOM, |
SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, |
SHELF_AUTO_HIDE, SHELF_AUTO_HIDE_SHOWN); |
} |
-TEST_P(ShelfWidgetTestWithDelegate, CreateAutoHideNeverShelf) { |
+TEST_P(ShelfWidgetTestWithInitializer, CreateAutoHideNeverShelf) { |
// The auto hide state 'HIDDEN' is returned for any non-auto-hide behavior. |
TestCreateShelfWithInitialValues(SHELF_ALIGNMENT_LEFT, |
SHELF_AUTO_HIDE_BEHAVIOR_NEVER, |
SHELF_VISIBLE, SHELF_AUTO_HIDE_HIDDEN); |
} |
-TEST_P(ShelfWidgetTestWithDelegate, CreateAutoHideAlwaysHideShelf) { |
+TEST_P(ShelfWidgetTestWithInitializer, CreateAutoHideAlwaysHideShelf) { |
// The auto hide state 'HIDDEN' is returned for any non-auto-hide behavior. |
TestCreateShelfWithInitialValues(SHELF_ALIGNMENT_RIGHT, |
SHELF_AUTO_HIDE_ALWAYS_HIDDEN, SHELF_HIDDEN, |
SHELF_AUTO_HIDE_HIDDEN); |
} |
-TEST_P(ShelfWidgetTestWithDelegate, CreateLockedShelf) { |
+TEST_P(ShelfWidgetTestWithInitializer, CreateLockedShelf) { |
// The auto hide state 'HIDDEN' is returned for any non-auto-hide behavior. |
TestCreateShelfWithInitialValues(SHELF_ALIGNMENT_BOTTOM_LOCKED, |
SHELF_AUTO_HIDE_BEHAVIOR_NEVER, |