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

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_engine_browsertests.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
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 "ash/ime/input_method_menu_item.h" 5 #include "ash/ime/input_method_menu_item.h"
6 #include "ash/ime/input_method_menu_manager.h" 6 #include "ash/ime/input_method_menu_manager.h"
7 #include "base/bind_helpers.h" 7 #include "base/bind_helpers.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/extensions/extension_browsertest.h" 9 #include "chrome/browser/extensions/extension_browsertest.h"
10 #include "chrome/browser/extensions/extension_test_message_listener.h" 10 #include "chrome/browser/extensions/extension_test_message_listener.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 ExtensionTestMessageListener focus_listener("onFocus:text", false); 179 ExtensionTestMessageListener focus_listener("onFocus:text", false);
180 IMEEngineHandlerInterface::InputContext context(ui::TEXT_INPUT_TYPE_TEXT, 180 IMEEngineHandlerInterface::InputContext context(ui::TEXT_INPUT_TYPE_TEXT,
181 ui::TEXT_INPUT_MODE_DEFAULT); 181 ui::TEXT_INPUT_MODE_DEFAULT);
182 engine_handler->FocusIn(context); 182 engine_handler->FocusIn(context);
183 ASSERT_TRUE(focus_listener.WaitUntilSatisfied()); 183 ASSERT_TRUE(focus_listener.WaitUntilSatisfied());
184 ASSERT_TRUE(focus_listener.was_satisfied()); 184 ASSERT_TRUE(focus_listener.was_satisfied());
185 185
186 // onKeyEvent should be fired if ProcessKeyEvent is called. 186 // onKeyEvent should be fired if ProcessKeyEvent is called.
187 KeyEventDoneCallback callback(false); // EchoBackIME doesn't consume keys. 187 KeyEventDoneCallback callback(false); // EchoBackIME doesn't consume keys.
188 ExtensionTestMessageListener keyevent_listener("onKeyEvent", false); 188 ExtensionTestMessageListener keyevent_listener("onKeyEvent", false);
189 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE, false); 189 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
190 engine_handler->ProcessKeyEvent(key_event, 190 engine_handler->ProcessKeyEvent(key_event,
191 base::Bind(&KeyEventDoneCallback::Run, 191 base::Bind(&KeyEventDoneCallback::Run,
192 base::Unretained(&callback))); 192 base::Unretained(&callback)));
193 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 193 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
194 ASSERT_TRUE(keyevent_listener.was_satisfied()); 194 ASSERT_TRUE(keyevent_listener.was_satisfied());
195 callback.WaitUntilCalled(); 195 callback.WaitUntilCalled();
196 196
197 // onSurroundingTextChange should be fired if SetSurroundingText is called. 197 // onSurroundingTextChange should be fired if SetSurroundingText is called.
198 ExtensionTestMessageListener surrounding_text_listener( 198 ExtensionTestMessageListener surrounding_text_listener(
199 "onSurroundingTextChanged", false); 199 "onSurroundingTextChanged", false);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 engine_handler->FocusIn(context); 260 engine_handler->FocusIn(context);
261 261
262 { 262 {
263 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:No"); 263 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:No");
264 KeyEventDoneCallback callback(false); 264 KeyEventDoneCallback callback(false);
265 const std::string expected_value = 265 const std::string expected_value =
266 "onKeyEvent::keydown:a:KeyA:false:false:false:false"; 266 "onKeyEvent::keydown:a:KeyA:false:false:false:false";
267 ExtensionTestMessageListener keyevent_listener(expected_value, false); 267 ExtensionTestMessageListener keyevent_listener(expected_value, false);
268 268
269 ui::KeyEvent key_event( 269 ui::KeyEvent key_event(
270 ui::ET_KEY_PRESSED, ui::VKEY_A, "KeyA", ui::EF_NONE, false); 270 ui::ET_KEY_PRESSED, ui::VKEY_A, "KeyA", ui::EF_NONE);
271 engine_handler->ProcessKeyEvent(key_event, 271 engine_handler->ProcessKeyEvent(key_event,
272 base::Bind(&KeyEventDoneCallback::Run, 272 base::Bind(&KeyEventDoneCallback::Run,
273 base::Unretained(&callback))); 273 base::Unretained(&callback)));
274 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 274 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
275 EXPECT_TRUE(keyevent_listener.was_satisfied()); 275 EXPECT_TRUE(keyevent_listener.was_satisfied());
276 callback.WaitUntilCalled(); 276 callback.WaitUntilCalled();
277 } 277 }
278 { 278 {
279 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:No, Shift:No, Caps:No"); 279 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:No, Shift:No, Caps:No");
280 KeyEventDoneCallback callback(false); 280 KeyEventDoneCallback callback(false);
281 const std::string expected_value = 281 const std::string expected_value =
282 "onKeyEvent::keydown:a:KeyA:true:false:false:false"; 282 "onKeyEvent::keydown:a:KeyA:true:false:false:false";
283 ExtensionTestMessageListener keyevent_listener(expected_value, false); 283 ExtensionTestMessageListener keyevent_listener(expected_value, false);
284 284
285 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, 285 ui::KeyEvent key_event(ui::ET_KEY_PRESSED,
286 ui::VKEY_A, 286 ui::VKEY_A,
287 "KeyA", 287 "KeyA",
288 ui::EF_CONTROL_DOWN, 288 ui::EF_CONTROL_DOWN);
289 false);
290 engine_handler->ProcessKeyEvent(key_event, 289 engine_handler->ProcessKeyEvent(key_event,
291 base::Bind(&KeyEventDoneCallback::Run, 290 base::Bind(&KeyEventDoneCallback::Run,
292 base::Unretained(&callback))); 291 base::Unretained(&callback)));
293 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 292 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
294 EXPECT_TRUE(keyevent_listener.was_satisfied()); 293 EXPECT_TRUE(keyevent_listener.was_satisfied());
295 callback.WaitUntilCalled(); 294 callback.WaitUntilCalled();
296 } 295 }
297 { 296 {
298 SCOPED_TRACE("KeyDown, Ctrl:No, alt:Yes, Shift:No, Caps:No"); 297 SCOPED_TRACE("KeyDown, Ctrl:No, alt:Yes, Shift:No, Caps:No");
299 KeyEventDoneCallback callback(false); 298 KeyEventDoneCallback callback(false);
300 const std::string expected_value = 299 const std::string expected_value =
301 "onKeyEvent::keydown:a:KeyA:false:true:false:false"; 300 "onKeyEvent::keydown:a:KeyA:false:true:false:false";
302 ExtensionTestMessageListener keyevent_listener(expected_value, false); 301 ExtensionTestMessageListener keyevent_listener(expected_value, false);
303 302
304 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, 303 ui::KeyEvent key_event(ui::ET_KEY_PRESSED,
305 ui::VKEY_A, 304 ui::VKEY_A,
306 "KeyA", 305 "KeyA",
307 ui::EF_ALT_DOWN, 306 ui::EF_ALT_DOWN);
308 false);
309 engine_handler->ProcessKeyEvent(key_event, 307 engine_handler->ProcessKeyEvent(key_event,
310 base::Bind(&KeyEventDoneCallback::Run, 308 base::Bind(&KeyEventDoneCallback::Run,
311 base::Unretained(&callback))); 309 base::Unretained(&callback)));
312 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 310 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
313 EXPECT_TRUE(keyevent_listener.was_satisfied()); 311 EXPECT_TRUE(keyevent_listener.was_satisfied());
314 callback.WaitUntilCalled(); 312 callback.WaitUntilCalled();
315 } 313 }
316 { 314 {
317 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:No"); 315 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:No");
318 KeyEventDoneCallback callback(false); 316 KeyEventDoneCallback callback(false);
319 const std::string expected_value = 317 const std::string expected_value =
320 "onKeyEvent::keydown:A:KeyA:false:false:true:false"; 318 "onKeyEvent::keydown:A:KeyA:false:false:true:false";
321 ExtensionTestMessageListener keyevent_listener(expected_value, false); 319 ExtensionTestMessageListener keyevent_listener(expected_value, false);
322 320
323 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, 321 ui::KeyEvent key_event(ui::ET_KEY_PRESSED,
324 ui::VKEY_A, 322 ui::VKEY_A,
325 "KeyA", 323 "KeyA",
326 ui::EF_SHIFT_DOWN, 324 ui::EF_SHIFT_DOWN);
327 false);
328 engine_handler->ProcessKeyEvent(key_event, 325 engine_handler->ProcessKeyEvent(key_event,
329 base::Bind(&KeyEventDoneCallback::Run, 326 base::Bind(&KeyEventDoneCallback::Run,
330 base::Unretained(&callback))); 327 base::Unretained(&callback)));
331 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 328 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
332 EXPECT_TRUE(keyevent_listener.was_satisfied()); 329 EXPECT_TRUE(keyevent_listener.was_satisfied());
333 callback.WaitUntilCalled(); 330 callback.WaitUntilCalled();
334 } 331 }
335 { 332 {
336 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:Yes"); 333 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:Yes");
337 KeyEventDoneCallback callback(false); 334 KeyEventDoneCallback callback(false);
338 const std::string expected_value = 335 const std::string expected_value =
339 "onKeyEvent::keydown:A:KeyA:false:false:false:true"; 336 "onKeyEvent::keydown:A:KeyA:false:false:false:true";
340 ExtensionTestMessageListener keyevent_listener(expected_value, false); 337 ExtensionTestMessageListener keyevent_listener(expected_value, false);
341 338
342 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, 339 ui::KeyEvent key_event(ui::ET_KEY_PRESSED,
343 ui::VKEY_A, 340 ui::VKEY_A,
344 "KeyA", 341 "KeyA",
345 ui::EF_CAPS_LOCK_DOWN, 342 ui::EF_CAPS_LOCK_DOWN);
346 false);
347 engine_handler->ProcessKeyEvent(key_event, 343 engine_handler->ProcessKeyEvent(key_event,
348 base::Bind(&KeyEventDoneCallback::Run, 344 base::Bind(&KeyEventDoneCallback::Run,
349 base::Unretained(&callback))); 345 base::Unretained(&callback)));
350 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 346 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
351 EXPECT_TRUE(keyevent_listener.was_satisfied()); 347 EXPECT_TRUE(keyevent_listener.was_satisfied());
352 callback.WaitUntilCalled(); 348 callback.WaitUntilCalled();
353 } 349 }
354 { 350 {
355 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:Yes, Shift:No, Caps:No"); 351 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:Yes, Shift:No, Caps:No");
356 KeyEventDoneCallback callback(false); 352 KeyEventDoneCallback callback(false);
357 const std::string expected_value = 353 const std::string expected_value =
358 "onKeyEvent::keydown:a:KeyA:true:true:false:false"; 354 "onKeyEvent::keydown:a:KeyA:true:true:false:false";
359 ExtensionTestMessageListener keyevent_listener(expected_value, false); 355 ExtensionTestMessageListener keyevent_listener(expected_value, false);
360 356
361 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, 357 ui::KeyEvent key_event(ui::ET_KEY_PRESSED,
362 ui::VKEY_A, 358 ui::VKEY_A,
363 "KeyA", 359 "KeyA",
364 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, 360 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN);
365 false);
366 engine_handler->ProcessKeyEvent(key_event, 361 engine_handler->ProcessKeyEvent(key_event,
367 base::Bind(&KeyEventDoneCallback::Run, 362 base::Bind(&KeyEventDoneCallback::Run,
368 base::Unretained(&callback))); 363 base::Unretained(&callback)));
369 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 364 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
370 EXPECT_TRUE(keyevent_listener.was_satisfied()); 365 EXPECT_TRUE(keyevent_listener.was_satisfied());
371 callback.WaitUntilCalled(); 366 callback.WaitUntilCalled();
372 } 367 }
373 { 368 {
374 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:Yes"); 369 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:Yes");
375 KeyEventDoneCallback callback(false); 370 KeyEventDoneCallback callback(false);
376 const std::string expected_value = 371 const std::string expected_value =
377 "onKeyEvent::keydown:a:KeyA:false:false:true:true"; 372 "onKeyEvent::keydown:a:KeyA:false:false:true:true";
378 ExtensionTestMessageListener keyevent_listener(expected_value, false); 373 ExtensionTestMessageListener keyevent_listener(expected_value, false);
379 374
380 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, 375 ui::KeyEvent key_event(ui::ET_KEY_PRESSED,
381 ui::VKEY_A, 376 ui::VKEY_A,
382 "KeyA", 377 "KeyA",
383 ui::EF_SHIFT_DOWN | ui::EF_CAPS_LOCK_DOWN, 378 ui::EF_SHIFT_DOWN | ui::EF_CAPS_LOCK_DOWN);
384 false);
385 engine_handler->ProcessKeyEvent(key_event, 379 engine_handler->ProcessKeyEvent(key_event,
386 base::Bind(&KeyEventDoneCallback::Run, 380 base::Bind(&KeyEventDoneCallback::Run,
387 base::Unretained(&callback))); 381 base::Unretained(&callback)));
388 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 382 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
389 EXPECT_TRUE(keyevent_listener.was_satisfied()); 383 EXPECT_TRUE(keyevent_listener.was_satisfied());
390 callback.WaitUntilCalled(); 384 callback.WaitUntilCalled();
391 } 385 }
392 // TODO(nona): Add browser tests for other API as well. 386 // TODO(nona): Add browser tests for other API as well.
393 { 387 {
394 SCOPED_TRACE("commitText test"); 388 SCOPED_TRACE("commitText test");
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 } 933 }
940 } 934 }
941 935
942 IMEBridge::Get()->SetInputContextHandler(NULL); 936 IMEBridge::Get()->SetInputContextHandler(NULL);
943 IMEBridge::Get()->SetCandidateWindowHandler(NULL); 937 IMEBridge::Get()->SetCandidateWindowHandler(NULL);
944 } 938 }
945 939
946 } // namespace 940 } // namespace
947 } // namespace input_method 941 } // namespace input_method
948 } // namespace chromeos 942 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698