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

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

Issue 81023002: Remove dead code unnecessarily added by r231563 and 236449 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 7 years 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_base.cc ('k') | ui/base/ime/input_method_ibus.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_base.h" 5 #include "ui/base/ime/input_method_base.h"
6 6
7 #include "base/scoped_observer.h" 7 #include "base/scoped_observer.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/base/ime/dummy_text_input_client.h" 9 #include "ui/base/ime/dummy_text_input_client.h"
10 #include "ui/base/ime/input_method_observer.h" 10 #include "ui/base/ime/input_method_observer.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 TextInputClient* previous_client_; 103 TextInputClient* previous_client_;
104 TextInputClient* next_client_; 104 TextInputClient* next_client_;
105 bool call_expected_; 105 bool call_expected_;
106 bool on_will_change_focused_client_called_; 106 bool on_will_change_focused_client_called_;
107 bool on_did_change_focused_client_called_; 107 bool on_did_change_focused_client_called_;
108 bool on_text_input_state_changed_; 108 bool on_text_input_state_changed_;
109 109
110 DISALLOW_COPY_AND_ASSIGN(ClientChangeVerifier); 110 DISALLOW_COPY_AND_ASSIGN(ClientChangeVerifier);
111 }; 111 };
112 112
113 class SimpleMockInputMethodBase : public InputMethodBase { 113 class MockInputMethodBase : public InputMethodBase {
114 public: 114 public:
115 SimpleMockInputMethodBase() { 115 // Note: this class does not take the ownership of |verifier|.
116 MockInputMethodBase(ClientChangeVerifier* verifier)
117 : verifier_(verifier) {
116 } 118 }
117 virtual ~SimpleMockInputMethodBase() { 119 virtual ~MockInputMethodBase() {
118 } 120 }
119 121
120 private: 122 private:
121 // Overriden from InputMethod. 123 // Overriden from InputMethod.
122 virtual bool OnUntranslatedIMEMessage( 124 virtual bool OnUntranslatedIMEMessage(
123 const base::NativeEvent& event, 125 const base::NativeEvent& event,
124 InputMethod::NativeEventResult* result) OVERRIDE { 126 InputMethod::NativeEventResult* result) OVERRIDE {
125 return false; 127 return false;
126 } 128 }
127 virtual bool DispatchKeyEvent(const ui::KeyEvent&) OVERRIDE { 129 virtual bool DispatchKeyEvent(const ui::KeyEvent&) OVERRIDE {
128 return false; 130 return false;
129 } 131 }
132 virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE {
133 }
130 virtual void CancelComposition(const TextInputClient* client) OVERRIDE { 134 virtual void CancelComposition(const TextInputClient* client) OVERRIDE {
131 } 135 }
132 virtual void OnInputLocaleChanged() OVERRIDE { 136 virtual void OnInputLocaleChanged() OVERRIDE {
133 } 137 }
134 virtual std::string GetInputLocale() OVERRIDE{ 138 virtual std::string GetInputLocale() OVERRIDE{
135 return ""; 139 return "";
136 } 140 }
137 virtual base::i18n::TextDirection GetInputTextDirection() OVERRIDE { 141 virtual base::i18n::TextDirection GetInputTextDirection() OVERRIDE {
138 return base::i18n::UNKNOWN_DIRECTION; 142 return base::i18n::UNKNOWN_DIRECTION;
139 } 143 }
140 virtual bool IsActive() OVERRIDE { 144 virtual bool IsActive() OVERRIDE {
141 return false; 145 return false;
142 } 146 }
143 virtual bool IsCandidatePopupOpen() const OVERRIDE { 147 virtual bool IsCandidatePopupOpen() const OVERRIDE {
144 return false; 148 return false;
145 } 149 }
146 DISALLOW_COPY_AND_ASSIGN(SimpleMockInputMethodBase);
147 };
148
149 class MockInputMethodBase : public SimpleMockInputMethodBase {
150 public:
151 // Note: this class does not take the ownership of |verifier|.
152 explicit MockInputMethodBase(ClientChangeVerifier* verifier)
153 : verifier_(verifier) {
154 }
155 virtual ~MockInputMethodBase() {
156 }
157
158 private:
159 // Overriden from InputMethodBase. 150 // Overriden from InputMethodBase.
160 virtual void OnWillChangeFocusedClient(TextInputClient* focused_before, 151 virtual void OnWillChangeFocusedClient(TextInputClient* focused_before,
161 TextInputClient* focused) OVERRIDE { 152 TextInputClient* focused) OVERRIDE {
162 verifier_->OnWillChangeFocusedClient(focused_before, focused); 153 verifier_->OnWillChangeFocusedClient(focused_before, focused);
163 } 154 }
164 155
165 virtual void OnDidChangeFocusedClient(TextInputClient* focused_before, 156 virtual void OnDidChangeFocusedClient(TextInputClient* focused_before,
166 TextInputClient* focused) OVERRIDE { 157 TextInputClient* focused) OVERRIDE {
167 verifier_->OnDidChangeFocusedClient(focused_before, focused); 158 verifier_->OnDidChangeFocusedClient(focused_before, focused);
168 } 159 }
169 160
170 ClientChangeVerifier* verifier_; 161 ClientChangeVerifier* verifier_;
171 DISALLOW_COPY_AND_ASSIGN(MockInputMethodBase); 162 DISALLOW_COPY_AND_ASSIGN(MockInputMethodBase);
172 }; 163 };
173 164
174 class SimpleMockInputMethodObserver : public InputMethodObserver { 165 class MockInputMethodObserver : public InputMethodObserver {
175 public:
176 SimpleMockInputMethodObserver()
177 : on_caret_bounds_changed_(0),
178 on_input_locale_changed_(0) {
179 }
180 virtual ~SimpleMockInputMethodObserver() {
181 }
182 void Reset() {
183 on_caret_bounds_changed_ = 0;
184 on_input_locale_changed_ = 0;
185 }
186 size_t on_caret_bounds_changed() const {
187 return on_caret_bounds_changed_;
188 }
189
190 private:
191 // Overriden from InputMethodObserver.
192 virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE{
193 }
194 virtual void OnFocus() OVERRIDE{
195 }
196 virtual void OnBlur() OVERRIDE{
197 }
198 virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE{
199 ++on_caret_bounds_changed_;
200 }
201 virtual void OnTextInputStateChanged(const TextInputClient* client) OVERRIDE{
202 }
203 virtual void OnInputMethodDestroyed(const InputMethod* client) OVERRIDE{
204 }
205
206 size_t on_caret_bounds_changed_;
207 size_t on_input_locale_changed_;
208 DISALLOW_COPY_AND_ASSIGN(SimpleMockInputMethodObserver);
209 };
210
211 class MockInputMethodObserver : public SimpleMockInputMethodObserver {
212 public: 166 public:
213 // Note: this class does not take the ownership of |verifier|. 167 // Note: this class does not take the ownership of |verifier|.
214 explicit MockInputMethodObserver(ClientChangeVerifier* verifier) 168 explicit MockInputMethodObserver(ClientChangeVerifier* verifier)
215 : verifier_(verifier) { 169 : verifier_(verifier) {
216 } 170 }
217 virtual ~MockInputMethodObserver() { 171 virtual ~MockInputMethodObserver() {
218 } 172 }
219 173
220 private: 174 private:
221 // Overriden from SimpleMockInputMethodObserver. 175 virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE {
222 virtual void OnTextInputStateChanged(const TextInputClient* client) OVERRIDE{ 176 }
177 virtual void OnFocus() OVERRIDE {
178 }
179 virtual void OnBlur() OVERRIDE {
180 }
181 virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE {
182 }
183 virtual void OnTextInputStateChanged(const TextInputClient* client) OVERRIDE {
223 verifier_->OnTextInputStateChanged(client); 184 verifier_->OnTextInputStateChanged(client);
224 } 185 }
186 virtual void OnInputMethodDestroyed(const InputMethod* client) OVERRIDE {
187 }
225 188
226 ClientChangeVerifier* verifier_; 189 ClientChangeVerifier* verifier_;
227 DISALLOW_COPY_AND_ASSIGN(MockInputMethodObserver); 190 DISALLOW_COPY_AND_ASSIGN(MockInputMethodObserver);
228 }; 191 };
229 192
230 typedef ScopedObserver<InputMethod, InputMethodObserver> 193 typedef ScopedObserver<InputMethod, InputMethodObserver>
231 InputMethodScopedObserver; 194 InputMethodScopedObserver;
232 195
233 TEST(InputMethodBaseTest, SetFocusedTextInputClient) { 196 TEST(InputMethodBaseTest, SetFocusedTextInputClient) {
234 DummyTextInputClient text_input_client_1st; 197 DummyTextInputClient text_input_client_1st;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 ASSERT_EQ(&text_input_client, input_method.GetTextInputClient()); 288 ASSERT_EQ(&text_input_client, input_method.GetTextInputClient());
326 input_method.OnBlur(); 289 input_method.OnBlur();
327 input_method.OnFocus(); 290 input_method.OnFocus();
328 verifier.ExpectClientChange(&text_input_client, NULL); 291 verifier.ExpectClientChange(&text_input_client, NULL);
329 input_method.DetachTextInputClient(&text_input_client); 292 input_method.DetachTextInputClient(&text_input_client);
330 EXPECT_EQ(NULL, input_method.GetTextInputClient()); 293 EXPECT_EQ(NULL, input_method.GetTextInputClient());
331 verifier.Verify(); 294 verifier.Verify();
332 } 295 }
333 } 296 }
334 297
335 TEST(InputMethodBaseTest, OnCaretBoundsChanged) {
336 DummyTextInputClient text_input_client;
337 DummyTextInputClient text_input_client_the_other;
338
339 SimpleMockInputMethodBase input_method;
340 SimpleMockInputMethodObserver input_method_observer;
341 InputMethodScopedObserver scoped_observer(&input_method_observer);
342 scoped_observer.Add(&input_method);
343
344 // Assume that the top-level-widget gains focus.
345 input_method.OnFocus();
346
347 {
348 SCOPED_TRACE("OnCaretBoundsChanged callback must not be fired when no text "
349 "input client is focused");
350 ASSERT_EQ(NULL, input_method.GetTextInputClient());
351
352 input_method_observer.Reset();
353 input_method.OnCaretBoundsChanged(&text_input_client);
354 EXPECT_EQ(0u, input_method_observer.on_caret_bounds_changed());
355 input_method.OnCaretBoundsChanged(NULL);
356 EXPECT_EQ(0u, input_method_observer.on_caret_bounds_changed());
357 }
358
359 {
360 SCOPED_TRACE("OnCaretBoundsChanged callback must be fired when and only "
361 "the event is notified from the focused text input client");
362
363 input_method.SetFocusedTextInputClient(&text_input_client);
364 ASSERT_EQ(&text_input_client, input_method.GetTextInputClient());
365
366 // Must fire the event
367 input_method_observer.Reset();
368 input_method.OnCaretBoundsChanged(&text_input_client);
369 EXPECT_EQ(1u, input_method_observer.on_caret_bounds_changed());
370
371 // Must not fire the event
372 input_method_observer.Reset();
373 input_method.OnCaretBoundsChanged(NULL);
374 EXPECT_EQ(0u, input_method_observer.on_caret_bounds_changed());
375
376 // Must not fire the event
377 input_method_observer.Reset();
378 input_method.OnCaretBoundsChanged(&text_input_client_the_other);
379 EXPECT_EQ(0u, input_method_observer.on_caret_bounds_changed());
380 }
381 }
382
383 } // namespace 298 } // namespace
384 } // namespace ui 299 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/ime/input_method_base.cc ('k') | ui/base/ime/input_method_ibus.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698