diff options
author | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 06:07:29 +0000 |
---|---|---|
committer | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 06:07:29 +0000 |
commit | da466603329aa087a935cf6d785e5a98136b72bf (patch) | |
tree | 1e2954de54266a1c6cd702a62199acd0b3106da0 /ash | |
parent | dc909a9e56db63a207f21d2056c86f531aedc18f (diff) | |
download | chromium_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.cc | 43 |
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); |