Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4105)

Unified Diff: chrome/browser/ui/ash/event_rewriter_unittest.cc

Issue 155493002: Add key based scrolling on magnified screen for kiosk mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/ash/event_rewriter_unittest.cc
diff --git a/chrome/browser/ui/ash/event_rewriter_unittest.cc b/chrome/browser/ui/ash/event_rewriter_unittest.cc
index 1e2d608deac0aca6a4bb7ce598176a595e294463..4403d3d4c4e70bb9a0de722b39d15987da93d269 100644
--- a/chrome/browser/ui/ash/event_rewriter_unittest.cc
+++ b/chrome/browser/ui/ash/event_rewriter_unittest.cc
@@ -18,6 +18,8 @@
#include <X11/XF86keysym.h>
#include <X11/Xlib.h>
+#include "ash/magnifier/magnification_controller.h"
+#include "ash/shell.h"
#include "ash/test/ash_test_base.h"
#include "ash/wm/window_state.h"
#include "chrome/browser/chromeos/input_method/input_method_configuration.h"
@@ -2339,6 +2341,12 @@ class EventRewriterAshTest : public ash::test::AshTestBase {
return rewriter_.RewriteFunctionKeys(event);
}
+ bool RewriteAccessibilityKey(
+ ui::KeyEvent* event,
+ ash::EventRewriterDelegate::Action* action) {
+ return rewriter_.RewriteAccessibilityKeys(event, action);
+ }
+
protected:
TestingPrefServiceSyncable prefs_;
@@ -2459,4 +2467,77 @@ TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) {
}
}
+TEST_F(EventRewriterAshTest, MagnifierAccelerators) {
+ ash::MagnificationController::ScopedMagnifierAcceleratorsEnablerForTest
+ enabler;
+ ash::Shell::GetInstance()->magnification_controller()->SetEnabled(true);
+
+ ui::ScopedXI2Event xev_up;
+ ash::EventRewriterDelegate::Action action =
+ ash::EventRewriterDelegate::ACTION_REWRITE_EVENT;
+
+ // Press and hold.
+ {
+ xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
+ ui::KeyEvent press_up(xev_up, false);
+ EXPECT_TRUE(RewriteAccessibilityKey(&press_up, &action));
+ EXPECT_EQ(ash::EventRewriterDelegate::ACTION_DROP_EVENT, action);
+ }
+ {
+ xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
+ ui::KeyEvent press_hold_up(xev_up, false);
+ EXPECT_TRUE(RewriteAccessibilityKey(&press_hold_up, &action));
+ EXPECT_EQ(ash::EventRewriterDelegate::ACTION_REWRITE_EVENT, action);
+
+ EXPECT_EQ(ui::VKEY_NUMPAD6, press_hold_up.key_code());
+ EXPECT_TRUE(press_hold_up.flags() & ui::EF_SHIFT_DOWN);
+ }
+ {
+ xev_up.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_UP, 0);
+ ui::KeyEvent release_up(xev_up, false);
+ EXPECT_TRUE(RewriteAccessibilityKey(&release_up, &action));
+ EXPECT_EQ(ash::EventRewriterDelegate::ACTION_REWRITE_EVENT, action);
+
+ EXPECT_EQ(ui::VKEY_NUMPAD6, release_up.key_code());
+ EXPECT_FALSE(release_up.flags() & ui::EF_SHIFT_DOWN);
+ }
+
+ // Press and Release
+ {
+ xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
+ ui::KeyEvent press_up(xev_up, false);
+ EXPECT_TRUE(RewriteAccessibilityKey(&press_up, &action));
+ EXPECT_EQ(ash::EventRewriterDelegate::ACTION_DROP_EVENT, action);
+ }
+ {
+ xev_up.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_UP, 0);
+ ui::KeyEvent release_up(xev_up, false);
+ EXPECT_TRUE(RewriteAccessibilityKey(&release_up, &action));
+ EXPECT_EQ(ash::EventRewriterDelegate::ACTION_REWRITE_EVENT, action);
+
+ EXPECT_EQ(ui::VKEY_UP, release_up.key_code());
+ EXPECT_EQ(ui::ET_KEY_PRESSED, release_up.type());
+ // The press event should have shift-down even if the release event
+ // didn't.
+ EXPECT_TRUE(release_up.flags() & ui::EF_SHIFT_DOWN);
+ }
+
+ // Make sure that we don't rewrite events when the magnifier is off.
+ ash::Shell::GetInstance()->magnification_controller()->SetEnabled(false);
+ {
+ xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
+ ui::KeyEvent press_up(xev_up, false);
+ EXPECT_FALSE(RewriteAccessibilityKey(&press_up, &action));
+ EXPECT_EQ(ui::ET_KEY_PRESSED, press_up.type());
+ EXPECT_EQ(ui::VKEY_UP, press_up.key_code());
+ }
+ {
+ xev_up.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
+ ui::KeyEvent release_up(xev_up, false);
+ EXPECT_FALSE(RewriteAccessibilityKey(&release_up, &action));
+ EXPECT_EQ(ui::ET_KEY_RELEASED, release_up.type());
+ EXPECT_EQ(ui::VKEY_UP, release_up.key_code());
+ }
+}
+
#endif // OS_CHROMEOS

Powered by Google App Engine
This is Rietveld 408576698