OLD | NEW |
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/public/pref_member.h" | 9 #include "base/prefs/public/pref_member.h" |
10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 std::string GetRewrittenEventAsString(EventRewriter* rewriter, | 45 std::string GetRewrittenEventAsString(EventRewriter* rewriter, |
46 ui::KeyboardCode ui_keycode, | 46 ui::KeyboardCode ui_keycode, |
47 int ui_flags, | 47 int ui_flags, |
48 ui::EventType ui_type, | 48 ui::EventType ui_type, |
49 KeyCode x_keycode, | 49 KeyCode x_keycode, |
50 unsigned int x_state) { | 50 unsigned int x_state) { |
51 XEvent xev; | 51 XEvent xev; |
52 InitXKeyEvent(ui_keycode, ui_flags, ui_type, x_keycode, x_state, &xev); | 52 InitXKeyEvent(ui_keycode, ui_flags, ui_type, x_keycode, x_state, &xev); |
53 ui::KeyEvent keyevent(&xev, false /* is_char */); | 53 ui::KeyEvent keyevent(&xev, false /* is_char */); |
54 rewriter->RewriteForTesting(&keyevent); | 54 rewriter->RewriteForTesting(&keyevent); |
55 return StringPrintf( | 55 return base::StringPrintf( |
56 "ui_keycode=%d ui_flags=%d ui_type=%d x_keycode=%u x_state=%u x_type=%d", | 56 "ui_keycode=%d ui_flags=%d ui_type=%d x_keycode=%u x_state=%u x_type=%d", |
57 keyevent.key_code(), keyevent.flags(), keyevent.type(), | 57 keyevent.key_code(), keyevent.flags(), keyevent.type(), |
58 xev.xkey.keycode, xev.xkey.state, xev.xkey.type); | 58 xev.xkey.keycode, xev.xkey.state, xev.xkey.type); |
59 } | 59 } |
60 | 60 |
61 std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode, | 61 std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode, |
62 int ui_flags, | 62 int ui_flags, |
63 ui::EventType ui_type, | 63 ui::EventType ui_type, |
64 KeyCode x_keycode, | 64 KeyCode x_keycode, |
65 unsigned int x_state, | 65 unsigned int x_state, |
66 int x_type) { | 66 int x_type) { |
67 return StringPrintf( | 67 return base::StringPrintf( |
68 "ui_keycode=%d ui_flags=%d ui_type=%d x_keycode=%u x_state=%u x_type=%d", | 68 "ui_keycode=%d ui_flags=%d ui_type=%d x_keycode=%u x_state=%u x_type=%d", |
69 ui_keycode, ui_flags, ui_type, x_keycode, x_state, x_type); | 69 ui_keycode, ui_flags, ui_type, x_keycode, x_state, x_type); |
70 } | 70 } |
71 | 71 |
72 class EventRewriterTest : public testing::Test { | 72 class EventRewriterTest : public testing::Test { |
73 public: | 73 public: |
74 EventRewriterTest() | 74 EventRewriterTest() |
75 : display_(ui::GetXDisplay()), | 75 : display_(ui::GetXDisplay()), |
76 keycode_a_(XKeysymToKeycode(display_, XK_a)), | 76 keycode_a_(XKeysymToKeycode(display_, XK_a)), |
77 keycode_alt_l_(XKeysymToKeycode(display_, XK_Alt_L)), | 77 keycode_alt_l_(XKeysymToKeycode(display_, XK_Alt_L)), |
(...skipping 2269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2347 | 2347 |
2348 // Send left control press. | 2348 // Send left control press. |
2349 std::string rewritten_event; | 2349 std::string rewritten_event; |
2350 { | 2350 { |
2351 XEvent xev; | 2351 XEvent xev; |
2352 InitXKeyEvent(ui::VKEY_CONTROL, 0, ui::ET_KEY_PRESSED, | 2352 InitXKeyEvent(ui::VKEY_CONTROL, 0, ui::ET_KEY_PRESSED, |
2353 keycode_control_l_, 0U, &xev); | 2353 keycode_control_l_, 0U, &xev); |
2354 xev.xkey.send_event = True; // XSendEvent() always does this. | 2354 xev.xkey.send_event = True; // XSendEvent() always does this. |
2355 ui::KeyEvent keyevent(&xev, false /* is_char */); | 2355 ui::KeyEvent keyevent(&xev, false /* is_char */); |
2356 rewriter.RewriteForTesting(&keyevent); | 2356 rewriter.RewriteForTesting(&keyevent); |
2357 rewritten_event = StringPrintf( | 2357 rewritten_event = base::StringPrintf( |
2358 "ui_keycode=%d ui_flags=%d ui_type=%d " | 2358 "ui_keycode=%d ui_flags=%d ui_type=%d " |
2359 "x_keycode=%u x_state=%u x_type=%d", | 2359 "x_keycode=%u x_state=%u x_type=%d", |
2360 keyevent.key_code(), keyevent.flags(), keyevent.type(), | 2360 keyevent.key_code(), keyevent.flags(), keyevent.type(), |
2361 xev.xkey.keycode, xev.xkey.state, xev.xkey.type); | 2361 xev.xkey.keycode, xev.xkey.state, xev.xkey.type); |
2362 } | 2362 } |
2363 | 2363 |
2364 // XK_Control_L (left Control key) should NOT be remapped to Alt if send_event | 2364 // XK_Control_L (left Control key) should NOT be remapped to Alt if send_event |
2365 // flag in the event is True. | 2365 // flag in the event is True. |
2366 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, | 2366 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, |
2367 ui::EF_CONTROL_DOWN, | 2367 ui::EF_CONTROL_DOWN, |
2368 ui::ET_KEY_PRESSED, | 2368 ui::ET_KEY_PRESSED, |
2369 keycode_control_l_, | 2369 keycode_control_l_, |
2370 0U, | 2370 0U, |
2371 KeyPress), | 2371 KeyPress), |
2372 rewritten_event); | 2372 rewritten_event); |
2373 } | 2373 } |
2374 #endif // OS_CHROMEOS | 2374 #endif // OS_CHROMEOS |
OLD | NEW |