| Index: content/renderer/render_view_browsertest.cc
|
| diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
|
| index f01c8928078b7b386cd6f85e4711f7817d488e00..458b9f22fe616b748265775316d5d42fc14c4a41 100644
|
| --- a/content/renderer/render_view_browsertest.cc
|
| +++ b/content/renderer/render_view_browsertest.cc
|
| @@ -61,18 +61,6 @@
|
| #include "ui/gfx/codec/jpeg_codec.h"
|
| #include "ui/gfx/range/range.h"
|
|
|
| -#if defined(USE_AURA) && defined(USE_X11)
|
| -#include <X11/Xlib.h>
|
| -#include "ui/events/event_constants.h"
|
| -#include "ui/events/keycodes/keyboard_code_conversion.h"
|
| -#include "ui/events/test/events_test_utils.h"
|
| -#include "ui/events/test/events_test_utils_x11.h"
|
| -#endif
|
| -
|
| -#if defined(USE_OZONE)
|
| -#include "ui/events/keycodes/keyboard_code_conversion.h"
|
| -#endif
|
| -
|
| using blink::WebFrame;
|
| using blink::WebInputEvent;
|
| using blink::WebLocalFrame;
|
| @@ -88,30 +76,6 @@ namespace {
|
|
|
| static const int kProxyRoutingId = 13;
|
|
|
| -#if (defined(USE_AURA) && defined(USE_X11)) || defined(USE_OZONE)
|
| -// Converts MockKeyboard::Modifiers to ui::EventFlags.
|
| -int ConvertMockKeyboardModifier(MockKeyboard::Modifiers modifiers) {
|
| - static struct ModifierMap {
|
| - MockKeyboard::Modifiers src;
|
| - int dst;
|
| - } kModifierMap[] = {
|
| - { MockKeyboard::LEFT_SHIFT, ui::EF_SHIFT_DOWN },
|
| - { MockKeyboard::RIGHT_SHIFT, ui::EF_SHIFT_DOWN },
|
| - { MockKeyboard::LEFT_CONTROL, ui::EF_CONTROL_DOWN },
|
| - { MockKeyboard::RIGHT_CONTROL, ui::EF_CONTROL_DOWN },
|
| - { MockKeyboard::LEFT_ALT, ui::EF_ALT_DOWN },
|
| - { MockKeyboard::RIGHT_ALT, ui::EF_ALT_DOWN },
|
| - };
|
| - int flags = 0;
|
| - for (size_t i = 0; i < arraysize(kModifierMap); ++i) {
|
| - if (kModifierMap[i].src & modifiers) {
|
| - flags |= kModifierMap[i].dst;
|
| - }
|
| - }
|
| - return flags;
|
| -}
|
| -#endif
|
| -
|
| class WebUITestWebUIControllerFactory : public WebUIControllerFactory {
|
| public:
|
| WebUIController* CreateWebUIControllerForURL(WebUI* web_ui,
|
| @@ -163,115 +127,6 @@ class RenderViewImplTest : public RenderViewTest {
|
| return static_cast<RenderFrameImpl*>(view()->GetMainRenderFrame());
|
| }
|
|
|
| - // Sends IPC messages that emulates a key-press event.
|
| - int SendKeyEvent(MockKeyboard::Layout layout,
|
| - int key_code,
|
| - MockKeyboard::Modifiers modifiers,
|
| - base::string16* output) {
|
| -#if defined(OS_WIN)
|
| - // Retrieve the Unicode character for the given tuple (keyboard-layout,
|
| - // key-code, and modifiers).
|
| - // Exit when a keyboard-layout driver cannot assign a Unicode character to
|
| - // the tuple to prevent sending an invalid key code to the RenderView
|
| - // object.
|
| - CHECK(mock_keyboard_.get());
|
| - CHECK(output);
|
| - int length = mock_keyboard_->GetCharacters(layout, key_code, modifiers,
|
| - output);
|
| - if (length != 1)
|
| - return -1;
|
| -
|
| - // Create IPC messages from Windows messages and send them to our
|
| - // back-end.
|
| - // A keyboard event of Windows consists of three Windows messages:
|
| - // WM_KEYDOWN, WM_CHAR, and WM_KEYUP.
|
| - // WM_KEYDOWN and WM_KEYUP sends virtual-key codes. On the other hand,
|
| - // WM_CHAR sends a composed Unicode character.
|
| - MSG msg1 = { NULL, WM_KEYDOWN, key_code, 0 };
|
| - ui::KeyEvent evt1(msg1);
|
| - NativeWebKeyboardEvent keydown_event(evt1);
|
| - SendNativeKeyEvent(keydown_event);
|
| -
|
| - MSG msg2 = { NULL, WM_CHAR, (*output)[0], 0 };
|
| - ui::KeyEvent evt2(msg2);
|
| - NativeWebKeyboardEvent char_event(evt2);
|
| - SendNativeKeyEvent(char_event);
|
| -
|
| - MSG msg3 = { NULL, WM_KEYUP, key_code, 0 };
|
| - ui::KeyEvent evt3(msg3);
|
| - NativeWebKeyboardEvent keyup_event(evt3);
|
| - SendNativeKeyEvent(keyup_event);
|
| -
|
| - return length;
|
| -#elif defined(USE_AURA) && defined(USE_X11)
|
| - // We ignore |layout|, which means we are only testing the layout of the
|
| - // current locale. TODO(mazda): fix this to respect |layout|.
|
| - CHECK(output);
|
| - const int flags = ConvertMockKeyboardModifier(modifiers);
|
| -
|
| - ui::ScopedXI2Event xevent;
|
| - xevent.InitKeyEvent(ui::ET_KEY_PRESSED,
|
| - static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - ui::KeyEvent event1(xevent);
|
| - NativeWebKeyboardEvent keydown_event(event1);
|
| - SendNativeKeyEvent(keydown_event);
|
| -
|
| - // X11 doesn't actually have native character events, but give the test
|
| - // what it wants.
|
| - xevent.InitKeyEvent(ui::ET_KEY_PRESSED,
|
| - static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - ui::KeyEvent event2(xevent);
|
| - event2.set_character(GetCharacterFromKeyCode(event2.key_code(),
|
| - event2.flags()));
|
| - ui::KeyEventTestApi test_event2(&event2);
|
| - test_event2.set_is_char(true);
|
| - NativeWebKeyboardEvent char_event(event2);
|
| - SendNativeKeyEvent(char_event);
|
| -
|
| - xevent.InitKeyEvent(ui::ET_KEY_RELEASED,
|
| - static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - ui::KeyEvent event3(xevent);
|
| - NativeWebKeyboardEvent keyup_event(event3);
|
| - SendNativeKeyEvent(keyup_event);
|
| -
|
| - long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - output->assign(1, static_cast<base::char16>(c));
|
| - return 1;
|
| -#elif defined(USE_OZONE)
|
| - const int flags = ConvertMockKeyboardModifier(modifiers);
|
| -
|
| - ui::KeyEvent keydown_event(ui::ET_KEY_PRESSED,
|
| - static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - NativeWebKeyboardEvent keydown_web_event(keydown_event);
|
| - SendNativeKeyEvent(keydown_web_event);
|
| -
|
| - ui::KeyEvent char_event(keydown_event.GetCharacter(),
|
| - static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - NativeWebKeyboardEvent char_web_event(char_event);
|
| - SendNativeKeyEvent(char_web_event);
|
| -
|
| - ui::KeyEvent keyup_event(ui::ET_KEY_RELEASED,
|
| - static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - NativeWebKeyboardEvent keyup_web_event(keyup_event);
|
| - SendNativeKeyEvent(keyup_web_event);
|
| -
|
| - long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code),
|
| - flags);
|
| - output->assign(1, static_cast<base::char16>(c));
|
| - return 1;
|
| -#else
|
| - NOTIMPLEMENTED();
|
| - return L'\0';
|
| -#endif
|
| - }
|
| -
|
| void EnablePreferredSizeMode() {
|
| view()->OnEnablePreferredSizeChangedMode();
|
| }
|
| @@ -326,7 +181,7 @@ class RenderViewImplTest : public RenderViewTest {
|
| frame()->OnSetCompositionFromExistingText(start, end, underlines);
|
| }
|
|
|
| - private:
|
| + protected:
|
| scoped_ptr<MockKeyboard> mock_keyboard_;
|
| };
|
|
|
| @@ -1394,9 +1249,12 @@ TEST_F(RenderViewImplTest, MAYBE_OnHandleKeyboardEvent) {
|
| // We should test a keyboard event only when the given keyboard-layout
|
| // driver is installed in a PC and the driver can assign a Unicode
|
| // charcter for the given tuple (key-code and modifiers).
|
| + if (!mock_keyboard_->Update(layout, modifiers))
|
| + continue;
|
| +
|
| int key_code = kKeyCodes[k];
|
| base::string16 char_code;
|
| - if (SendKeyEvent(layout, key_code, modifiers, &char_code) < 0)
|
| + if (SendKeyEvent(*mock_keyboard_, key_code, &char_code) < 0)
|
| continue;
|
|
|
| // Create an expected result from the virtual-key code, the character
|
| @@ -1641,9 +1499,12 @@ TEST_F(RenderViewImplTest, MAYBE_InsertCharacters) {
|
| // We should test a keyboard event only when the given keyboard-layout
|
| // driver is installed in a PC and the driver can assign a Unicode
|
| // charcter for the given tuple (layout, key-code, and modifiers).
|
| + if (!mock_keyboard_->Update(layout, modifiers))
|
| + continue;
|
| +
|
| int key_code = kKeyCodes[k];
|
| base::string16 char_code;
|
| - if (SendKeyEvent(layout, key_code, modifiers, &char_code) < 0)
|
| + if (SendKeyEvent(*mock_keyboard_, key_code, &char_code) < 0)
|
| continue;
|
| }
|
| }
|
|
|