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

Side by Side Diff: content/browser/renderer_host/input/web_input_event_builders_android_unittest.cc

Issue 1811553002: [Android] Synthetic composition event should have DomKey 'Unidentified' (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698