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

Side by Side 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, 1 month 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
« 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <X11/Xlib.h> 5 #include <X11/Xlib.h>
6 #undef Bool 6 #undef Bool
7 #undef FocusIn 7 #undef FocusIn
8 #undef FocusOut 8 #undef FocusOut
9 #undef None 9 #undef None
10 10
11 #include <cstring> 11 #include <cstring>
12 12
13 #include "base/i18n/char_iterator.h" 13 #include "base/i18n/char_iterator.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "chromeos/dbus/dbus_thread_manager.h" 16 #include "chromeos/dbus/dbus_thread_manager.h"
17 #include "chromeos/dbus/ibus/ibus_text.h" 17 #include "chromeos/dbus/ibus/ibus_text.h"
18 #include "chromeos/dbus/ibus/mock_ibus_client.h" 18 #include "chromeos/dbus/ibus/mock_ibus_client.h"
19 #include "chromeos/ime/ibus_bridge.h" 19 #include "chromeos/ime/ibus_bridge.h"
20 #include "chromeos/ime/ibus_keymap.h"
20 #include "chromeos/ime/mock_ime_candidate_window_handler.h" 21 #include "chromeos/ime/mock_ime_candidate_window_handler.h"
21 #include "chromeos/ime/mock_ime_engine_handler.h" 22 #include "chromeos/ime/mock_ime_engine_handler.h"
22 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
23 #include "ui/base/ime/input_method_delegate.h" 24 #include "ui/base/ime/input_method_delegate.h"
24 #include "ui/base/ime/input_method_ibus.h" 25 #include "ui/base/ime/input_method_ibus.h"
25 #include "ui/base/ime/text_input_client.h" 26 #include "ui/base/ime/text_input_client.h"
27 #include "ui/events/event.h"
28 #include "ui/events/x/events_x_utils.h"
26 #include "ui/gfx/rect.h" 29 #include "ui/gfx/rect.h"
27 30
28 namespace ui { 31 namespace ui {
29 namespace { 32 namespace {
30 const uint32 kTestIBusKeyVal1 = 97;
31 const uint32 kTestIBusKeyVal2 = 30;
32 const uint32 kTestIBusKeyCode1 = 98;
33 const uint32 kTestIBusKeyCode2 = 48;
34 const uint32 kTestIBusState1 = 99;
35 const uint32 kTestIBusState2 = 46;
36
37 typedef chromeos::IBusEngineHandlerInterface::KeyEventDoneCallback 33 typedef chromeos::IBusEngineHandlerInterface::KeyEventDoneCallback
38 KeyEventCallback; 34 KeyEventCallback;
39 35
40 uint32 GetOffsetInUTF16(const std::string& utf8_string, uint32 utf8_offset) { 36 uint32 GetOffsetInUTF16(const std::string& utf8_string, uint32 utf8_offset) {
41 string16 utf16_string = UTF8ToUTF16(utf8_string); 37 string16 utf16_string = UTF8ToUTF16(utf8_string);
42 DCHECK_LT(utf8_offset, utf16_string.size()); 38 DCHECK_LT(utf8_offset, utf16_string.size());
43 base::i18n::UTF16CharIterator char_iterator(&utf16_string); 39 base::i18n::UTF16CharIterator char_iterator(&utf16_string);
44 for (size_t i = 0; i < utf8_offset; ++i) 40 for (size_t i = 0; i < utf8_offset; ++i)
45 char_iterator.Advance(); 41 char_iterator.Advance();
46 return char_iterator.array_pos(); 42 return char_iterator.array_pos();
(...skipping 16 matching lines...) Expand all
63 59
64 60
65 class TestableInputMethodIBus : public InputMethodIBus { 61 class TestableInputMethodIBus : public InputMethodIBus {
66 public: 62 public:
67 explicit TestableInputMethodIBus(internal::InputMethodDelegate* delegate) 63 explicit TestableInputMethodIBus(internal::InputMethodDelegate* delegate)
68 : InputMethodIBus(delegate), 64 : InputMethodIBus(delegate),
69 process_key_event_post_ime_call_count_(0) { 65 process_key_event_post_ime_call_count_(0) {
70 } 66 }
71 67
72 struct ProcessKeyEventPostIMEArgs { 68 struct ProcessKeyEventPostIMEArgs {
73 ProcessKeyEventPostIMEArgs() : handled(false) { 69 ProcessKeyEventPostIMEArgs() : event(NULL), handled(false) {}
74 std::memset(&event, 0, sizeof(XEvent)); 70 const ui::KeyEvent* event;
75 }
76 XEvent event;
77 bool handled; 71 bool handled;
78 }; 72 };
79 73
80 struct IBusKeyEventFromNativeKeyEventResult {
81 IBusKeyEventFromNativeKeyEventResult() : keyval(0), keycode(0), state(0) {}
82 uint32 keyval;
83 uint32 keycode;
84 uint32 state;
85 };
86
87 // InputMethodIBus override. 74 // InputMethodIBus override.
88 virtual void ProcessKeyEventPostIME(const base::NativeEvent& native_key_event, 75 virtual void ProcessKeyEventPostIME(const ui::KeyEvent& key_event,
89 uint32 ibus_state,
90 bool handled) OVERRIDE { 76 bool handled) OVERRIDE {
91 process_key_event_post_ime_args_.event = *native_key_event; 77 process_key_event_post_ime_args_.event = &key_event;
92 process_key_event_post_ime_args_.handled = handled; 78 process_key_event_post_ime_args_.handled = handled;
93 ++process_key_event_post_ime_call_count_; 79 ++process_key_event_post_ime_call_count_;
94 } 80 }
95 81
96 // We can't call X11 related function without display in unit test, so
97 // override with mock function.
98 virtual void IBusKeyEventFromNativeKeyEvent(
99 const base::NativeEvent& native_event,
100 uint32* ibus_keyval,
101 uint32* ibus_keycode,
102 uint32* ibus_state) OVERRIDE {
103 EXPECT_TRUE(native_event);
104 EXPECT_TRUE(ibus_keyval);
105 EXPECT_TRUE(ibus_keycode);
106 EXPECT_TRUE(ibus_state);
107 *ibus_keyval = ibus_key_event_from_native_key_event_result_.keyval;
108 *ibus_keycode = ibus_key_event_from_native_key_event_result_.keycode;
109 *ibus_state = ibus_key_event_from_native_key_event_result_.state;
110 }
111
112 void ResetCallCount() { 82 void ResetCallCount() {
113 process_key_event_post_ime_call_count_ = 0; 83 process_key_event_post_ime_call_count_ = 0;
114 } 84 }
115 85
116 const ProcessKeyEventPostIMEArgs& process_key_event_post_ime_args() const { 86 const ProcessKeyEventPostIMEArgs& process_key_event_post_ime_args() const {
117 return process_key_event_post_ime_args_; 87 return process_key_event_post_ime_args_;
118 } 88 }
119 89
120 int process_key_event_post_ime_call_count() const { 90 int process_key_event_post_ime_call_count() const {
121 return process_key_event_post_ime_call_count_; 91 return process_key_event_post_ime_call_count_;
122 } 92 }
123 93
124 IBusKeyEventFromNativeKeyEventResult*
125 mutable_ibus_key_event_from_native_key_event_result() {
126 return &ibus_key_event_from_native_key_event_result_;
127 }
128
129 // Change access rights for testing. 94 // Change access rights for testing.
130 using InputMethodIBus::ExtractCompositionText; 95 using InputMethodIBus::ExtractCompositionText;
131 using InputMethodIBus::ResetContext; 96 using InputMethodIBus::ResetContext;
132 97
133 private: 98 private:
134 ProcessKeyEventPostIMEArgs process_key_event_post_ime_args_; 99 ProcessKeyEventPostIMEArgs process_key_event_post_ime_args_;
135 int process_key_event_post_ime_call_count_; 100 int process_key_event_post_ime_call_count_;
136
137 IBusKeyEventFromNativeKeyEventResult
138 ibus_key_event_from_native_key_event_result_;
139 }; 101 };
140 102
141 class CreateInputContextSuccessHandler { 103 class CreateInputContextSuccessHandler {
142 public: 104 public:
143 explicit CreateInputContextSuccessHandler(const dbus::ObjectPath& object_path) 105 explicit CreateInputContextSuccessHandler(const dbus::ObjectPath& object_path)
144 : object_path_(object_path) { 106 : object_path_(object_path) {
145 } 107 }
146 108
147 void Run(const std::string& client_name, 109 void Run(const std::string& client_name,
148 const chromeos::IBusClient::CreateInputContextCallback& callback) { 110 const chromeos::IBusClient::CreateInputContextCallback& callback) {
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 ime_->SetFocusedTextInputClient(NULL); 276 ime_->SetFocusedTextInputClient(NULL);
315 ime_.reset(); 277 ime_.reset();
316 chromeos::IBusBridge::Get()->SetEngineHandler(NULL); 278 chromeos::IBusBridge::Get()->SetEngineHandler(NULL);
317 chromeos::IBusBridge::Get()->SetCandidateWindowHandler(NULL); 279 chromeos::IBusBridge::Get()->SetCandidateWindowHandler(NULL);
318 mock_ime_engine_handler_.reset(); 280 mock_ime_engine_handler_.reset();
319 mock_ime_candidate_window_handler_.reset(); 281 mock_ime_candidate_window_handler_.reset();
320 chromeos::IBusBridge::Shutdown(); 282 chromeos::IBusBridge::Shutdown();
321 } 283 }
322 284
323 // ui::internal::InputMethodDelegate overrides: 285 // ui::internal::InputMethodDelegate overrides:
324 virtual bool DispatchKeyEventPostIME( 286 virtual bool DispatchKeyEventPostIME(const ui::KeyEvent& key_event) OVERRIDE {
325 const base::NativeEvent& native_key_event) OVERRIDE { 287 dispatched_native_event_ = key_event.native_event();
326 dispatched_native_event_ = native_key_event;
327 return false; 288 return false;
328 } 289 }
329 virtual bool DispatchFabricatedKeyEventPostIME(ui::EventType type, 290 virtual bool DispatchFabricatedKeyEventPostIME(ui::EventType type,
330 ui::KeyboardCode key_code, 291 ui::KeyboardCode key_code,
331 int flags) OVERRIDE { 292 int flags) OVERRIDE {
332 dispatched_fabricated_event_type_ = type; 293 dispatched_fabricated_event_type_ = type;
333 dispatched_fabricated_event_key_code_ = key_code; 294 dispatched_fabricated_event_key_code_ = key_code;
334 dispatched_fabricated_event_flags_ = flags; 295 dispatched_fabricated_event_flags_ = flags;
335 return false; 296 return false;
336 } 297 }
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 944
984 virtual void SetUp() OVERRIDE { 945 virtual void SetUp() OVERRIDE {
985 InputMethodIBusTest::SetUp(); 946 InputMethodIBusTest::SetUp();
986 ime_->Init(true); 947 ime_->Init(true);
987 } 948 }
988 949
989 DISALLOW_COPY_AND_ASSIGN(InputMethodIBusKeyEventTest); 950 DISALLOW_COPY_AND_ASSIGN(InputMethodIBusKeyEventTest);
990 }; 951 };
991 952
992 TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseTest) { 953 TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseTest) {
993 XEvent event = {}; 954 XEvent xevent;
994 event.xkey.type = KeyPress; 955 ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
995 956 ui::VKEY_A,
996 // Set up IBusKeyEventFromNativeKeyEvent result. 957 ui::EF_SHIFT_DOWN,
997 ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval 958 &xevent);
998 = kTestIBusKeyVal1; 959 const ui::KeyEvent event(&xevent, true);
999 ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode
1000 = kTestIBusKeyCode1;
1001 ime_->mutable_ibus_key_event_from_native_key_event_result()->state
1002 = kTestIBusState1;
1003 960
1004 // Do key event. 961 // Do key event.
1005 input_type_ = TEXT_INPUT_TYPE_TEXT; 962 input_type_ = TEXT_INPUT_TYPE_TEXT;
1006 ime_->OnTextInputTypeChanged(this); 963 ime_->OnTextInputTypeChanged(this);
1007 ime_->DispatchKeyEvent(&event); 964 ime_->DispatchKeyEvent(event);
1008 965
1009 // Check before state. 966 // Check before state.
1010 EXPECT_EQ(1, 967 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
1011 mock_ime_engine_handler_->process_key_event_call_count()); 968 EXPECT_EQ("A", mock_ime_engine_handler_->last_processed_keysym());
1012 EXPECT_EQ(kTestIBusKeyVal1, 969 EXPECT_EQ("KeyA", mock_ime_engine_handler_->last_processed_keycode());
1013 mock_ime_engine_handler_->last_processed_keysym()); 970 EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_key_down());
1014 EXPECT_EQ(kTestIBusKeyCode1, 971 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_alt_down());
1015 mock_ime_engine_handler_->last_processed_keycode()); 972 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_ctrl_down());
1016 EXPECT_EQ(kTestIBusState1, 973 EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_shift_down());
1017 mock_ime_engine_handler_->last_processed_state()); 974 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_caps_lock_down());
1018 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 975 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
1019 976
1020 // Do callback. 977 // Do callback.
1021 mock_ime_engine_handler_->last_passed_callback().Run(true); 978 mock_ime_engine_handler_->last_passed_callback().Run(true);
1022 979
1023 // Check the results 980 // Check the results
1024 EXPECT_EQ(1, ime_->process_key_event_post_ime_call_count()); 981 EXPECT_EQ(1, ime_->process_key_event_post_ime_call_count());
1025 EXPECT_TRUE(IsEqualXKeyEvent(event, 982 const ui::KeyEvent* stored_event =
1026 ime_->process_key_event_post_ime_args().event)); 983 ime_->process_key_event_post_ime_args().event;
984 EXPECT_TRUE(stored_event->HasNativeEvent());
985 EXPECT_TRUE(IsEqualXKeyEvent(xevent, *(stored_event->native_event())));
1027 EXPECT_TRUE(ime_->process_key_event_post_ime_args().handled); 986 EXPECT_TRUE(ime_->process_key_event_post_ime_args().handled);
1028 } 987 }
1029 988
1030 TEST_F(InputMethodIBusKeyEventTest, MultiKeyEventDelayResponseTest) { 989 TEST_F(InputMethodIBusKeyEventTest, MultiKeyEventDelayResponseTest) {
1031 // Preparation 990 // Preparation
1032 input_type_ = TEXT_INPUT_TYPE_TEXT; 991 input_type_ = TEXT_INPUT_TYPE_TEXT;
1033 ime_->OnTextInputTypeChanged(this); 992 ime_->OnTextInputTypeChanged(this);
1034 993
1035 XEvent event = {}; 994 XEvent xevent;
1036 event.xkey.type = KeyPress; 995 ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
1037 996 ui::VKEY_B,
1038 // Set up IBusKeyEventFromNativeKeyEvent result for first key event. 997 ui::EF_ALT_DOWN,
1039 ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval 998 &xevent);
1040 = kTestIBusKeyVal1; 999 const ui::KeyEvent event(&xevent, true);
1041 ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode
1042 = kTestIBusKeyCode1;
1043 ime_->mutable_ibus_key_event_from_native_key_event_result()->state
1044 = kTestIBusState1;
1045 1000
1046 // Do key event. 1001 // Do key event.
1047 ime_->DispatchKeyEvent(&event); 1002 ime_->DispatchKeyEvent(event);
1048 EXPECT_EQ(kTestIBusKeyVal1, 1003 EXPECT_EQ("b", mock_ime_engine_handler_->last_processed_keysym());
1049 mock_ime_engine_handler_->last_processed_keysym()); 1004 EXPECT_EQ("KeyB", mock_ime_engine_handler_->last_processed_keycode());
1050 EXPECT_EQ(kTestIBusKeyCode1, 1005 EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_key_down());
1051 mock_ime_engine_handler_->last_processed_keycode()); 1006 EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_alt_down());
1052 EXPECT_EQ(kTestIBusState1, 1007 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_ctrl_down());
1053 mock_ime_engine_handler_->last_processed_state()); 1008 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_shift_down());
1009 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_caps_lock_down());
1054 1010
1055 KeyEventCallback first_callback = 1011 KeyEventCallback first_callback =
1056 mock_ime_engine_handler_->last_passed_callback(); 1012 mock_ime_engine_handler_->last_passed_callback();
1057 1013
1058 // Set up IBusKeyEventFromNativeKeyEvent result for second key event. 1014 // Do key event again.
1059 ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval 1015 XEvent xevent2;
1060 = kTestIBusKeyVal2; 1016 ui::InitXKeyEventForTesting(ui::ET_KEY_RELEASED,
1061 ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode 1017 ui::VKEY_B,
1062 = kTestIBusKeyCode2; 1018 ui::EF_ALT_DOWN,
1063 ime_->mutable_ibus_key_event_from_native_key_event_result()->state 1019 &xevent2);
1064 = kTestIBusState2; 1020 const ui::KeyEvent event2(&xevent2, true);
1065 1021
1066 // Do key event again. 1022 ime_->DispatchKeyEvent(event2);
1067 ime_->DispatchKeyEvent(&event); 1023 EXPECT_EQ("b", mock_ime_engine_handler_->last_processed_keysym());
1068 EXPECT_EQ(kTestIBusKeyVal2, 1024 EXPECT_EQ("KeyB", mock_ime_engine_handler_->last_processed_keycode());
1069 mock_ime_engine_handler_->last_processed_keysym()); 1025 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_key_down());
1070 EXPECT_EQ(kTestIBusKeyCode2, 1026 EXPECT_TRUE(mock_ime_engine_handler_->last_processed_is_alt_down());
1071 mock_ime_engine_handler_->last_processed_keycode()); 1027 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_ctrl_down());
1072 EXPECT_EQ(kTestIBusState2, 1028 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_shift_down());
1073 mock_ime_engine_handler_->last_processed_state()); 1029 EXPECT_FALSE(mock_ime_engine_handler_->last_processed_is_caps_lock_down());
1074 1030
1075 // Check before state. 1031 // Check before state.
1076 EXPECT_EQ(2, 1032 EXPECT_EQ(2, mock_ime_engine_handler_->process_key_event_call_count());
1077 mock_ime_engine_handler_->process_key_event_call_count());
1078 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 1033 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
1079 1034
1080 // Do callback for first key event. 1035 // Do callback for first key event.
1081 first_callback.Run(true); 1036 first_callback.Run(true);
1082 1037
1083 // Check the results for first key event. 1038 // Check the results for first key event.
1084 EXPECT_EQ(1, ime_->process_key_event_post_ime_call_count()); 1039 EXPECT_EQ(1, ime_->process_key_event_post_ime_call_count());
1085 EXPECT_TRUE(IsEqualXKeyEvent(event, 1040 const ui::KeyEvent* stored_event =
1086 ime_->process_key_event_post_ime_args().event)); 1041 ime_->process_key_event_post_ime_args().event;
1042 EXPECT_TRUE(stored_event->HasNativeEvent());
1043 EXPECT_TRUE(IsEqualXKeyEvent(xevent, *(stored_event->native_event())));
1087 EXPECT_TRUE(ime_->process_key_event_post_ime_args().handled); 1044 EXPECT_TRUE(ime_->process_key_event_post_ime_args().handled);
1088 1045
1089 // Do callback for second key event. 1046 // Do callback for second key event.
1090 mock_ime_engine_handler_->last_passed_callback().Run(false); 1047 mock_ime_engine_handler_->last_passed_callback().Run(false);
1091 1048
1092 // Check the results for second key event. 1049 // Check the results for second key event.
1093 EXPECT_EQ(2, ime_->process_key_event_post_ime_call_count()); 1050 EXPECT_EQ(2, ime_->process_key_event_post_ime_call_count());
1094 EXPECT_TRUE(IsEqualXKeyEvent(event, 1051 stored_event = ime_->process_key_event_post_ime_args().event;
1095 ime_->process_key_event_post_ime_args().event)); 1052 EXPECT_TRUE(stored_event->HasNativeEvent());
1053 EXPECT_TRUE(IsEqualXKeyEvent(xevent2, *(stored_event->native_event())));
1096 EXPECT_FALSE(ime_->process_key_event_post_ime_args().handled); 1054 EXPECT_FALSE(ime_->process_key_event_post_ime_args().handled);
1097 } 1055 }
1098 1056
1099 TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseResetTest) { 1057 TEST_F(InputMethodIBusKeyEventTest, KeyEventDelayResponseResetTest) {
1100 XEvent event = {}; 1058 XEvent xevent;
1101 event.xkey.type = KeyPress; 1059 ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
1102 1060 ui::VKEY_A,
1103 // Set up IBusKeyEventFromNativeKeyEvent result. 1061 ui::EF_NONE,
1104 ime_->mutable_ibus_key_event_from_native_key_event_result()->keyval 1062 &xevent);
1105 = kTestIBusKeyVal1; 1063 const ui::KeyEvent event(&xevent, true);
1106 ime_->mutable_ibus_key_event_from_native_key_event_result()->keycode
1107 = kTestIBusKeyCode1;
1108 ime_->mutable_ibus_key_event_from_native_key_event_result()->state
1109 = kTestIBusState1;
1110 1064
1111 // Do key event. 1065 // Do key event.
1112 input_type_ = TEXT_INPUT_TYPE_TEXT; 1066 input_type_ = TEXT_INPUT_TYPE_TEXT;
1113 ime_->OnTextInputTypeChanged(this); 1067 ime_->OnTextInputTypeChanged(this);
1114 ime_->DispatchKeyEvent(&event); 1068 ime_->DispatchKeyEvent(event);
1115 1069
1116 // Check before state. 1070 // Check before state.
1117 EXPECT_EQ(1, 1071 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
1118 mock_ime_engine_handler_->process_key_event_call_count());
1119 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 1072 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
1120 1073
1121 ime_->ResetContext(); 1074 ime_->ResetContext();
1122 1075
1123 // Do callback. 1076 // Do callback.
1124 mock_ime_engine_handler_->last_passed_callback().Run(true); 1077 mock_ime_engine_handler_->last_passed_callback().Run(true);
1125 1078
1126 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 1079 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
1127 } 1080 }
1128
1129 // TODO(nona): Introduce ProcessKeyEventPostIME tests(crbug.com/156593). 1081 // TODO(nona): Introduce ProcessKeyEventPostIME tests(crbug.com/156593).
1130 1082
1131 } // namespace ui 1083 } // namespace ui
OLDNEW
« 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