summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-27 06:07:29 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-27 06:07:29 +0000
commitda466603329aa087a935cf6d785e5a98136b72bf (patch)
tree1e2954de54266a1c6cd702a62199acd0b3106da0 /ash
parentdc909a9e56db63a207f21d2056c86f531aedc18f (diff)
downloadchromium_src-da466603329aa087a935cf6d785e5a98136b72bf.zip
chromium_src-da466603329aa087a935cf6d785e5a98136b72bf.tar.gz
chromium_src-da466603329aa087a935cf6d785e5a98136b72bf.tar.bz2
Send a key event to the RootWindow when no window is focused so the global shortcut keys could always work.
BUG=110572 TEST=ran the new tests in aura_shell_unittests Review URL: http://codereview.chromium.org/9290011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119383 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/accelerators/accelerator_filter_unittest.cc43
1 files changed, 39 insertions, 4 deletions
diff --git a/ash/accelerators/accelerator_filter_unittest.cc b/ash/accelerators/accelerator_filter_unittest.cc
index a5ad52e..0c3f37f 100644
--- a/ash/accelerators/accelerator_filter_unittest.cc
+++ b/ash/accelerators/accelerator_filter_unittest.cc
@@ -51,10 +51,47 @@ AcceleratorController* GetController() {
typedef AuraShellTestBase AcceleratorFilterTest;
+// Tests if AcceleratorFilter works without a focused window.
+TEST_F(AcceleratorFilterTest, TestFilterWithoutFocus) {
+ DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate;
+ GetController()->SetScreenshotDelegate(
+ scoped_ptr<ScreenshotDelegate>(delegate).Pass());
+ EXPECT_EQ(0, delegate->handle_take_screenshot_count());
+
+ aura::test::EventGenerator generator_;
+ // AcceleratorController calls ScreenshotDelegate::HandleTakeScreenshot() when
+ // VKEY_PRINT is pressed. See kAcceleratorData[] in accelerator_controller.cc.
+ generator_.PressKey(ui::VKEY_PRINT, 0);
+ EXPECT_EQ(1, delegate->handle_take_screenshot_count());
+ generator_.ReleaseKey(ui::VKEY_PRINT, 0);
+ EXPECT_EQ(1, delegate->handle_take_screenshot_count());
+}
+
+// Tests if AcceleratorFilter works with a focused window.
+TEST_F(AcceleratorFilterTest, TestFilterWithFocus) {
+ aura::Window* default_container = Shell::GetInstance()->GetContainer(
+ internal::kShellWindowId_DefaultContainer);
+ aura::Window* window = aura::test::CreateTestWindowWithDelegate(
+ new aura::test::TestWindowDelegate,
+ -1,
+ gfx::Rect(),
+ default_container);
+ ActivateWindow(window);
+
+ DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate;
+ GetController()->SetScreenshotDelegate(
+ scoped_ptr<ScreenshotDelegate>(delegate).Pass());
+ EXPECT_EQ(0, delegate->handle_take_screenshot_count());
+
+ aura::test::EventGenerator generator_;
+ generator_.PressKey(ui::VKEY_PRINT, 0);
+ EXPECT_EQ(1, delegate->handle_take_screenshot_count());
+ generator_.ReleaseKey(ui::VKEY_PRINT, 0);
+ EXPECT_EQ(1, delegate->handle_take_screenshot_count());
+}
+
// Tests if AcceleratorFilter ignores the flag for Caps Lock.
TEST_F(AcceleratorFilterTest, TestCapsLockMask) {
- // We need an active window. Otherwise, the root window will not forward a key
- // event to event filters.
aura::Window* default_container = Shell::GetInstance()->GetContainer(
internal::kShellWindowId_DefaultContainer);
aura::Window* window = aura::test::CreateTestWindowWithDelegate(
@@ -70,8 +107,6 @@ TEST_F(AcceleratorFilterTest, TestCapsLockMask) {
EXPECT_EQ(0, delegate->handle_take_screenshot_count());
aura::test::EventGenerator generator_;
- // AcceleratorController calls ScreenshotDelegate::HandleTakeScreenshot() when
- // VKEY_PRINT is pressed. See kAcceleratorData[] in accelerator_controller.cc.
generator_.PressKey(ui::VKEY_PRINT, 0);
EXPECT_EQ(1, delegate->handle_take_screenshot_count());
generator_.ReleaseKey(ui::VKEY_PRINT, 0);