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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/ash/event_rewriter.h" 5 #include "chrome/browser/ui/ash/event_rewriter.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/prefs/pref_member.h" 9 #include "base/prefs/pref_member.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
11 #include "chrome/common/pref_names.h" 11 #include "chrome/common/pref_names.h"
12 #include "chrome/test/base/testing_pref_service_syncable.h" 12 #include "chrome/test/base/testing_pref_service_syncable.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "ui/events/event.h" 14 #include "ui/events/event.h"
15 15
16 #if defined(OS_CHROMEOS) 16 #if defined(OS_CHROMEOS)
17 #include <X11/keysym.h> 17 #include <X11/keysym.h>
18 #include <X11/XF86keysym.h> 18 #include <X11/XF86keysym.h>
19 #include <X11/Xlib.h> 19 #include <X11/Xlib.h>
20 20
21 #include "ash/magnifier/magnification_controller.h"
22 #include "ash/shell.h"
21 #include "ash/test/ash_test_base.h" 23 #include "ash/test/ash_test_base.h"
22 #include "ash/wm/window_state.h" 24 #include "ash/wm/window_state.h"
23 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" 25 #include "chrome/browser/chromeos/input_method/input_method_configuration.h"
24 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" 26 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h"
25 #include "chrome/browser/chromeos/login/mock_user_manager.h" 27 #include "chrome/browser/chromeos/login/mock_user_manager.h"
26 #include "chrome/browser/chromeos/login/user_manager.h" 28 #include "chrome/browser/chromeos/login/user_manager.h"
27 #include "chrome/browser/chromeos/preferences.h" 29 #include "chrome/browser/chromeos/preferences.h"
28 #include "chromeos/chromeos_switches.h" 30 #include "chromeos/chromeos_switches.h"
29 #include "chromeos/ime/mock_xkeyboard.h" 31 #include "chromeos/ime/mock_xkeyboard.h"
30 #include "ui/aura/window.h" 32 #include "ui/aura/window.h"
(...skipping 2301 matching lines...) Expand 10 before | Expand all | Expand 10 after
2332 EventRewriterAshTest() { 2334 EventRewriterAshTest() {
2333 chromeos::Preferences::RegisterProfilePrefs(prefs_.registry()); 2335 chromeos::Preferences::RegisterProfilePrefs(prefs_.registry());
2334 rewriter_.set_pref_service_for_testing(&prefs_); 2336 rewriter_.set_pref_service_for_testing(&prefs_);
2335 } 2337 }
2336 virtual ~EventRewriterAshTest() {} 2338 virtual ~EventRewriterAshTest() {}
2337 2339
2338 bool RewriteFunctionKeys(ui::KeyEvent* event) { 2340 bool RewriteFunctionKeys(ui::KeyEvent* event) {
2339 return rewriter_.RewriteFunctionKeys(event); 2341 return rewriter_.RewriteFunctionKeys(event);
2340 } 2342 }
2341 2343
2344 bool RewriteAccessibilityKey(
2345 ui::KeyEvent* event,
2346 ash::EventRewriterDelegate::Action* action) {
2347 return rewriter_.RewriteAccessibilityKeys(event, action);
2348 }
2349
2342 protected: 2350 protected:
2343 TestingPrefServiceSyncable prefs_; 2351 TestingPrefServiceSyncable prefs_;
2344 2352
2345 private: 2353 private:
2346 EventRewriter rewriter_; 2354 EventRewriter rewriter_;
2347 2355
2348 DISALLOW_COPY_AND_ASSIGN(EventRewriterAshTest); 2356 DISALLOW_COPY_AND_ASSIGN(EventRewriterAshTest);
2349 }; 2357 };
2350 2358
2351 TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { 2359 TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) {
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
2452 } 2460 }
2453 { 2461 {
2454 ui::ScopedXI2Event xev; 2462 ui::ScopedXI2Event xev;
2455 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, kLeftAndAltFlag); 2463 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, kLeftAndAltFlag);
2456 ui::MouseEvent release(xev); 2464 ui::MouseEvent release(xev);
2457 RewriteLocatedEvent(&rewriter, &release); 2465 RewriteLocatedEvent(&rewriter, &release);
2458 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & release.flags()); 2466 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & release.flags());
2459 } 2467 }
2460 } 2468 }
2461 2469
2470 TEST_F(EventRewriterAshTest, MagnifierAccelerators) {
2471 ash::MagnificationController::ScopedMagnifierAcceleratorsEnablerForTest
2472 enabler;
2473 ash::Shell::GetInstance()->magnification_controller()->SetEnabled(true);
2474
2475 ui::ScopedXI2Event xev_up;
2476 ash::EventRewriterDelegate::Action action =
2477 ash::EventRewriterDelegate::ACTION_REWRITE_EVENT;
2478
2479 // Press and hold.
2480 {
2481 xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
2482 ui::KeyEvent press_up(xev_up, false);
2483 EXPECT_TRUE(RewriteAccessibilityKey(&press_up, &action));
2484 EXPECT_EQ(ash::EventRewriterDelegate::ACTION_DROP_EVENT, action);
2485 }
2486 {
2487 xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
2488 ui::KeyEvent press_hold_up(xev_up, false);
2489 EXPECT_TRUE(RewriteAccessibilityKey(&press_hold_up, &action));
2490 EXPECT_EQ(ash::EventRewriterDelegate::ACTION_REWRITE_EVENT, action);
2491
2492 EXPECT_EQ(ui::VKEY_NUMPAD6, press_hold_up.key_code());
2493 EXPECT_TRUE(press_hold_up.flags() & ui::EF_SHIFT_DOWN);
2494 }
2495 {
2496 xev_up.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_UP, 0);
2497 ui::KeyEvent release_up(xev_up, false);
2498 EXPECT_TRUE(RewriteAccessibilityKey(&release_up, &action));
2499 EXPECT_EQ(ash::EventRewriterDelegate::ACTION_REWRITE_EVENT, action);
2500
2501 EXPECT_EQ(ui::VKEY_NUMPAD6, release_up.key_code());
2502 EXPECT_FALSE(release_up.flags() & ui::EF_SHIFT_DOWN);
2503 }
2504
2505 // Press and Release
2506 {
2507 xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
2508 ui::KeyEvent press_up(xev_up, false);
2509 EXPECT_TRUE(RewriteAccessibilityKey(&press_up, &action));
2510 EXPECT_EQ(ash::EventRewriterDelegate::ACTION_DROP_EVENT, action);
2511 }
2512 {
2513 xev_up.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_UP, 0);
2514 ui::KeyEvent release_up(xev_up, false);
2515 EXPECT_TRUE(RewriteAccessibilityKey(&release_up, &action));
2516 EXPECT_EQ(ash::EventRewriterDelegate::ACTION_REWRITE_EVENT, action);
2517
2518 EXPECT_EQ(ui::VKEY_UP, release_up.key_code());
2519 EXPECT_EQ(ui::ET_KEY_PRESSED, release_up.type());
2520 // The press event should have shift-down even if the release event
2521 // didn't.
2522 EXPECT_TRUE(release_up.flags() & ui::EF_SHIFT_DOWN);
2523 }
2524
2525 // Make sure that we don't rewrite events when the magnifier is off.
2526 ash::Shell::GetInstance()->magnification_controller()->SetEnabled(false);
2527 {
2528 xev_up.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
2529 ui::KeyEvent press_up(xev_up, false);
2530 EXPECT_FALSE(RewriteAccessibilityKey(&press_up, &action));
2531 EXPECT_EQ(ui::ET_KEY_PRESSED, press_up.type());
2532 EXPECT_EQ(ui::VKEY_UP, press_up.key_code());
2533 }
2534 {
2535 xev_up.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_UP, ui::EF_SHIFT_DOWN);
2536 ui::KeyEvent release_up(xev_up, false);
2537 EXPECT_FALSE(RewriteAccessibilityKey(&release_up, &action));
2538 EXPECT_EQ(ui::ET_KEY_RELEASED, release_up.type());
2539 EXPECT_EQ(ui::VKEY_UP, release_up.key_code());
2540 }
2541 }
2542
2462 #endif // OS_CHROMEOS 2543 #endif // OS_CHROMEOS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698