diff options
author | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-08 19:46:03 +0000 |
---|---|---|
committer | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-08 19:46:03 +0000 |
commit | 0c335fa2455e76c8fc5850446783a69d6552a0be (patch) | |
tree | 5aacf1fd00b1f240fd44d5e08467ff5121448250 /content/test | |
parent | 7556ea2db8b28d15a37d5680febadc5cf1a5cc5b (diff) | |
download | chromium_src-0c335fa2455e76c8fc5850446783a69d6552a0be.zip chromium_src-0c335fa2455e76c8fc5850446783a69d6552a0be.tar.gz chromium_src-0c335fa2455e76c8fc5850446783a69d6552a0be.tar.bz2 |
Move CreateFakeXEvent to x11_util.{h,cc}.
I'd like to use this function from shell_accelerator_controller_unittest.
BUG=none
TEST=Ran browser_tests.
Review URL: http://codereview.chromium.org/8834014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113642 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/test')
-rw-r--r-- | content/test/render_view_test.cc | 94 |
1 files changed, 18 insertions, 76 deletions
diff --git a/content/test/render_view_test.cc b/content/test/render_view_test.cc index 154dd4c..1cb8fda 100644 --- a/content/test/render_view_test.cc +++ b/content/test/render_view_test.cc @@ -30,10 +30,8 @@ #if defined(USE_AURA) && defined(USE_X11) #include <X11/Xlib.h> -#include <X11/keysym.h> #include "ui/base/events.h" #include "ui/base/keycodes/keyboard_code_conversion.h" -#include "ui/base/keycodes/keyboard_code_conversion_x.h" #include "ui/base/x/x11_util.h" #endif @@ -50,65 +48,6 @@ const int32 kOpenerId = 7; const int32 kRouteId = 5; #if defined(USE_AURA) && defined(USE_X11) -// Converts ui::EventType to XKeyEvent state. -unsigned int XKeyEventState(int flags) { - return - ((flags & ui::EF_SHIFT_DOWN) ? ShiftMask : 0) | - ((flags & ui::EF_CONTROL_DOWN) ? ControlMask : 0) | - ((flags & ui::EF_CAPS_LOCK_DOWN) ? LockMask : 0); -} - -// Converts ui::EventType to XKeyEvent type. -int XKeyEventType(ui::EventType type) { - switch (type) { - case ui::ET_KEY_PRESSED: - return KeyPress; - case ui::ET_KEY_RELEASED: - return KeyRelease; - default: - return 0; - } -} - -// Converts ui::KeyboardCode to XKeyEvent keycode. -unsigned int XKeyEventKeyCode(ui::KeyboardCode key_code, - int flags, - Display* display) { - const int keysym = ui::XKeysymForWindowsKeyCode(key_code, - flags & ui::EF_SHIFT_DOWN); - // The test assumes the keycode for XK_less is equal to the one of XK_comma, - // but XKeysymToKeycode returns 94 for XK_less while it returns 59 for - // XK_comma. Here we convert the value for XK_less to the value for XK_comma. - return (keysym == XK_less) ? 59 : XKeysymToKeycode(display, keysym); -} - -// Creates a fake XEvent for testing. -XEvent* CreateFakeXEvent(ui::EventType type, - ui::KeyboardCode key_code, - int flags) { - Display* display = ui::GetXDisplay(); - XKeyEvent key_event; - key_event.type = XKeyEventType(type); - key_event.serial = 0; - key_event.send_event = 0; - key_event.display = display; - key_event.time = 0; - key_event.window = 0; - key_event.root = 0; - key_event.subwindow = 0; - key_event.x = 0; - key_event.y = 0; - key_event.x_root = 0; - key_event.y_root = 0; - key_event.state = XKeyEventState(flags); - key_event.keycode = XKeyEventKeyCode(key_code, flags, display); - key_event.same_screen = 1; - XEvent* event = new XEvent; - event->type = key_event.type; - event->xkey = key_event; - return event; -} - // Converts MockKeyboard::Modifiers to ui::EventFlags. int ConvertMockKeyboardModifier(MockKeyboard::Modifiers modifiers) { static struct ModifierMap { @@ -306,27 +245,30 @@ int RenderViewTest::SendKeyEvent(MockKeyboard::Layout layout, CHECK(output); const int flags = ConvertMockKeyboardModifier(modifiers); - scoped_ptr<XEvent> xevent1(CreateFakeXEvent( - ui::ET_KEY_PRESSED, - static_cast<ui::KeyboardCode>(key_code), - flags)); - aura::KeyEvent event1(xevent1.get(), false); + XEvent xevent1; + InitXKeyEventForTesting(ui::ET_KEY_PRESSED, + static_cast<ui::KeyboardCode>(key_code), + flags, + &xevent1); + aura::KeyEvent event1(&xevent1, false); NativeWebKeyboardEvent keydown_event(&event1); SendNativeKeyEvent(keydown_event); - scoped_ptr<XEvent> xevent2(CreateFakeXEvent( - ui::ET_KEY_PRESSED, - static_cast<ui::KeyboardCode>(key_code), - flags)); - aura::KeyEvent event2(xevent2.get(), true); + XEvent xevent2; + InitXKeyEventForTesting(ui::ET_KEY_PRESSED, + static_cast<ui::KeyboardCode>(key_code), + flags, + &xevent2); + aura::KeyEvent event2(&xevent2, true); NativeWebKeyboardEvent char_event(&event2); SendNativeKeyEvent(char_event); - scoped_ptr<XEvent> xevent3(CreateFakeXEvent( - ui::ET_KEY_RELEASED, - static_cast<ui::KeyboardCode>(key_code), - flags)); - aura::KeyEvent event3(xevent3.get(), false); + XEvent xevent3; + InitXKeyEventForTesting(ui::ET_KEY_RELEASED, + static_cast<ui::KeyboardCode>(key_code), + flags, + &xevent3); + aura::KeyEvent event3(&xevent3, false); NativeWebKeyboardEvent keyup_event(&event3); SendNativeKeyEvent(keyup_event); |