Index: ash/system/chromeos/rotation/tray_rotation_lock_unittest.cc |
diff --git a/ash/system/chromeos/rotation/tray_rotation_lock_unittest.cc b/ash/system/chromeos/rotation/tray_rotation_lock_unittest.cc |
deleted file mode 100644 |
index a902e92167e7ac6825adef902c82ac4d82cee6cc..0000000000000000000000000000000000000000 |
--- a/ash/system/chromeos/rotation/tray_rotation_lock_unittest.cc |
+++ /dev/null |
@@ -1,267 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "ash/system/chromeos/rotation/tray_rotation_lock.h" |
- |
-#include <memory> |
- |
-#include "ash/common/system/status_area_widget.h" |
-#include "ash/common/system/tray/system_tray.h" |
-#include "ash/common/system/tray/system_tray_delegate.h" |
-#include "ash/common/wm/maximize_mode/maximize_mode_controller.h" |
-#include "ash/common/wm_shell.h" |
-#include "ash/display/screen_orientation_controller_chromeos.h" |
-#include "ash/root_window_controller.h" |
-#include "ash/shell.h" |
-#include "ash/test/ash_test_base.h" |
-#include "ash/test/status_area_widget_test_helper.h" |
-#include "base/command_line.h" |
-#include "base/time/time.h" |
-#include "ui/display/display_switches.h" |
-#include "ui/display/manager/display_manager.h" |
-#include "ui/display/types/display_constants.h" |
-#include "ui/events/event.h" |
-#include "ui/events/event_constants.h" |
-#include "ui/views/view.h" |
- |
-namespace ash { |
- |
-class TrayRotationLockTest : public test::AshTestBase { |
- public: |
- TrayRotationLockTest() {} |
- ~TrayRotationLockTest() override {} |
- |
- TrayRotationLock* tray() { return tray_.get(); } |
- |
- views::View* tray_view() { return tray_view_.get(); } |
- |
- views::View* default_view() { return default_view_.get(); } |
- |
- // Creates the tray view associated to |tray_rotation_lock|. |
- views::View* CreateTrayView(TrayRotationLock* tray_rotation_lock); |
- |
- // Destroys only the |tray_view_|. Tests may call this to simulate destruction |
- // order during the deletion of the StatusAreaWidget. |
- void DestroyTrayView(); |
- |
- // Sets up a TrayRotationLock, its tray view, and its default view, for the |
- // given SystemTray and its display. On a primary display all will be |
- // created. On a secondary display both the tray view and default view will |
- // be null. |
- void SetUpForStatusAreaWidget(StatusAreaWidget* status_area_widget); |
- |
- // Resets |tray_| |tray_view_| and |default_view_| so that all components of |
- // TrayRotationLock have been cleared. Tests may then call |
- // SetUpForStatusAreaWidget in order to initial the components. |
- void TearDownViews(); |
- |
- // test::AshTestBase: |
- void SetUp() override; |
- void TearDown() override; |
- |
- private: |
- std::unique_ptr<TrayRotationLock> tray_; |
- std::unique_ptr<views::View> tray_view_; |
- std::unique_ptr<views::View> default_view_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TrayRotationLockTest); |
-}; |
- |
-views::View* TrayRotationLockTest::CreateTrayView( |
- TrayRotationLock* tray_rotation_lock) { |
- return tray_rotation_lock->CreateTrayView( |
- StatusAreaWidgetTestHelper::GetUserLoginStatus()); |
-} |
- |
-void TrayRotationLockTest::DestroyTrayView() { |
- tray_view_.reset(); |
- tray_->DestroyTrayView(); |
-} |
- |
-void TrayRotationLockTest::SetUpForStatusAreaWidget( |
- StatusAreaWidget* status_area_widget) { |
- tray_.reset(new TrayRotationLock(status_area_widget->system_tray())); |
- tray_view_.reset( |
- tray_->CreateTrayView(StatusAreaWidgetTestHelper::GetUserLoginStatus())); |
- default_view_.reset(tray_->CreateDefaultView( |
- StatusAreaWidgetTestHelper::GetUserLoginStatus())); |
-} |
- |
-void TrayRotationLockTest::TearDownViews() { |
- tray_view_.reset(); |
- default_view_.reset(); |
- tray_.reset(); |
-} |
- |
-void TrayRotationLockTest::SetUp() { |
- // The Display used for testing is not an internal display. This flag |
- // allows for DisplayManager to treat it as one. TrayRotationLock is only |
- // visible on internal primary displays. |
- base::CommandLine::ForCurrentProcess()->AppendSwitch( |
- ::switches::kUseFirstDisplayAsInternal); |
- test::AshTestBase::SetUp(); |
- SetUpForStatusAreaWidget(StatusAreaWidgetTestHelper::GetStatusAreaWidget()); |
-} |
- |
-void TrayRotationLockTest::TearDown() { |
- TearDownViews(); |
- test::AshTestBase::TearDown(); |
-} |
- |
-// Tests that when the tray view is initially created, that it is created |
-// not visible. |
-TEST_F(TrayRotationLockTest, CreateTrayView) { |
- EXPECT_FALSE(tray_view()->visible()); |
-} |
- |
-// Tests that when the tray view is created, while MaximizeMode is active, that |
-// it is not visible. |
-TEST_F(TrayRotationLockTest, CreateTrayViewDuringMaximizeMode) { |
- TearDownViews(); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- SetUpForStatusAreaWidget(StatusAreaWidgetTestHelper::GetStatusAreaWidget()); |
- EXPECT_FALSE(tray_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- false); |
-} |
- |
-// Tests that when the tray view is created, while MaximizeMode is active, and |
-// rotation is locked, that it is visible. |
-TEST_F(TrayRotationLockTest, CreateTrayViewDuringMaximizeModeAndRotationLock) { |
- TearDownViews(); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- Shell::GetInstance()->screen_orientation_controller()->SetRotationLocked( |
- true); |
- SetUpForStatusAreaWidget(StatusAreaWidgetTestHelper::GetStatusAreaWidget()); |
- EXPECT_TRUE(tray_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- false); |
- EXPECT_FALSE(tray_view()->visible()); |
-} |
- |
-// Tests that the enabling of MaximizeMode affects a previously created tray |
-// view, changing the visibility. |
-TEST_F(TrayRotationLockTest, TrayViewVisibilityChangesDuringMaximizeMode) { |
- ASSERT_FALSE(tray_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- Shell::GetInstance()->screen_orientation_controller()->SetRotationLocked( |
- true); |
- EXPECT_TRUE(tray_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- false); |
- EXPECT_FALSE(tray_view()->visible()); |
-} |
- |
-// Tests that the when the tray view is created for a secondary display, that |
-// it is not visible, and that MaximizeMode does not affect visibility. |
-TEST_F(TrayRotationLockTest, CreateSecondaryTrayView) { |
- UpdateDisplay("400x400,200x200"); |
- |
- SetUpForStatusAreaWidget( |
- StatusAreaWidgetTestHelper::GetSecondaryStatusAreaWidget()); |
- EXPECT_FALSE(tray_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- EXPECT_FALSE(tray_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- false); |
- EXPECT_FALSE(tray_view()->visible()); |
-} |
- |
-// Tests that when the default view is initially created, that it is created |
-// not visible. |
-TEST_F(TrayRotationLockTest, CreateDefaultView) { |
- EXPECT_FALSE(default_view()->visible()); |
-} |
- |
-// Tests that when the default view is created, while MaximizeMode is active, |
-// that it is visible. |
-TEST_F(TrayRotationLockTest, CreateDefaultViewDuringMaximizeMode) { |
- TearDownViews(); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- SetUpForStatusAreaWidget(StatusAreaWidgetTestHelper::GetStatusAreaWidget()); |
- EXPECT_TRUE(default_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- false); |
-} |
- |
-// Tests that the enabling of MaximizeMode affects a previously created default |
-// view, changing the visibility. |
-TEST_F(TrayRotationLockTest, DefaultViewVisibilityChangesDuringMaximizeMode) { |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- EXPECT_TRUE(default_view()->visible()); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- false); |
- EXPECT_FALSE(default_view()->visible()); |
-} |
- |
-// Tests that no default view is created when the target is a secondary |
-// display. |
-TEST_F(TrayRotationLockTest, CreateSecondaryDefaultView) { |
- UpdateDisplay("400x400,200x200"); |
- |
- TearDownViews(); |
- SetUpForStatusAreaWidget( |
- StatusAreaWidgetTestHelper::GetSecondaryStatusAreaWidget()); |
- EXPECT_EQ(NULL, default_view()); |
-} |
- |
-// Tests that activating the default view causes the display to have its |
-// rotation locked, and that the tray view becomes visible. |
-TEST_F(TrayRotationLockTest, PerformActionOnDefaultView) { |
- MaximizeModeController* maximize_mode_controller = |
- WmShell::Get()->maximize_mode_controller(); |
- ScreenOrientationController* screen_orientation_controller = |
- Shell::GetInstance()->screen_orientation_controller(); |
- ASSERT_FALSE(screen_orientation_controller->rotation_locked()); |
- maximize_mode_controller->EnableMaximizeModeWindowManager(true); |
- ASSERT_FALSE(tray_view()->visible()); |
- |
- ui::GestureEvent tap(0, 0, 0, base::TimeTicks(), |
- ui::GestureEventDetails(ui::ET_GESTURE_TAP)); |
- default_view()->OnGestureEvent(&tap); |
- EXPECT_TRUE(screen_orientation_controller->rotation_locked()); |
- EXPECT_TRUE(tray_view()->visible()); |
- |
- maximize_mode_controller->EnableMaximizeModeWindowManager(false); |
-} |
- |
-// Tests that when the tray is created without the internal display being known, |
-// that it will still display correctly once the internal display is known. |
-TEST_F(TrayRotationLockTest, InternalDisplayNotAvailableAtCreation) { |
- int64_t internal_display_id = display::Display::InternalDisplayId(); |
- TearDownViews(); |
- display::Display::SetInternalDisplayId(display::kInvalidDisplayId); |
- |
- std::unique_ptr<TrayRotationLock> tray(new TrayRotationLock( |
- StatusAreaWidgetTestHelper::GetStatusAreaWidget()->system_tray())); |
- |
- display::Display::SetInternalDisplayId(internal_display_id); |
- std::unique_ptr<views::View> tray_view(CreateTrayView(tray.get())); |
- std::unique_ptr<views::View> default_view(tray->CreateDefaultView( |
- StatusAreaWidgetTestHelper::GetUserLoginStatus())); |
- EXPECT_TRUE(default_view); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- EXPECT_TRUE(default_view->visible()); |
-} |
- |
-// Tests that when the tray view is deleted, while TrayRotationLock has not been |
-// deleted, that updates to the rotation lock state do not crash. |
-TEST_F(TrayRotationLockTest, LockUpdatedDuringDesctruction) { |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- true); |
- DestroyTrayView(); |
- Shell::GetInstance()->screen_orientation_controller()->SetRotationLocked( |
- true); |
- WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
- false); |
-} |
- |
-} // namespace ash |