diff options
Diffstat (limited to 'chromium/ui/views/corewm/cursor_manager_unittest.cc')
-rw-r--r-- | chromium/ui/views/corewm/cursor_manager_unittest.cc | 353 |
1 files changed, 0 insertions, 353 deletions
diff --git a/chromium/ui/views/corewm/cursor_manager_unittest.cc b/chromium/ui/views/corewm/cursor_manager_unittest.cc deleted file mode 100644 index a9c507782a5..00000000000 --- a/chromium/ui/views/corewm/cursor_manager_unittest.cc +++ /dev/null @@ -1,353 +0,0 @@ -// Copyright (c) 2013 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 "ui/views/corewm/cursor_manager.h" - -#include "ui/aura/client/cursor_client_observer.h" -#include "ui/views/corewm/native_cursor_manager.h" -#include "ui/views/test/views_test_base.h" - -namespace { - -class TestingCursorManager : public views::corewm::NativeCursorManager { - public: - // Overridden from views::corewm::NativeCursorManager: - virtual void SetDisplay( - const gfx::Display& display, - views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE {} - - virtual void SetCursor( - gfx::NativeCursor cursor, - views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE { - delegate->CommitCursor(cursor); - } - - virtual void SetVisibility( - bool visible, - views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE { - delegate->CommitVisibility(visible); - } - - virtual void SetMouseEventsEnabled( - bool enabled, - views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE { - delegate->CommitMouseEventsEnabled(enabled); - } - - virtual void SetCursorSet( - ui::CursorSetType cursor_set, - views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE { - delegate->CommitCursorSet(cursor_set); - } - - virtual void SetScale( - float scale, - views::corewm::NativeCursorManagerDelegate* delegate) OVERRIDE { - delegate->CommitScale(scale); - } -}; - -} // namespace - -class CursorManagerTest : public views::ViewsTestBase { - protected: - CursorManagerTest() - : delegate_(new TestingCursorManager), - cursor_manager_(scoped_ptr<views::corewm::NativeCursorManager>( - delegate_)) { - } - - TestingCursorManager* delegate_; - views::corewm::CursorManager cursor_manager_; -}; - -class TestingCursorClientObserver : public aura::client::CursorClientObserver { - public: - TestingCursorClientObserver() - : cursor_visibility_(false), - did_visibility_change_(false) {} - void reset() { cursor_visibility_ = did_visibility_change_ = false; } - bool is_cursor_visible() const { return cursor_visibility_; } - bool did_visibility_change() const { return did_visibility_change_; } - - // Overridden from aura::client::CursorClientObserver: - virtual void OnCursorVisibilityChanged(bool is_visible) OVERRIDE { - cursor_visibility_ = is_visible; - did_visibility_change_ = true; - } - - private: - bool cursor_visibility_; - bool did_visibility_change_; - - DISALLOW_COPY_AND_ASSIGN(TestingCursorClientObserver); -}; - -TEST_F(CursorManagerTest, ShowHideCursor) { - cursor_manager_.SetCursor(ui::kCursorCopy); - EXPECT_EQ(ui::kCursorCopy, cursor_manager_.GetCursor().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, cursor_manager_.GetCursor().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()); -} - -// Verifies that LockCursor/UnlockCursor work correctly with -// EnableMouseEvents and DisableMouseEvents -TEST_F(CursorManagerTest, EnableDisableMouseEvents) { - cursor_manager_.SetCursor(ui::kCursorCopy); - EXPECT_EQ(ui::kCursorCopy, cursor_manager_.GetCursor().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, cursor_manager_.GetCursor().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, SetCursorSet) { - EXPECT_EQ(ui::CURSOR_SET_NORMAL, cursor_manager_.GetCursorSet()); - - cursor_manager_.SetCursorSet(ui::CURSOR_SET_NORMAL); - EXPECT_EQ(ui::CURSOR_SET_NORMAL, cursor_manager_.GetCursorSet()); - - cursor_manager_.SetCursorSet(ui::CURSOR_SET_LARGE); - EXPECT_EQ(ui::CURSOR_SET_LARGE, cursor_manager_.GetCursorSet()); - - cursor_manager_.SetCursorSet(ui::CURSOR_SET_NORMAL); - EXPECT_EQ(ui::CURSOR_SET_NORMAL, cursor_manager_.GetCursorSet()); -} - -TEST_F(CursorManagerTest, SetScale) { - EXPECT_EQ(1.f, cursor_manager_.GetScale()); - cursor_manager_.SetScale(2.f); - EXPECT_EQ(2.f, cursor_manager_.GetScale()); - - // Cusror scale does change even while cursor is locked. - cursor_manager_.LockCursor(); - EXPECT_EQ(2.f, cursor_manager_.GetScale()); - cursor_manager_.SetScale(2.5f); - EXPECT_EQ(2.5f, cursor_manager_.GetScale()); - cursor_manager_.UnlockCursor(); - - EXPECT_EQ(2.5f, cursor_manager_.GetScale()); - cursor_manager_.SetScale(1.f); - EXPECT_EQ(1.f, cursor_manager_.GetScale()); -} - -TEST_F(CursorManagerTest, IsMouseEventsEnabled) { - 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) { - // 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) { - 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) { - cursor_manager_.DisableMouseEvents(); - cursor_manager_.EnableMouseEvents(); - cursor_manager_.EnableMouseEvents(); - cursor_manager_.LockCursor(); - cursor_manager_.UnlockCursor(); - EXPECT_TRUE(cursor_manager_.IsCursorVisible()); -} - -TEST_F(CursorManagerTest, TestCursorClientObserver) { - // Add two observers. Both should have OnCursorVisibilityChanged() - // invoked when the visibility of the cursor changes. - TestingCursorClientObserver observer_a; - TestingCursorClientObserver observer_b; - cursor_manager_.AddObserver(&observer_a); - cursor_manager_.AddObserver(&observer_b); - - // Initial state before any events have been sent. - observer_a.reset(); - observer_b.reset(); - EXPECT_FALSE(observer_a.did_visibility_change()); - EXPECT_FALSE(observer_b.did_visibility_change()); - EXPECT_FALSE(observer_a.is_cursor_visible()); - EXPECT_FALSE(observer_b.is_cursor_visible()); - - // Hide the cursor using HideCursor(). - cursor_manager_.HideCursor(); - EXPECT_TRUE(observer_a.did_visibility_change()); - EXPECT_TRUE(observer_b.did_visibility_change()); - EXPECT_FALSE(observer_a.is_cursor_visible()); - EXPECT_FALSE(observer_b.is_cursor_visible()); - - // Show the cursor using ShowCursor(). - observer_a.reset(); - observer_b.reset(); - cursor_manager_.ShowCursor(); - EXPECT_TRUE(observer_a.did_visibility_change()); - EXPECT_TRUE(observer_b.did_visibility_change()); - EXPECT_TRUE(observer_a.is_cursor_visible()); - EXPECT_TRUE(observer_b.is_cursor_visible()); - - // Remove observer_b. Its OnCursorVisibilityChanged() should - // not be invoked past this point. - cursor_manager_.RemoveObserver(&observer_b); - - // Hide the cursor using HideCursor(). - observer_a.reset(); - observer_b.reset(); - cursor_manager_.HideCursor(); - EXPECT_TRUE(observer_a.did_visibility_change()); - EXPECT_FALSE(observer_b.did_visibility_change()); - EXPECT_FALSE(observer_a.is_cursor_visible()); - - // Show the cursor using ShowCursor(). - observer_a.reset(); - observer_b.reset(); - cursor_manager_.ShowCursor(); - EXPECT_TRUE(observer_a.did_visibility_change()); - EXPECT_FALSE(observer_b.did_visibility_change()); - EXPECT_TRUE(observer_a.is_cursor_visible()); -} |