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

Unified Diff: ui/base/ime/input_method_ibus_unittest.cc

Issue 45733008: sk6_charactercomposer: Merged DispatchKeyEvent and its fabricated version. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 2 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
« no previous file with comments | « ui/base/ime/input_method_ibus.cc ('k') | ui/base/ime/input_method_linux_x11.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/ime/input_method_ibus_unittest.cc
diff --git a/ui/base/ime/input_method_ibus_unittest.cc b/ui/base/ime/input_method_ibus_unittest.cc
index 5de25579ba1a4cbab0e9e899215c91de51b91c7c..471dd616996bb19d6ead58ff515d3ac2e807a46f 100644
--- a/ui/base/ime/input_method_ibus_unittest.cc
+++ b/ui/base/ime/input_method_ibus_unittest.cc
@@ -17,23 +17,19 @@
#include "chromeos/dbus/ibus/ibus_text.h"
#include "chromeos/dbus/ibus/mock_ibus_client.h"
#include "chromeos/ime/ibus_bridge.h"
+#include "chromeos/ime/ibus_keymap.h"
#include "chromeos/ime/mock_ime_candidate_window_handler.h"
#include "chromeos/ime/mock_ime_engine_handler.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/ime/input_method_delegate.h"
#include "ui/base/ime/input_method_ibus.h"
#include "ui/base/ime/text_input_client.h"
+#include "ui/events/event.h"
+#include "ui/events/x/events_x_utils.h"
#include "ui/gfx/rect.h"
namespace ui {
namespace {
-const uint32 kTestIBusKeyVal1 = 97;
-const uint32 kTestIBusKeyVal2 = 30;
-const uint32 kTestIBusKeyCode1 = 98;
-const uint32 kTestIBusKeyCode2 = 48;
-const uint32 kTestIBusState1 = 99;
-const uint32 kTestIBusState2 = 46;
-
typedef chromeos::IBusEngineHandlerInterface::KeyEventDoneCallback
KeyEventCallback;
@@ -70,45 +66,19 @@ class TestableInputMethodIBus : public InputMethodIBus {
}
struct ProcessKeyEventPostIMEArgs {
- ProcessKeyEventPostIMEArgs() : handled(false) {
- std::memset(&event, 0, sizeof(XEvent));
- }
- XEvent event;
+ ProcessKeyEventPostIMEArgs() : event(NULL), handled(false) {}
+ const ui::KeyEvent* event;
bool handled;
};
- struct IBusKeyEventFromNativeKeyEventResult {
- IBusKeyEventFromNativeKeyEventResult() : keyval(0), keycode(0), state(0) {}
- uint32 keyval;
- uint32 keycode;
- uint32 state;
- };
-
// InputMethodIBus override.
- virtual void ProcessKeyEventPostIME(const base::NativeEvent& native_key_event,
- uint32 ibus_state,
+ virtual void ProcessKeyEventPostIME(const ui::KeyEvent& key_event,
bool handled) OVERRIDE {
- process_key_event_post_ime_args_.event = *native_key_event;
+ process_key_event_post_ime_args_.event = &key_event;
process_key_event_post_ime_args_.handled = handled;
++process_key_event_post_ime_call_count_;
}
- // We can't call X11 related function without display in unit test, so
- // override with mock function.
- virtual void IBusKeyEventFromNativeKeyEvent(
- const base::NativeEvent& native_event,
- uint32* ibus_keyval,
- uint32* ibus_keycode,
- uint32* ibus_state) OVERRIDE {
- EXPECT_TRUE(native_event);
- EXPECT_TRUE(ibus_keyval);
- EXPECT_TRUE(ibus_keycode);
- EXPECT_TRUE(ibus_state);
- *ibus_keyval = ibus_key_event_from_native_key_event_result_.keyval;
- *ibus_keycode = ibus_key_event_from_native_key_event_result_.keycode;
- *ibus_state = ibus_key_event_from_native_key_event_result_.state;
- }
-
void ResetCallCount() {
process_key_event_post_ime_call_count_ = 0;
}
@@ -121,11 +91,6 @@ class TestableInputMethodIBus : public InputMethodIBus {
return process_key_event_post_ime_call_count_;
}
- IBusKeyEventFromNativeKeyEventResult*
- mutable_ibus_key_event_from_native_key_event_result() {
- return &ibus_key_event_from_native_key_event_result_;
- }
-
// Change access rights for testing.
using InputMethodIBus::ExtractCompositionText;
using InputMethodIBus::ResetContext;
@@ -133,9 +98,6 @@ class TestableInputMethodIBus : public InputMethodIBus {
private:
ProcessKeyEventPostIMEArgs process_key_event_post_ime_args_;
int process_key_event_post_ime_call_count_;
-
- IBusKeyEventFromNativeKeyEventResult
- ibus_key_event_from_native_key_event_result_;
};
class CreateInputContextSuccessHandler {
@@ -321,9 +283,8 @@ class InputMethodIBusTest : public internal::InputMethodDelegate,
}
// ui::internal::InputMethodDelegate overrides:
- virtual bool DispatchKeyEventPostIME(
- const base::NativeEvent& native_key_event) OVERRIDE {
- dispatched_native_event_ = native_key_event;
+ virtual bool DispatchKeyEventPostIME(const ui::KeyEvent& key_event) OVERRIDE {
+ dispatched_native_event_ = key_event.native_event();
return false;
}
virtual bool DispatchFabricatedKeyEventPostIME(ui::EventType type,
@@ -990,31 +951,27 @@ class InputMethodIBusKeyEventTest : public InputMethodIBusTest {
};
TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseTest) {
- XEvent event = {};
- event.xkey.type = KeyPress;
-
- // Set up IBusKeyEventFromNativeKeyEvent result.
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval
- = kTestIBusKeyVal1;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode
- = kTestIBusKeyCode1;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->state
- = kTestIBusState1;
+ XEvent xevent;
+ ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
+ ui::VKEY_A,
+ ui::EF_SHIFT_DOWN,
+ &xevent);
+ const ui::KeyEvent event(&xevent, true);
// Do key event.
input_type_ = TEXT_INPUT_TYPE_TEXT;
ime_->OnTextInputTypeChanged(this);
- ime_->DispatchKeyEvent(&event);
+ ime_->DispatchKeyEvent(event);
// Check before state.
- EXPECT_EQ(1,
- mock_ime_engine_handler_->process_key_event_call_count());
- EXPECT_EQ(kTestIBusKeyVal1,
- mock_ime_engine_handler_->last_processed_keysym());
- EXPECT_EQ(kTestIBusKeyCode1,
- mock_ime_engine_handler_->last_processed_keycode());
- EXPECT_EQ(kTestIBusState1,
- mock_ime_engine_handler_->last_processed_state());
+ EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
+ EXPECT_EQ("A", mock_ime_engine_handler_->last_processed_keysym());
+ EXPECT_EQ("KeyA", mock_ime_engine_handler_->last_processed_keycode());
+ EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_key_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_alt_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_ctrl_down());
+ EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_shift_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_caps_lock_down());
EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
// Do callback.
@@ -1022,8 +979,10 @@ TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseTest) {
// Check the results
EXPECT_EQ(1, ime_->process_key_event_post_ime_call_count());
- EXPECT_TRUE(IsEqualXKeyEvent(event,
- ime_->process_key_event_post_ime_args().event));
+ const ui::KeyEvent* stored_event =
+ ime_->process_key_event_post_ime_args().event;
+ EXPECT_TRUE(stored_event->HasNativeEvent());
+ EXPECT_TRUE(IsEqualXKeyEvent(xevent, *(stored_event->native_event())));
EXPECT_TRUE(ime_->process_key_event_post_ime_args().handled);
}
@@ -1032,49 +991,45 @@ TEST_F(InputMethodIBusKeyEventTest, MultiKeyEventDelayResponseTest) {
input_type_ = TEXT_INPUT_TYPE_TEXT;
ime_->OnTextInputTypeChanged(this);
- XEvent event = {};
- event.xkey.type = KeyPress;
-
- // Set up IBusKeyEventFromNativeKeyEvent result for first key event.
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval
- = kTestIBusKeyVal1;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode
- = kTestIBusKeyCode1;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->state
- = kTestIBusState1;
+ XEvent xevent;
+ ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
+ ui::VKEY_B,
+ ui::EF_ALT_DOWN,
+ &xevent);
+ const ui::KeyEvent event(&xevent, true);
// Do key event.
- ime_->DispatchKeyEvent(&event);
- EXPECT_EQ(kTestIBusKeyVal1,
- mock_ime_engine_handler_->last_processed_keysym());
- EXPECT_EQ(kTestIBusKeyCode1,
- mock_ime_engine_handler_->last_processed_keycode());
- EXPECT_EQ(kTestIBusState1,
- mock_ime_engine_handler_->last_processed_state());
+ ime_->DispatchKeyEvent(event);
+ EXPECT_EQ("b", mock_ime_engine_handler_->last_processed_keysym());
+ EXPECT_EQ("KeyB", mock_ime_engine_handler_->last_processed_keycode());
+ EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_key_down());
+ EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_alt_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_ctrl_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_shift_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_caps_lock_down());
KeyEventCallback first_callback =
mock_ime_engine_handler_->last_passed_callback();
- // Set up IBusKeyEventFromNativeKeyEvent result for second key event.
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval
- = kTestIBusKeyVal2;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode
- = kTestIBusKeyCode2;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->state
- = kTestIBusState2;
-
// Do key event again.
- ime_->DispatchKeyEvent(&event);
- EXPECT_EQ(kTestIBusKeyVal2,
- mock_ime_engine_handler_->last_processed_keysym());
- EXPECT_EQ(kTestIBusKeyCode2,
- mock_ime_engine_handler_->last_processed_keycode());
- EXPECT_EQ(kTestIBusState2,
- mock_ime_engine_handler_->last_processed_state());
+ XEvent xevent2;
+ ui::InitXKeyEventForTesting(ui::ET_KEY_RELEASED,
+ ui::VKEY_B,
+ ui::EF_ALT_DOWN,
+ &xevent2);
+ const ui::KeyEvent event2(&xevent2, true);
+
+ ime_->DispatchKeyEvent(event2);
+ EXPECT_EQ("b", mock_ime_engine_handler_->last_processed_keysym());
+ EXPECT_EQ("KeyB", mock_ime_engine_handler_->last_processed_keycode());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_key_down());
+ EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_alt_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_ctrl_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_shift_down());
+ EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_caps_lock_down());
// Check before state.
- EXPECT_EQ(2,
- mock_ime_engine_handler_->process_key_event_call_count());
+ EXPECT_EQ(2, mock_ime_engine_handler_->process_key_event_call_count());
EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
// Do callback for first key event.
@@ -1082,8 +1037,10 @@ TEST_F(InputMethodIBusKeyEventTest, MultiKeyEventDelayResponseTest) {
// Check the results for first key event.
EXPECT_EQ(1, ime_->process_key_event_post_ime_call_count());
- EXPECT_TRUE(IsEqualXKeyEvent(event,
- ime_->process_key_event_post_ime_args().event));
+ const ui::KeyEvent* stored_event =
+ ime_->process_key_event_post_ime_args().event;
+ EXPECT_TRUE(stored_event->HasNativeEvent());
+ EXPECT_TRUE(IsEqualXKeyEvent(xevent, *(stored_event->native_event())));
EXPECT_TRUE(ime_->process_key_event_post_ime_args().handled);
// Do callback for second key event.
@@ -1091,31 +1048,27 @@ TEST_F(InputMethodIBusKeyEventTest, MultiKeyEventDelayResponseTest) {
// Check the results for second key event.
EXPECT_EQ(2, ime_->process_key_event_post_ime_call_count());
- EXPECT_TRUE(IsEqualXKeyEvent(event,
- ime_->process_key_event_post_ime_args().event));
+ stored_event = ime_->process_key_event_post_ime_args().event;
+ EXPECT_TRUE(stored_event->HasNativeEvent());
+ EXPECT_TRUE(IsEqualXKeyEvent(xevent2, *(stored_event->native_event())));
EXPECT_FALSE(ime_->process_key_event_post_ime_args().handled);
}
TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseResetTest) {
- XEvent event = {};
- event.xkey.type = KeyPress;
-
- // Set up IBusKeyEventFromNativeKeyEvent result.
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval
- = kTestIBusKeyVal1;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode
- = kTestIBusKeyCode1;
- ime_->mutable_ibus_key_event_from_native_key_event_result()->state
- = kTestIBusState1;
+ XEvent xevent;
+ ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
+ ui::VKEY_A,
+ ui::EF_NONE,
+ &xevent);
+ const ui::KeyEvent event(&xevent, true);
// Do key event.
input_type_ = TEXT_INPUT_TYPE_TEXT;
ime_->OnTextInputTypeChanged(this);
- ime_->DispatchKeyEvent(&event);
+ ime_->DispatchKeyEvent(event);
// Check before state.
- EXPECT_EQ(1,
- mock_ime_engine_handler_->process_key_event_call_count());
+ EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
ime_->ResetContext();
@@ -1125,7 +1078,6 @@ TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseResetTest) {
EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
}
-
// TODO(nona): Introduce ProcessKeyEventPostIME tests(crbug.com/156593).
} // namespace ui
« no previous file with comments | « ui/base/ime/input_method_ibus.cc ('k') | ui/base/ime/input_method_linux_x11.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698