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 3a1c08c26b06bda611824bf08c718dffd63def9e..5047c59b19c4dd25cf638bc9b65e9623973b3466 100644 |
--- a/ui/events/x/events_x_unittest.cc |
+++ b/ui/events/x/events_x_unittest.cc |
@@ -279,7 +279,6 @@ TEST(EventsXTest, NumpadKeyEvents) { |
struct { |
bool is_numpad_key; |
int x_keysym; |
- ui::KeyboardCode ui_keycode; |
} keys[] = { |
// XK_KP_Space and XK_KP_Equal are the extrema in the conventional |
// keysymdef.h numbering. |
@@ -429,4 +428,36 @@ TEST(EventsXTest, FunctionKeyEvents) { |
EXPECT_FALSE(HasFunctionKeyFlagSetIfSupported(display, XK_F35 + 1)); |
} |
+#if !defined(OS_CHROMEOS) |
+TEST(EventsXTest, ImeFabricatedKeyEvents) { |
+ Display* display = gfx::GetXDisplay(); |
+ |
+ unsigned int state_to_be_fabricated[] = { |
+ 0, ShiftMask, LockMask, ShiftMask | LockMask, |
+ }; |
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(state_to_be_fabricated); ++i) { |
+ unsigned int state = state_to_be_fabricated[i]; |
+ for (int is_char = 0; is_char < 2; ++is_char) { |
+ XEvent x_event; |
+ InitKeyEvent(display, &x_event, true, 0, state); |
+ ui::KeyEvent key_event(&x_event, is_char); |
+ EXPECT_TRUE(key_event.flags() & ui::EF_IME_FABRICATED_KEY); |
+ } |
+ } |
+ |
+ unsigned int state_to_be_not_fabricated[] = { |
+ ControlMask, Mod1Mask, Mod2Mask, ShiftMask | ControlMask, |
+ }; |
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(state_to_be_not_fabricated); ++i) { |
+ unsigned int state = state_to_be_not_fabricated[i]; |
+ for (int is_char = 0; is_char < 2; ++is_char) { |
+ XEvent x_event; |
+ InitKeyEvent(display, &x_event, true, 0, state); |
+ ui::KeyEvent key_event(&x_event, is_char); |
+ EXPECT_FALSE(key_event.flags() & ui::EF_IME_FABRICATED_KEY); |
+ } |
+ } |
+} |
+#endif |
+ |
} // namespace ui |