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

Unified Diff: content/public/test/browser_test_utils.cc

Issue 23542008: Add a CodeToNativeKeycode helper that converts UIEvent code to native code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing CR feedback. Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/public/test/browser_test_utils.cc
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc
index 13846dfa88c5e7b9a0f03d0fa0bb23057a2d97d3..685c2042c8e6f6362606421a754798e7e98632a8 100644
--- a/content/public/test/browser_test_utils.cc
+++ b/content/public/test/browser_test_utils.cc
@@ -31,6 +31,19 @@
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
#include "testing/gtest/include/gtest/gtest.h"
+
+#if defined(OS_WIN)
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, win, code}
+#elif defined(OS_LINUX)
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, xkb, code}
+#elif defined(OS_MACOSX)
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, mac, code}
+#else
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, 0, code}
+#endif
+#include "ui/base/keycodes/usb_keycode_map.h"
+#undef USB_KEYMAP
+
#include "ui/base/resource/resource_bundle.h"
static const int kDefaultWsPort = 8880;
@@ -120,14 +133,15 @@ bool ExecuteScriptHelper(RenderViewHost* render_view_host,
}
void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type,
- ui::KeyboardCode key,
+ ui::KeyboardCode key_code,
+ int native_key_code,
bool control,
bool shift,
bool alt,
bool command,
NativeWebKeyboardEvent* event) {
- event->nativeKeyCode = 0;
- event->windowsKeyCode = key;
+ event->native_key_code = native_key_code;
+ event->windowsKeyCode = key_code;
event->setKeyIdentifierFromWindowsKeyCode();
event->type = type;
event->modifiers = 0;
@@ -137,8 +151,8 @@ void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type,
if (type == WebKit::WebInputEvent::Char ||
type == WebKit::WebInputEvent::RawKeyDown) {
- event->text[0] = key;
- event->unmodifiedText[0] = key;
+ event->text[0] = key_code;
+ event->unmodifiedText[0] = key_code;
}
if (control)
@@ -265,26 +279,57 @@ void SimulateMouseEvent(WebContents* web_contents,
}
void SimulateKeyPress(WebContents* web_contents,
- ui::KeyboardCode key,
+ ui::KeyboardCode key_code,
bool control,
bool shift,
bool alt,
bool command) {
+ SimulateKeyPressWithCode(
+ web_contents, key_code, NULL, control, shift, alt, command);
+}
+
+void SimulateKeyPressWithCode(WebContents* web_contents,
+ ui::KeyboardCode key_code,
+ const char* code,
+ bool control,
+ bool shift,
+ bool alt,
+ bool command) {
+ int native_key_code = CodeToNativeKeycode(code);
+
NativeWebKeyboardEvent event_down;
BuildSimpleWebKeyEvent(
- WebKit::WebInputEvent::RawKeyDown, key, control, shift, alt, command,
+ WebKit::WebInputEvent::RawKeyDown,
+ key_code,
+ native_key_code,
+ control,
+ shift,
+ alt,
+ command,
&event_down);
web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_down);
NativeWebKeyboardEvent char_event;
BuildSimpleWebKeyEvent(
- WebKit::WebInputEvent::Char, key, control, shift, alt, command,
+ WebKit::WebInputEvent::Char,
+ key_code,
+ native_key_code,
+ control,
+ shift,
+ alt,
+ command,
&char_event);
web_contents->GetRenderViewHost()->ForwardKeyboardEvent(char_event);
NativeWebKeyboardEvent event_up;
BuildSimpleWebKeyEvent(
- WebKit::WebInputEvent::KeyUp, key, control, shift, alt, command,
+ WebKit::WebInputEvent::KeyUp,
+ key_code,
+ native_key_code,
+ control,
+ shift,
+ alt,
+ command,
&event_up);
web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_up);
}

Powered by Google App Engine
This is Rietveld 408576698