summaryrefslogtreecommitdiffstats
path: root/ash/accelerators/accelerator_controller_unittest.cc
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-18 04:12:14 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-18 04:12:14 +0000
commitfb9a35593b87e79a08cbcfa8105189b54c9f2adf (patch)
treeb38a21db7f41c1570e90297f5198908ebab37db8 /ash/accelerators/accelerator_controller_unittest.cc
parent80b64ea5a60284fcdc509a99c83bc889e27db28b (diff)
downloadchromium_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.cc74
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(