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

Side by Side Diff: ui/base/ime/input_method_chromeos_unittest.cc

Issue 404203003: Distinguish between keystroke and character events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IsCharFromNative() for Mac build Created 6 years, 5 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 unified diff | Download patch
« no previous file with comments | « ui/base/ime/input_method_chromeos.cc ('k') | ui/base/ime/input_method_win.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ui/base/ime/input_method_chromeos.h" 5 #include "ui/base/ime/input_method_chromeos.h"
6 6
7 #include <X11/Xlib.h> 7 #include <X11/Xlib.h>
8 #undef Bool 8 #undef Bool
9 #undef FocusIn 9 #undef FocusIn
10 #undef FocusOut 10 #undef FocusOut
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 const uint32 expected_anchor_position_; 196 const uint32 expected_anchor_position_;
197 197
198 DISALLOW_COPY_AND_ASSIGN(SetSurroundingTextVerifier); 198 DISALLOW_COPY_AND_ASSIGN(SetSurroundingTextVerifier);
199 }; 199 };
200 200
201 class InputMethodChromeOSTest : public internal::InputMethodDelegate, 201 class InputMethodChromeOSTest : public internal::InputMethodDelegate,
202 public testing::Test, 202 public testing::Test,
203 public TextInputClient { 203 public TextInputClient {
204 public: 204 public:
205 InputMethodChromeOSTest() 205 InputMethodChromeOSTest()
206 : dispatched_key_event_(ui::ET_UNKNOWN, ui::VKEY_UNKNOWN, 0, false) { 206 : dispatched_key_event_(ui::ET_UNKNOWN, ui::VKEY_UNKNOWN, ui::EF_NONE) {
207 ResetFlags(); 207 ResetFlags();
208 } 208 }
209 209
210 virtual ~InputMethodChromeOSTest() { 210 virtual ~InputMethodChromeOSTest() {
211 } 211 }
212 212
213 virtual void SetUp() OVERRIDE { 213 virtual void SetUp() OVERRIDE {
214 chromeos::IMEBridge::Initialize(); 214 chromeos::IMEBridge::Initialize();
215 215
216 mock_ime_engine_handler_.reset( 216 mock_ime_engine_handler_.reset(
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 virtual bool IsEditingCommandEnabled(int command_id) OVERRIDE { 328 virtual bool IsEditingCommandEnabled(int command_id) OVERRIDE {
329 return false; 329 return false;
330 } 330 }
331 virtual void ExecuteEditingCommand(int command_id) OVERRIDE {} 331 virtual void ExecuteEditingCommand(int command_id) OVERRIDE {}
332 332
333 bool HasNativeEvent() const { 333 bool HasNativeEvent() const {
334 return dispatched_key_event_.HasNativeEvent(); 334 return dispatched_key_event_.HasNativeEvent();
335 } 335 }
336 336
337 void ResetFlags() { 337 void ResetFlags() {
338 dispatched_key_event_ = ui::KeyEvent(ui::ET_UNKNOWN, ui::VKEY_UNKNOWN, 0, 338 dispatched_key_event_ = ui::KeyEvent(ui::ET_UNKNOWN, ui::VKEY_UNKNOWN,
339 false); 339 ui::EF_NONE);
340 340
341 composition_text_.Clear(); 341 composition_text_.Clear();
342 confirmed_text_.Clear(); 342 confirmed_text_.Clear();
343 inserted_text_.clear(); 343 inserted_text_.clear();
344 inserted_char_ = 0; 344 inserted_char_ = 0;
345 inserted_char_flags_ = 0; 345 inserted_char_flags_ = 0;
346 on_input_method_changed_call_count_ = 0; 346 on_input_method_changed_call_count_ = 0;
347 347
348 input_type_ = TEXT_INPUT_TYPE_NONE; 348 input_type_ = TEXT_INPUT_TYPE_NONE;
349 input_mode_ = TEXT_INPUT_MODE_DEFAULT; 349 input_mode_ = TEXT_INPUT_MODE_DEFAULT;
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 ime_->Init(true); 950 ime_->Init(true);
951 } 951 }
952 952
953 DISALLOW_COPY_AND_ASSIGN(InputMethodChromeOSKeyEventTest); 953 DISALLOW_COPY_AND_ASSIGN(InputMethodChromeOSKeyEventTest);
954 }; 954 };
955 955
956 TEST_F(InputMethodChromeOSKeyEventTest, KeyEventDelayResponseTest) { 956 TEST_F(InputMethodChromeOSKeyEventTest, KeyEventDelayResponseTest) {
957 const int kFlags = ui::EF_SHIFT_DOWN; 957 const int kFlags = ui::EF_SHIFT_DOWN;
958 ScopedXI2Event xevent; 958 ScopedXI2Event xevent;
959 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, kFlags); 959 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, kFlags);
960 const ui::KeyEvent event(xevent, true); 960 const ui::KeyEvent event(xevent);
961 961
962 // Do key event. 962 // Do key event.
963 input_type_ = TEXT_INPUT_TYPE_TEXT; 963 input_type_ = TEXT_INPUT_TYPE_TEXT;
964 ime_->OnTextInputTypeChanged(this); 964 ime_->OnTextInputTypeChanged(this);
965 ime_->DispatchKeyEvent(event); 965 ime_->DispatchKeyEvent(event);
966 966
967 // Check before state. 967 // Check before state.
968 const ui::KeyEvent* key_event = 968 const ui::KeyEvent* key_event =
969 mock_ime_engine_handler_->last_processed_key_event(); 969 mock_ime_engine_handler_->last_processed_key_event();
970 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count()); 970 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
(...skipping 15 matching lines...) Expand all
986 } 986 }
987 987
988 TEST_F(InputMethodChromeOSKeyEventTest, MultiKeyEventDelayResponseTest) { 988 TEST_F(InputMethodChromeOSKeyEventTest, MultiKeyEventDelayResponseTest) {
989 // Preparation 989 // Preparation
990 input_type_ = TEXT_INPUT_TYPE_TEXT; 990 input_type_ = TEXT_INPUT_TYPE_TEXT;
991 ime_->OnTextInputTypeChanged(this); 991 ime_->OnTextInputTypeChanged(this);
992 992
993 const int kFlags = ui::EF_SHIFT_DOWN; 993 const int kFlags = ui::EF_SHIFT_DOWN;
994 ScopedXI2Event xevent; 994 ScopedXI2Event xevent;
995 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_B, kFlags); 995 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_B, kFlags);
996 const ui::KeyEvent event(xevent, true); 996 const ui::KeyEvent event(xevent);
997 997
998 // Do key event. 998 // Do key event.
999 ime_->DispatchKeyEvent(event); 999 ime_->DispatchKeyEvent(event);
1000 const ui::KeyEvent* key_event = 1000 const ui::KeyEvent* key_event =
1001 mock_ime_engine_handler_->last_processed_key_event(); 1001 mock_ime_engine_handler_->last_processed_key_event();
1002 EXPECT_EQ(ui::VKEY_B, key_event->key_code()); 1002 EXPECT_EQ(ui::VKEY_B, key_event->key_code());
1003 EXPECT_EQ("KeyB", key_event->code()); 1003 EXPECT_EQ("KeyB", key_event->code());
1004 EXPECT_EQ(kFlags, key_event->flags()); 1004 EXPECT_EQ(kFlags, key_event->flags());
1005 1005
1006 KeyEventCallback first_callback = 1006 KeyEventCallback first_callback =
1007 mock_ime_engine_handler_->last_passed_callback(); 1007 mock_ime_engine_handler_->last_passed_callback();
1008 1008
1009 // Do key event again. 1009 // Do key event again.
1010 ScopedXI2Event xevent2; 1010 ScopedXI2Event xevent2;
1011 xevent2.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_C, kFlags); 1011 xevent2.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_C, kFlags);
1012 const ui::KeyEvent event2(xevent2, true); 1012 const ui::KeyEvent event2(xevent2);
1013 1013
1014 ime_->DispatchKeyEvent(event2); 1014 ime_->DispatchKeyEvent(event2);
1015 const ui::KeyEvent* key_event2 = 1015 const ui::KeyEvent* key_event2 =
1016 mock_ime_engine_handler_->last_processed_key_event(); 1016 mock_ime_engine_handler_->last_processed_key_event();
1017 EXPECT_EQ(ui::VKEY_C, key_event2->key_code()); 1017 EXPECT_EQ(ui::VKEY_C, key_event2->key_code());
1018 EXPECT_EQ("KeyC", key_event2->code()); 1018 EXPECT_EQ("KeyC", key_event2->code());
1019 EXPECT_EQ(kFlags, key_event2->flags()); 1019 EXPECT_EQ(kFlags, key_event2->flags());
1020 1020
1021 // Check before state. 1021 // Check before state.
1022 EXPECT_EQ(2, 1022 EXPECT_EQ(2,
(...skipping 18 matching lines...) Expand all
1041 EXPECT_EQ(2, ime_->process_key_event_post_ime_call_count()); 1041 EXPECT_EQ(2, ime_->process_key_event_post_ime_call_count());
1042 stored_event = ime_->process_key_event_post_ime_args().event; 1042 stored_event = ime_->process_key_event_post_ime_args().event;
1043 EXPECT_TRUE(stored_event->HasNativeEvent()); 1043 EXPECT_TRUE(stored_event->HasNativeEvent());
1044 EXPECT_TRUE(IsEqualXKeyEvent(*xevent2, *(stored_event->native_event()))); 1044 EXPECT_TRUE(IsEqualXKeyEvent(*xevent2, *(stored_event->native_event())));
1045 EXPECT_FALSE(ime_->process_key_event_post_ime_args().handled); 1045 EXPECT_FALSE(ime_->process_key_event_post_ime_args().handled);
1046 } 1046 }
1047 1047
1048 TEST_F(InputMethodChromeOSKeyEventTest, KeyEventDelayResponseResetTest) { 1048 TEST_F(InputMethodChromeOSKeyEventTest, KeyEventDelayResponseResetTest) {
1049 ScopedXI2Event xevent; 1049 ScopedXI2Event xevent;
1050 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_SHIFT_DOWN); 1050 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_SHIFT_DOWN);
1051 const ui::KeyEvent event(xevent, true); 1051 const ui::KeyEvent event(xevent);
1052 1052
1053 // Do key event. 1053 // Do key event.
1054 input_type_ = TEXT_INPUT_TYPE_TEXT; 1054 input_type_ = TEXT_INPUT_TYPE_TEXT;
1055 ime_->OnTextInputTypeChanged(this); 1055 ime_->OnTextInputTypeChanged(this);
1056 ime_->DispatchKeyEvent(event); 1056 ime_->DispatchKeyEvent(event);
1057 1057
1058 // Check before state. 1058 // Check before state.
1059 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count()); 1059 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
1060 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 1060 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
1061 1061
1062 ime_->ResetContext(); 1062 ime_->ResetContext();
1063 1063
1064 // Do callback. 1064 // Do callback.
1065 mock_ime_engine_handler_->last_passed_callback().Run(true); 1065 mock_ime_engine_handler_->last_passed_callback().Run(true);
1066 1066
1067 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 1067 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
1068 } 1068 }
1069 // TODO(nona): Introduce ProcessKeyEventPostIME tests(crbug.com/156593). 1069 // TODO(nona): Introduce ProcessKeyEventPostIME tests(crbug.com/156593).
1070 1070
1071 } // namespace ui 1071 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/ime/input_method_chromeos.cc ('k') | ui/base/ime/input_method_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698