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

Unified Diff: ash/wm/cursor_manager_unittest.cc

Issue 12263050: Rework ash::CursorManager into a corewm object, to share code with desktop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to ToT Created 7 years, 10 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/wm/cursor_manager.cc ('k') | ash/wm/default_window_resizer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « ash/wm/cursor_manager.cc ('k') | ash/wm/default_window_resizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698