| Index: ash/wm/cursor_manager_unittest.cc
|
| diff --git a/ash/wm/cursor_manager_unittest.cc b/ash/wm/cursor_manager_unittest.cc
|
| deleted file mode 100644
|
| index a29051290d060d1efd2b4397a60b028e163e7166..0000000000000000000000000000000000000000
|
| --- a/ash/wm/cursor_manager_unittest.cc
|
| +++ /dev/null
|
| @@ -1,360 +0,0 @@
|
| -// Copyright (c) 2012 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/wm/cursor_manager.h"
|
| -
|
| -#include "ash/shell.h"
|
| -#include "ash/test/ash_test_base.h"
|
| -#include "ash/test/cursor_manager_test_api.h"
|
| -#include "ash/wm/image_cursors.h"
|
| -#include "ui/aura/root_window.h"
|
| -#include "ui/aura/test/test_window_delegate.h"
|
| -#include "ui/aura/test/test_windows.h"
|
| -#include "ui/aura/window.h"
|
| -
|
| -namespace ash {
|
| -namespace test {
|
| -
|
| -namespace {
|
| -
|
| -// A delegate for recording a mouse event location.
|
| -class MouseEventLocationDelegate : public aura::test::TestWindowDelegate {
|
| - public:
|
| - MouseEventLocationDelegate() {}
|
| - virtual ~MouseEventLocationDelegate() {}
|
| -
|
| - const gfx::Point& mouse_event_location() const {
|
| - return mouse_event_location_;
|
| - }
|
| -
|
| - virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE {
|
| - mouse_event_location_ = event->location();
|
| - event->SetHandled();
|
| - }
|
| -
|
| - private:
|
| - gfx::Point mouse_event_location_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MouseEventLocationDelegate);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -typedef test::AshTestBase CursorManagerTest;
|
| -
|
| -TEST_F(CursorManagerTest, LockCursor) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - CursorManagerTestApi test_api(cursor_manager);
|
| -
|
| - cursor_manager->SetCursor(ui::kCursorCopy);
|
| - EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type());
|
| - cursor_manager->SetDeviceScaleFactor(2.0f);
|
| - EXPECT_EQ(2.0f, test_api.GetDeviceScaleFactor());
|
| - EXPECT_TRUE(test_api.GetCurrentCursor().platform());
|
| -
|
| - cursor_manager->LockCursor();
|
| - EXPECT_TRUE(cursor_manager->is_cursor_locked());
|
| -
|
| - // Cursor type does not change while cursor is locked.
|
| - cursor_manager->SetCursor(ui::kCursorPointer);
|
| - EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type());
|
| -
|
| - // Device scale factor does change even while cursor is locked.
|
| - cursor_manager->SetDeviceScaleFactor(1.0f);
|
| - EXPECT_EQ(1.0f, test_api.GetDeviceScaleFactor());
|
| -
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_FALSE(cursor_manager->is_cursor_locked());
|
| -
|
| - // Cursor type changes to the one specified while cursor is locked.
|
| - EXPECT_EQ(ui::kCursorPointer, test_api.GetCurrentCursor().native_type());
|
| - EXPECT_EQ(1.0f, test_api.GetDeviceScaleFactor());
|
| - EXPECT_TRUE(test_api.GetCurrentCursor().platform());
|
| -}
|
| -
|
| -TEST_F(CursorManagerTest, SetCursor) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - CursorManagerTestApi test_api(cursor_manager);
|
| -
|
| - cursor_manager->SetCursor(ui::kCursorCopy);
|
| - EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type());
|
| - EXPECT_TRUE(test_api.GetCurrentCursor().platform());
|
| - cursor_manager->SetCursor(ui::kCursorPointer);
|
| - EXPECT_EQ(ui::kCursorPointer, test_api.GetCurrentCursor().native_type());
|
| - EXPECT_TRUE(test_api.GetCurrentCursor().platform());
|
| -}
|
| -
|
| -TEST_F(CursorManagerTest, ShowHideCursor) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - CursorManagerTestApi test_api(cursor_manager);
|
| -
|
| - cursor_manager->SetCursor(ui::kCursorCopy);
|
| - EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type());
|
| -
|
| - cursor_manager->ShowCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - cursor_manager->HideCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - // The current cursor does not change even when the cursor is not shown.
|
| - EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type());
|
| -
|
| - // Check if cursor visibility is locked.
|
| - cursor_manager->LockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - cursor_manager->ShowCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| -
|
| - cursor_manager->LockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - cursor_manager->HideCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| -
|
| - // Checks setting visiblity while cursor is locked does not affect the
|
| - // subsequent uses of UnlockCursor.
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->HideCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| -
|
| - cursor_manager->ShowCursor();
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| -
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->ShowCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| -
|
| - cursor_manager->HideCursor();
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| -}
|
| -
|
| -TEST_F(CursorManagerTest, SetDeviceScaleFactor) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - CursorManagerTestApi test_api(cursor_manager);
|
| -
|
| - cursor_manager->SetDeviceScaleFactor(2.0f);
|
| - EXPECT_EQ(2.0f, test_api.GetDeviceScaleFactor());
|
| - cursor_manager->SetDeviceScaleFactor(1.0f);
|
| - EXPECT_EQ(1.0f, test_api.GetDeviceScaleFactor());
|
| -}
|
| -
|
| -// Verifies that LockCursor/UnlockCursor work correctly with
|
| -// EnableMouseEvents and DisableMouseEvents
|
| -TEST_F(CursorManagerTest, EnableDisableMouseEvents) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - CursorManagerTestApi test_api(cursor_manager);
|
| -
|
| - cursor_manager->SetCursor(ui::kCursorCopy);
|
| - EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type());
|
| -
|
| - cursor_manager->EnableMouseEvents();
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| - // The current cursor does not change even when the cursor is not shown.
|
| - EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type());
|
| -
|
| - // Check if cursor enable state is locked.
|
| - cursor_manager->LockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->EnableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - cursor_manager->LockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - // Checks enabling cursor while cursor is locked does not affect the
|
| - // subsequent uses of UnlockCursor.
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->DisableMouseEvents();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - cursor_manager->EnableMouseEvents();
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->EnableMouseEvents();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - cursor_manager->DisableMouseEvents();
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| -}
|
| -
|
| -TEST_F(CursorManagerTest, IsMouseEventsEnabled) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - cursor_manager->EnableMouseEvents();
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| -}
|
| -
|
| -// Verifies that the mouse events enable state changes correctly when
|
| -// ShowCursor/HideCursor and EnableMouseEvents/DisableMouseEvents are used
|
| -// together.
|
| -TEST_F(CursorManagerTest, ShowAndEnable) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| -
|
| - // Changing the visibility of the cursor does not affect the enable state.
|
| - cursor_manager->EnableMouseEvents();
|
| - cursor_manager->ShowCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->HideCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->ShowCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - // When mouse events are disabled, it also gets invisible.
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - // When mouse events are enabled, it restores the visibility state.
|
| - cursor_manager->EnableMouseEvents();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - cursor_manager->ShowCursor();
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->EnableMouseEvents();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - cursor_manager->HideCursor();
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->EnableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_TRUE(cursor_manager->IsMouseEventsEnabled());
|
| -
|
| - // When mouse events are disabled, ShowCursor is ignored.
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->ShowCursor();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| - cursor_manager->DisableMouseEvents();
|
| - EXPECT_FALSE(cursor_manager->IsCursorVisible());
|
| - EXPECT_FALSE(cursor_manager->IsMouseEventsEnabled());
|
| -}
|
| -
|
| -// Verifies that calling DisableMouseEvents multiple times in a row makes no
|
| -// difference compared with calling it once.
|
| -// This is a regression test for http://crbug.com/169404.
|
| -TEST_F(CursorManagerTest, MultipleDisableMouseEvents) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - cursor_manager->DisableMouseEvents();
|
| - cursor_manager->DisableMouseEvents();
|
| - cursor_manager->EnableMouseEvents();
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| -}
|
| -
|
| -// Verifies that calling EnableMouseEvents multiple times in a row makes no
|
| -// difference compared with calling it once.
|
| -TEST_F(CursorManagerTest, MultipleEnableMouseEvents) {
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - cursor_manager->DisableMouseEvents();
|
| - cursor_manager->EnableMouseEvents();
|
| - cursor_manager->EnableMouseEvents();
|
| - cursor_manager->LockCursor();
|
| - cursor_manager->UnlockCursor();
|
| - EXPECT_TRUE(cursor_manager->IsCursorVisible());
|
| -}
|
| -
|
| -#if defined(OS_WIN)
|
| -// Temporarily disabled for windows. See crbug.com/112222.
|
| -#define MAYBE_DisabledMouseEventsLocation DISABLED_DisabledMouseEventsLocation
|
| -#else
|
| -#define MAYBE_DisabledMouseEventsLocation DisabledMouseEventsLocation
|
| -#endif // defined(OS_WIN)
|
| -
|
| -// Verifies that RootWindow generates a mouse event located outside of a window
|
| -// when mouse events are disabled.
|
| -TEST_F(CursorManagerTest, MAYBE_DisabledMouseEventsLocation) {
|
| - scoped_ptr<MouseEventLocationDelegate> delegate(
|
| - new MouseEventLocationDelegate());
|
| - const int kWindowWidth = 123;
|
| - const int kWindowHeight = 45;
|
| - gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
|
| - scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithDelegate(
|
| - delegate.get(), 1, bounds, Shell::GetInstance()->GetPrimaryRootWindow()));
|
| -
|
| - CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager();
|
| - cursor_manager->EnableMouseEvents();
|
| - // Send a mouse event to window.
|
| - gfx::Point point(101, 201);
|
| - gfx::Point local_point;
|
| - ui::MouseEvent event(ui::ET_MOUSE_MOVED, point, point, 0);
|
| - aura::RootWindow* root_window = window->GetRootWindow();
|
| - root_window->AsRootWindowHostDelegate()->OnHostMouseEvent(&event);
|
| -
|
| - // Location was in window.
|
| - local_point = delegate->mouse_event_location();
|
| - aura::Window::ConvertPointToTarget(window.get(), root_window, &local_point);
|
| - EXPECT_TRUE(window->bounds().Contains(local_point));
|
| -
|
| - // Location is now out of window.
|
| - cursor_manager->DisableMouseEvents();
|
| - RunAllPendingInMessageLoop();
|
| - local_point = delegate->mouse_event_location();
|
| - aura::Window::ConvertPointToTarget(window.get(), root_window, &local_point);
|
| - EXPECT_FALSE(window->bounds().Contains(local_point));
|
| -
|
| - // Location is back in window.
|
| - cursor_manager->EnableMouseEvents();
|
| - RunAllPendingInMessageLoop();
|
| - local_point = delegate->mouse_event_location();
|
| - aura::Window::ConvertPointToTarget(window.get(), root_window, &local_point);
|
| - EXPECT_TRUE(window->bounds().Contains(local_point));
|
| -}
|
| -
|
| -#if defined(OS_WIN)
|
| -// Disable on Win because RootWindow::MoveCursorTo is not implemented.
|
| -#define MAYBE_DisabledQueryMouseLocation DISABLED_DisabledQueryMouseLocation
|
| -#else
|
| -#define MAYBE_DisabledQueryMouseLocation DisabledQueryMouseLocation
|
| -#endif // defined(OS_WIN)
|
| -
|
| -TEST_F(CursorManagerTest, MAYBE_DisabledQueryMouseLocation) {
|
| - aura::RootWindow* root_window = Shell::GetInstance()->GetPrimaryRootWindow();
|
| - root_window->MoveCursorTo(gfx::Point(10, 10));
|
| - gfx::Point mouse_location;
|
| - EXPECT_TRUE(root_window->QueryMouseLocationForTest(&mouse_location));
|
| - EXPECT_EQ("10,10", mouse_location.ToString());
|
| - Shell::GetInstance()->cursor_manager()->DisableMouseEvents();
|
| - EXPECT_FALSE(root_window->QueryMouseLocationForTest(&mouse_location));
|
| - EXPECT_EQ("0,0", mouse_location.ToString());
|
| -}
|
| -
|
| -} // namespace test
|
| -} // namespace ash
|
|
|