diff options
author | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-18 04:12:14 +0000 |
---|---|---|
committer | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-18 04:12:14 +0000 |
commit | fb9a35593b87e79a08cbcfa8105189b54c9f2adf (patch) | |
tree | b38a21db7f41c1570e90297f5198908ebab37db8 /ash/accelerators/accelerator_controller_unittest.cc | |
parent | 80b64ea5a60284fcdc509a99c83bc889e27db28b (diff) | |
download | chromium_src-fb9a35593b87e79a08cbcfa8105189b54c9f2adf.zip chromium_src-fb9a35593b87e79a08cbcfa8105189b54c9f2adf.tar.gz chromium_src-fb9a35593b87e79a08cbcfa8105189b54c9f2adf.tar.bz2 |
Handle Caps Lock short cut (Shift+Search) in ash [part 1 of 2].
Currently it's handled in chrome/browser/chromeos/system_key_event_listener.cc by checking the X event loop directly, but for Aura, it'd be better to remove the X dependency by moving the code to ash/accelerators/ since any class except aura::RootWindowHost should not handle an X event directly.
Part 2 of 2: https://chromiumcodereview.appspot.com/9225004/
BUG=110129
TEST=ran aura_shell_unittests
Review URL: http://codereview.chromium.org/9242003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118035 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/accelerators/accelerator_controller_unittest.cc')
-rw-r--r-- | ash/accelerators/accelerator_controller_unittest.cc | 74 |
1 files changed, 61 insertions, 13 deletions
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index e5dd5d9..9f86b45 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "ash/accelerators/accelerator_controller.h" +#include "ash/caps_lock_delegate.h" #include "ash/ime/event.h" #include "ash/screenshot_delegate.h" #include "ash/shell.h" @@ -69,6 +70,30 @@ class DummyScreenshotDelegate : public ScreenshotDelegate { DISALLOW_COPY_AND_ASSIGN(DummyScreenshotDelegate); }; +class DummyCapsLockDelegate : public CapsLockDelegate { + public: + explicit DummyCapsLockDelegate(bool consume) + : consume_(consume), + handle_caps_lock_count_(0) { + } + virtual ~DummyCapsLockDelegate() {} + + virtual bool HandleToggleCapsLock() OVERRIDE { + ++handle_caps_lock_count_; + return consume_; + } + + int handle_caps_lock_count() const { + return handle_caps_lock_count_; + } + + private: + const bool consume_; + int handle_caps_lock_count_; + + DISALLOW_COPY_AND_ASSIGN(DummyCapsLockDelegate); +}; + bool TestTarget::AcceleratorPressed(const ui::Accelerator& accelerator) { ++accelerator_pressed_count_; return true; @@ -248,19 +273,42 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { ui::Accelerator(ui::VKEY_TAB, false, false, true))); // TakeScreenshot // True should always be returned regardless of the existence of the delegate. - EXPECT_TRUE(GetController()->Process( - ui::Accelerator(ui::VKEY_F5, false, true, false))); - EXPECT_TRUE(GetController()->Process( - ui::Accelerator(ui::VKEY_PRINT, false, false, false))); - DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; - GetController()->SetScreenshotDelegate(delegate); - EXPECT_EQ(0, delegate->handle_take_screenshot_count()); - EXPECT_TRUE(GetController()->Process( - ui::Accelerator(ui::VKEY_F5, false, true, false))); - EXPECT_EQ(1, delegate->handle_take_screenshot_count()); - EXPECT_TRUE(GetController()->Process( - ui::Accelerator(ui::VKEY_PRINT, false, false, false))); - EXPECT_EQ(2, delegate->handle_take_screenshot_count()); + { + EXPECT_TRUE(GetController()->Process( + ui::Accelerator(ui::VKEY_F5, false, true, false))); + EXPECT_TRUE(GetController()->Process( + ui::Accelerator(ui::VKEY_PRINT, false, false, false))); + DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; + GetController()->SetScreenshotDelegate(delegate); + EXPECT_EQ(0, delegate->handle_take_screenshot_count()); + EXPECT_TRUE(GetController()->Process( + ui::Accelerator(ui::VKEY_F5, false, true, false))); + EXPECT_EQ(1, delegate->handle_take_screenshot_count()); + EXPECT_TRUE(GetController()->Process( + ui::Accelerator(ui::VKEY_PRINT, false, false, false))); + EXPECT_EQ(2, delegate->handle_take_screenshot_count()); + } + // ToggleCapsLock + { + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_LWIN, true, false, false))); + DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(false); + GetController()->SetCapsLockDelegate( + scoped_ptr<CapsLockDelegate>(delegate).Pass()); + EXPECT_EQ(0, delegate->handle_caps_lock_count()); + EXPECT_FALSE(GetController()->Process( + ui::Accelerator(ui::VKEY_LWIN, true, false, false))); + EXPECT_EQ(1, delegate->handle_caps_lock_count()); + } + { + DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(true); + GetController()->SetCapsLockDelegate( + scoped_ptr<CapsLockDelegate>(delegate).Pass()); + EXPECT_EQ(0, delegate->handle_caps_lock_count()); + EXPECT_TRUE(GetController()->Process( + ui::Accelerator(ui::VKEY_LWIN, true, false, false))); + EXPECT_EQ(1, delegate->handle_caps_lock_count()); + } #if !defined(NDEBUG) // RotateScreen EXPECT_TRUE(GetController()->Process( |