| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "content/browser/renderer_host/input/web_input_event_builders_android.h
" | 5 #include "content/browser/renderer_host/input/web_input_event_builders_android.h
" |
| 6 | 6 |
| 7 #include <android/input.h> | 7 #include <android/input.h> |
| 8 #include <android/keycodes.h> | 8 #include <android/keycodes.h> |
| 9 | 9 |
| 10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "third_party/WebKit/public/web/WebInputEvent.h" | 12 #include "third_party/WebKit/public/web/WebInputEvent.h" |
| 13 #include "ui/events/android/key_event_utils.h" | 13 #include "ui/events/android/key_event_utils.h" |
| 14 #include "ui/events/gesture_detection/motion_event.h" | 14 #include "ui/events/gesture_detection/motion_event.h" |
| 15 #include "ui/events/keycodes/dom/dom_key.h" | 15 #include "ui/events/keycodes/dom/dom_key.h" |
| 16 #include "ui/events/keycodes/dom/keycode_converter.h" | 16 #include "ui/events/keycodes/dom/keycode_converter.h" |
| 17 | 17 |
| 18 using base::android::AttachCurrentThread; | 18 using base::android::AttachCurrentThread; |
| 19 using base::android::ScopedJavaLocalRef; | 19 using base::android::ScopedJavaLocalRef; |
| 20 using blink::WebKeyboardEvent; | 20 using blink::WebKeyboardEvent; |
| 21 | 21 |
| 22 namespace { | 22 namespace { |
| 23 | 23 |
| 24 const int kCombiningAccent = 0x80000000; | 24 const int kCombiningAccent = 0x80000000; |
| 25 const int kCombiningAccentMask = 0x7fffffff; | 25 const int kCombiningAccentMask = 0x7fffffff; |
| 26 const int kCompositionKeyCode = 229; |
| 26 | 27 |
| 27 WebKeyboardEvent CreateFakeWebKeyboardEvent(JNIEnv* env, | 28 WebKeyboardEvent CreateFakeWebKeyboardEvent(JNIEnv* env, |
| 28 int key_code, | 29 int key_code, |
| 29 int web_modifier, | 30 int web_modifier, |
| 30 int unicode_character) { | 31 int unicode_character) { |
| 31 ScopedJavaLocalRef<jobject> keydown_event = | 32 ScopedJavaLocalRef<jobject> keydown_event = |
| 32 ui::events::android::CreateKeyEvent(env, ui::MotionEvent::ACTION_DOWN, | 33 ui::events::android::CreateKeyEvent(env, ui::MotionEvent::ACTION_DOWN, |
| 33 key_code); | 34 key_code); |
| 34 | 35 |
| 35 WebKeyboardEvent web_event = content::WebKeyboardEventBuilder::Build( | 36 WebKeyboardEvent web_event = content::WebKeyboardEventBuilder::Build( |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 << ui::KeycodeConverter::DomKeyToKeyString(web_event.domKey); | 133 << ui::KeycodeConverter::DomKeyToKeyString(web_event.domKey); |
| 133 | 134 |
| 134 // Tests DomKey with Ctrl and Alt. | 135 // Tests DomKey with Ctrl and Alt. |
| 135 web_event = CreateFakeWebKeyboardEvent( | 136 web_event = CreateFakeWebKeyboardEvent( |
| 136 env, entry.key_code, | 137 env, entry.key_code, |
| 137 WebKeyboardEvent::ControlKey | WebKeyboardEvent::AltKey, 0); | 138 WebKeyboardEvent::ControlKey | WebKeyboardEvent::AltKey, 0); |
| 138 EXPECT_EQ(ui::DomKey::FromCharacter(entry.character), web_event.domKey) | 139 EXPECT_EQ(ui::DomKey::FromCharacter(entry.character), web_event.domKey) |
| 139 << ui::KeycodeConverter::DomKeyToKeyString(web_event.domKey); | 140 << ui::KeycodeConverter::DomKeyToKeyString(web_event.domKey); |
| 140 } | 141 } |
| 141 } | 142 } |
| 143 |
| 144 TEST(WebInputEventBuilderAndroidTest, DomKeySyntheticKeyEvent) { |
| 145 JNIEnv* env = AttachCurrentThread(); |
| 146 |
| 147 // Simulating ImeAdapter.java::sendCompositionToNative(), send |
| 148 // COMPOSITION_KEY_CODE for synthetic key events. |
| 149 WebKeyboardEvent web_event = |
| 150 CreateFakeWebKeyboardEvent(env, kCompositionKeyCode, 0, 0); |
| 151 EXPECT_EQ(kCompositionKeyCode, web_event.nativeKeyCode); |
| 152 EXPECT_EQ(ui::DomKey::UNIDENTIFIED, web_event.domKey); |
| 153 } |
| OLD | NEW |