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

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

Issue 1257603006: Refactoring for the InputMethod & InputMethodDelegate interfaces. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed Sadrul's comment. Created 5 years, 4 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_delegate.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 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 process_key_event_post_ime_call_count_(0) { 66 process_key_event_post_ime_call_count_(0) {
67 } 67 }
68 68
69 struct ProcessKeyEventPostIMEArgs { 69 struct ProcessKeyEventPostIMEArgs {
70 ProcessKeyEventPostIMEArgs() : event(NULL), handled(false) {} 70 ProcessKeyEventPostIMEArgs() : event(NULL), handled(false) {}
71 const ui::KeyEvent* event; 71 const ui::KeyEvent* event;
72 bool handled; 72 bool handled;
73 }; 73 };
74 74
75 // Overridden from InputMethodChromeOS: 75 // Overridden from InputMethodChromeOS:
76 void ProcessKeyEventPostIME(const ui::KeyEvent& key_event, 76 void ProcessKeyEventPostIME(ui::KeyEvent* key_event,
77 bool handled) override { 77 bool handled) override {
78 InputMethodChromeOS::ProcessKeyEventPostIME(key_event, handled); 78 InputMethodChromeOS::ProcessKeyEventPostIME(key_event, handled);
79 process_key_event_post_ime_args_.event = &key_event; 79 process_key_event_post_ime_args_.event = key_event;
80 process_key_event_post_ime_args_.handled = handled; 80 process_key_event_post_ime_args_.handled = handled;
81 ++process_key_event_post_ime_call_count_; 81 ++process_key_event_post_ime_call_count_;
82 } 82 }
83 83
84 void ResetCallCount() { 84 void ResetCallCount() {
85 process_key_event_post_ime_call_count_ = 0; 85 process_key_event_post_ime_call_count_ = 0;
86 } 86 }
87 87
88 const ProcessKeyEventPostIMEArgs& process_key_event_post_ime_args() const { 88 const ProcessKeyEventPostIMEArgs& process_key_event_post_ime_args() const {
89 return process_key_event_post_ime_args_; 89 return process_key_event_post_ime_args_;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 chromeos::IMEBridge::Get()->SetCurrentEngineHandler(NULL); 229 chromeos::IMEBridge::Get()->SetCurrentEngineHandler(NULL);
230 chromeos::IMEBridge::Get()->SetCandidateWindowHandler(NULL); 230 chromeos::IMEBridge::Get()->SetCandidateWindowHandler(NULL);
231 mock_ime_engine_handler_.reset(); 231 mock_ime_engine_handler_.reset();
232 mock_ime_candidate_window_handler_.reset(); 232 mock_ime_candidate_window_handler_.reset();
233 chromeos::IMEBridge::Shutdown(); 233 chromeos::IMEBridge::Shutdown();
234 234
235 ResetFlags(); 235 ResetFlags();
236 } 236 }
237 237
238 // Overridden from ui::internal::InputMethodDelegate: 238 // Overridden from ui::internal::InputMethodDelegate:
239 bool DispatchKeyEventPostIME(const ui::KeyEvent& event) override { 239 ui::EventDispatchDetails DispatchKeyEventPostIME(
240 dispatched_key_event_ = event; 240 ui::KeyEvent* event) override {
241 return stop_propagation_post_ime_; 241 dispatched_key_event_ = *event;
242 if (stop_propagation_post_ime_)
243 event->StopPropagation();
244 return ui::EventDispatchDetails();
242 } 245 }
243 246
244 // Overridden from ui::TextInputClient: 247 // Overridden from ui::TextInputClient:
245 void SetCompositionText(const CompositionText& composition) override { 248 void SetCompositionText(const CompositionText& composition) override {
246 composition_text_ = composition; 249 composition_text_ = composition;
247 } 250 }
248 void ConfirmCompositionText() override { 251 void ConfirmCompositionText() override {
249 confirmed_text_ = composition_text_; 252 confirmed_text_ = composition_text_;
250 composition_text_.Clear(); 253 composition_text_.Clear();
251 } 254 }
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 DISALLOW_COPY_AND_ASSIGN(InputMethodChromeOSKeyEventTest); 879 DISALLOW_COPY_AND_ASSIGN(InputMethodChromeOSKeyEventTest);
877 }; 880 };
878 881
879 TEST_F(InputMethodChromeOSKeyEventTest, KeyEventDelayResponseTest) { 882 TEST_F(InputMethodChromeOSKeyEventTest, KeyEventDelayResponseTest) {
880 const int kFlags = ui::EF_SHIFT_DOWN; 883 const int kFlags = ui::EF_SHIFT_DOWN;
881 ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, kFlags); 884 ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, kFlags);
882 885
883 // Do key event. 886 // Do key event.
884 input_type_ = TEXT_INPUT_TYPE_TEXT; 887 input_type_ = TEXT_INPUT_TYPE_TEXT;
885 ime_->OnTextInputTypeChanged(this); 888 ime_->OnTextInputTypeChanged(this);
886 ime_->DispatchKeyEvent(event); 889 ime_->DispatchKeyEvent(&event);
887 890
888 // Check before state. 891 // Check before state.
889 const ui::KeyEvent* key_event = 892 const ui::KeyEvent* key_event =
890 mock_ime_engine_handler_->last_processed_key_event(); 893 mock_ime_engine_handler_->last_processed_key_event();
891 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count()); 894 EXPECT_EQ(1, mock_ime_engine_handler_->process_key_event_call_count());
892 EXPECT_EQ(ui::VKEY_A, key_event->key_code()); 895 EXPECT_EQ(ui::VKEY_A, key_event->key_code());
893 EXPECT_EQ(kFlags, key_event->flags()); 896 EXPECT_EQ(kFlags, key_event->flags());
894 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 897 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
895 898
896 (static_cast<chromeos::IMEInputContextHandlerInterface*>(ime_.get())) 899 (static_cast<chromeos::IMEInputContextHandlerInterface*>(ime_.get()))
(...skipping 17 matching lines...) Expand all
914 917
915 TEST_F(InputMethodChromeOSKeyEventTest, MultiKeyEventDelayResponseTest) { 918 TEST_F(InputMethodChromeOSKeyEventTest, MultiKeyEventDelayResponseTest) {
916 // Preparation 919 // Preparation
917 input_type_ = TEXT_INPUT_TYPE_TEXT; 920 input_type_ = TEXT_INPUT_TYPE_TEXT;
918 ime_->OnTextInputTypeChanged(this); 921 ime_->OnTextInputTypeChanged(this);
919 922
920 const int kFlags = ui::EF_SHIFT_DOWN; 923 const int kFlags = ui::EF_SHIFT_DOWN;
921 ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_B, kFlags); 924 ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_B, kFlags);
922 925
923 // Do key event. 926 // Do key event.
924 ime_->DispatchKeyEvent(event); 927 ime_->DispatchKeyEvent(&event);
925 const ui::KeyEvent* key_event = 928 const ui::KeyEvent* key_event =
926 mock_ime_engine_handler_->last_processed_key_event(); 929 mock_ime_engine_handler_->last_processed_key_event();
927 EXPECT_EQ(ui::VKEY_B, key_event->key_code()); 930 EXPECT_EQ(ui::VKEY_B, key_event->key_code());
928 EXPECT_EQ(kFlags, key_event->flags()); 931 EXPECT_EQ(kFlags, key_event->flags());
929 932
930 KeyEventCallback first_callback = 933 KeyEventCallback first_callback =
931 mock_ime_engine_handler_->last_passed_callback(); 934 mock_ime_engine_handler_->last_passed_callback();
932 935
933 // Do key event again. 936 // Do key event again.
934 ui::KeyEvent event2(ui::ET_KEY_PRESSED, ui::VKEY_C, kFlags); 937 ui::KeyEvent event2(ui::ET_KEY_PRESSED, ui::VKEY_C, kFlags);
935 938
936 ime_->DispatchKeyEvent(event2); 939 ime_->DispatchKeyEvent(&event2);
937 const ui::KeyEvent* key_event2 = 940 const ui::KeyEvent* key_event2 =
938 mock_ime_engine_handler_->last_processed_key_event(); 941 mock_ime_engine_handler_->last_processed_key_event();
939 EXPECT_EQ(ui::VKEY_C, key_event2->key_code()); 942 EXPECT_EQ(ui::VKEY_C, key_event2->key_code());
940 EXPECT_EQ(kFlags, key_event2->flags()); 943 EXPECT_EQ(kFlags, key_event2->flags());
941 944
942 // Check before state. 945 // Check before state.
943 EXPECT_EQ(2, 946 EXPECT_EQ(2,
944 mock_ime_engine_handler_->process_key_event_call_count()); 947 mock_ime_engine_handler_->process_key_event_call_count());
945 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); 948 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count());
946 949
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 983
981 TEST_F(InputMethodChromeOSKeyEventTest, StopPropagationTest) { 984 TEST_F(InputMethodChromeOSKeyEventTest, StopPropagationTest) {
982 // Preparation 985 // Preparation
983 input_type_ = TEXT_INPUT_TYPE_TEXT; 986 input_type_ = TEXT_INPUT_TYPE_TEXT;
984 ime_->OnTextInputTypeChanged(this); 987 ime_->OnTextInputTypeChanged(this);
985 988
986 // Do key event with event being stopped propagation. 989 // Do key event with event being stopped propagation.
987 stop_propagation_post_ime_ = true; 990 stop_propagation_post_ime_ = true;
988 ui::KeyEvent eventA(ui::ET_KEY_PRESSED, ui::VKEY_A, EF_NONE); 991 ui::KeyEvent eventA(ui::ET_KEY_PRESSED, ui::VKEY_A, EF_NONE);
989 eventA.set_character(L'A'); 992 eventA.set_character(L'A');
990 ime_->DispatchKeyEvent(eventA); 993 ime_->DispatchKeyEvent(&eventA);
991 mock_ime_engine_handler_->last_passed_callback().Run(false); 994 mock_ime_engine_handler_->last_passed_callback().Run(false);
992 995
993 const ui::KeyEvent* key_event = 996 const ui::KeyEvent* key_event =
994 mock_ime_engine_handler_->last_processed_key_event(); 997 mock_ime_engine_handler_->last_processed_key_event();
995 EXPECT_EQ(ui::VKEY_A, key_event->key_code()); 998 EXPECT_EQ(ui::VKEY_A, key_event->key_code());
996 EXPECT_EQ(0, inserted_char_); 999 EXPECT_EQ(0, inserted_char_);
997 1000
998 // Do key event with event not being stopped propagation. 1001 // Do key event with event not being stopped propagation.
999 stop_propagation_post_ime_ = false; 1002 stop_propagation_post_ime_ = false;
1000 ime_->DispatchKeyEvent(eventA); 1003 ime_->DispatchKeyEvent(&eventA);
1001 mock_ime_engine_handler_->last_passed_callback().Run(false); 1004 mock_ime_engine_handler_->last_passed_callback().Run(false);
1002 1005
1003 key_event = mock_ime_engine_handler_->last_processed_key_event(); 1006 key_event = mock_ime_engine_handler_->last_processed_key_event();
1004 EXPECT_EQ(ui::VKEY_A, key_event->key_code()); 1007 EXPECT_EQ(ui::VKEY_A, key_event->key_code());
1005 EXPECT_EQ(L'A', inserted_char_); 1008 EXPECT_EQ(L'A', inserted_char_);
1006 } 1009 }
1007 1010
1008 } // namespace ui 1011 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/ime/input_method_chromeos.cc ('k') | ui/base/ime/input_method_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698