Chromium Code Reviews| Index: ui/events/x/events_x_unittest.cc |
| diff --git a/ui/events/x/events_x_unittest.cc b/ui/events/x/events_x_unittest.cc |
| index 368682cbb1bd5fec0bb896ada960ac5c5ea5aa92..b35c527592e7857fcc70dbe6887b5bb3f6613c19 100644 |
| --- a/ui/events/x/events_x_unittest.cc |
| +++ b/ui/events/x/events_x_unittest.cc |
| @@ -59,6 +59,18 @@ void InitKeyEvent(Display* display, |
| key_event->state = state; |
| } |
| +bool HasFunctionKeyFlagSet(Display* display, int x_keysym) { |
| + XEvent event; |
| + int x_keycode = XKeysymToKeycode(display, x_keysym); |
| + // Exclude keysyms for which the server has no corresponding keycode. |
| + if (x_keycode) { |
| + InitKeyEvent(display, &event, true, x_keycode, 0); |
| + ui::KeyEvent ui_key_event(&event, false); |
| + return static_cast<bool>(ui_key_event.flags() & ui::EF_FUNCTION_KEY); |
|
sadrul
2014/05/30 21:23:21
Can you just do 'return (flags & ui::EF_FUNCTION_K
bruthig
2014/06/02 14:22:01
Done.
|
| + } |
| + return false; |
|
sadrul
2014/05/30 21:23:21
Call the function HasFunctionKeyFlagSetIfSupported
bruthig
2014/06/02 14:22:01
Done.
|
| +} |
| + |
| } // namespace |
| TEST(EventsXTest, ButtonEvents) { |
| @@ -370,4 +382,49 @@ TEST(EventsXTest, NumpadKeyEvents) { |
| } |
| } |
| +TEST(EventsXTest, FunctionKeyEvents) { |
| + Display* display = gfx::GetXDisplay(); |
| + |
| + // Min function key code minus 1. |
| + EXPECT_FALSE(HasFunctionKeyFlagSet(display, XK_F1 - 1)); |
| + // All function keys. |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F1)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F2)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F3)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F4)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F5)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F6)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F7)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F8)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F9)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F10)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F11)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F12)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F13)); |
|
bruthig
2014/05/30 19:10:03
The EXPECT_TRUE for XK_F13 to XK_F35 now fails bec
oshima
2014/05/30 21:13:06
Humm, maybe we can just skip or return true for su
sadrul
2014/05/30 21:23:21
I agree. I left a suggestion above for this.
bruthig
2014/06/02 14:22:01
Done.
|
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F14)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F15)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F16)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F17)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F18)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F19)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F20)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F21)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F22)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F23)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F24)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F25)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F26)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F27)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F28)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F29)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F30)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F31)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F32)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F33)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F34)); |
| + EXPECT_TRUE(HasFunctionKeyFlagSet(display, XK_F35)); |
| + // Max function key code plus 1. |
| + EXPECT_FALSE(HasFunctionKeyFlagSet(display, XK_F35 + 1)); |
| +} |
| + |
| } // namespace ui |