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

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

Issue 1257603006: Refactoring for the InputMethod & InputMethodDelegate interfaces. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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_auralinux.h" 5 #include "ui/base/ime/input_method_auralinux.h"
6 6
7 #include "base/memory/singleton.h" 7 #include "base/memory/singleton.h"
8 #include "base/strings/string_split.h" 8 #include "base/strings/string_split.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 146
147 private: 147 private:
148 DISALLOW_COPY_AND_ASSIGN(LinuxInputMethodContextFactoryForTesting); 148 DISALLOW_COPY_AND_ASSIGN(LinuxInputMethodContextFactoryForTesting);
149 }; 149 };
150 150
151 class InputMethodDelegateForTesting : public internal::InputMethodDelegate { 151 class InputMethodDelegateForTesting : public internal::InputMethodDelegate {
152 public: 152 public:
153 InputMethodDelegateForTesting(){}; 153 InputMethodDelegateForTesting(){};
154 ~InputMethodDelegateForTesting() override{}; 154 ~InputMethodDelegateForTesting() override{};
155 155
156 bool DispatchKeyEventPostIME(const ui::KeyEvent& key_event) override { 156 ui::EventDispatchDetails DispatchKeyEventPostIME(
157 ui::KeyEvent* key_event) override {
157 std::string action; 158 std::string action;
158 switch (key_event.type()) { 159 switch (key_event->type()) {
159 case ET_KEY_PRESSED: 160 case ET_KEY_PRESSED:
160 action = "keydown:"; 161 action = "keydown:";
161 break; 162 break;
162 case ET_KEY_RELEASED: 163 case ET_KEY_RELEASED:
163 action = "keyup:"; 164 action = "keyup:";
164 break; 165 break;
165 default: 166 default:
166 break; 167 break;
167 } 168 }
168 std::stringstream ss; 169 std::stringstream ss;
169 ss << key_event.key_code(); 170 ss << key_event->key_code();
170 action += std::string(ss.str()); 171 action += std::string(ss.str());
171 TestResult::GetInstance()->RecordAction(base::ASCIIToUTF16(action)); 172 TestResult::GetInstance()->RecordAction(base::ASCIIToUTF16(action));
172 return false; 173 return ui::EventDispatchDetails();
173 } 174 }
174 175
175 private: 176 private:
176 DISALLOW_COPY_AND_ASSIGN(InputMethodDelegateForTesting); 177 DISALLOW_COPY_AND_ASSIGN(InputMethodDelegateForTesting);
177 }; 178 };
178 179
179 class TextInputClientForTesting : public DummyTextInputClient { 180 class TextInputClientForTesting : public DummyTextInputClient {
180 public: 181 public:
181 explicit TextInputClientForTesting(TextInputType text_input_type) 182 explicit TextInputClientForTesting(TextInputType text_input_type)
182 : DummyTextInputClient(text_input_type){}; 183 : DummyTextInputClient(text_input_type){};
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 context_->SetEatKey(true); 286 context_->SetEatKey(true);
286 context_->AddCommitAction("a"); 287 context_->AddCommitAction("a");
287 288
288 scoped_ptr<TextInputClientForTesting> client( 289 scoped_ptr<TextInputClientForTesting> client(
289 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 290 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
290 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 291 input_method_auralinux_->SetFocusedTextInputClient(client.get());
291 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 292 input_method_auralinux_->OnTextInputTypeChanged(client.get());
292 293
293 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 294 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
294 key.set_character(L'a'); 295 key.set_character(L'a');
295 input_method_auralinux_->DispatchKeyEvent(key); 296 input_method_auralinux_->DispatchKeyEvent(&key);
296 297
297 test_result_->ExpectAction("keydown:65"); 298 test_result_->ExpectAction("keydown:65");
298 test_result_->ExpectAction("keypress:97"); 299 test_result_->ExpectAction("keypress:97");
299 test_result_->Verify(); 300 test_result_->Verify();
300 301
301 input_method_auralinux_->DetachTextInputClient(client.get()); 302 input_method_auralinux_->DetachTextInputClient(client.get());
302 client.reset(new TextInputClientForTesting(TEXT_INPUT_TYPE_PASSWORD)); 303 client.reset(new TextInputClientForTesting(TEXT_INPUT_TYPE_PASSWORD));
303 context_simple_->SetSyncMode(true); 304 context_simple_->SetSyncMode(true);
304 context_simple_->SetEatKey(false); 305 context_simple_->SetEatKey(false);
305 306
306 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 307 input_method_auralinux_->SetFocusedTextInputClient(client.get());
307 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 308 input_method_auralinux_->OnTextInputTypeChanged(client.get());
308 input_method_auralinux_->DispatchKeyEvent(key); 309 input_method_auralinux_->DispatchKeyEvent(&key);
309 310
310 test_result_->ExpectAction("keydown:65"); 311 test_result_->ExpectAction("keydown:65");
311 test_result_->ExpectAction("keypress:97"); 312 test_result_->ExpectAction("keypress:97");
312 test_result_->Verify(); 313 test_result_->Verify();
313 } 314 }
314 315
315 TEST_F(InputMethodAuraLinuxTest, BasicAsyncModeTest) { 316 TEST_F(InputMethodAuraLinuxTest, BasicAsyncModeTest) {
316 context_->SetSyncMode(false); 317 context_->SetSyncMode(false);
317 context_->SetEatKey(true); 318 context_->SetEatKey(true);
318 319
319 scoped_ptr<TextInputClientForTesting> client( 320 scoped_ptr<TextInputClientForTesting> client(
320 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 321 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
321 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 322 input_method_auralinux_->SetFocusedTextInputClient(client.get());
322 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 323 input_method_auralinux_->OnTextInputTypeChanged(client.get());
323 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 324 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
324 key.set_character(L'a'); 325 key.set_character(L'a');
325 input_method_auralinux_->DispatchKeyEvent(key); 326 input_method_auralinux_->DispatchKeyEvent(&key);
326 input_method_auralinux_->OnCommit(base::ASCIIToUTF16("a")); 327 input_method_auralinux_->OnCommit(base::ASCIIToUTF16("a"));
327 328
328 test_result_->ExpectAction("keydown:229"); 329 test_result_->ExpectAction("keydown:229");
329 test_result_->ExpectAction("textinput:a"); 330 test_result_->ExpectAction("textinput:a");
330 test_result_->Verify(); 331 test_result_->Verify();
331 332
332 input_method_auralinux_->DetachTextInputClient(client.get()); 333 input_method_auralinux_->DetachTextInputClient(client.get());
333 client.reset(new TextInputClientForTesting(TEXT_INPUT_TYPE_PASSWORD)); 334 client.reset(new TextInputClientForTesting(TEXT_INPUT_TYPE_PASSWORD));
334 context_simple_->SetSyncMode(false); 335 context_simple_->SetSyncMode(false);
335 context_simple_->SetEatKey(false); 336 context_simple_->SetEatKey(false);
336 337
337 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 338 input_method_auralinux_->SetFocusedTextInputClient(client.get());
338 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 339 input_method_auralinux_->OnTextInputTypeChanged(client.get());
339 input_method_auralinux_->DispatchKeyEvent(key); 340 input_method_auralinux_->DispatchKeyEvent(&key);
340 341
341 test_result_->ExpectAction("keydown:65"); 342 test_result_->ExpectAction("keydown:65");
342 test_result_->ExpectAction("keypress:97"); 343 test_result_->ExpectAction("keypress:97");
343 test_result_->Verify(); 344 test_result_->Verify();
344 } 345 }
345 346
346 TEST_F(InputMethodAuraLinuxTest, IBusUSTest) { 347 TEST_F(InputMethodAuraLinuxTest, IBusUSTest) {
347 context_->SetSyncMode(false); 348 context_->SetSyncMode(false);
348 context_->SetEatKey(true); 349 context_->SetEatKey(true);
349 350
350 scoped_ptr<TextInputClientForTesting> client( 351 scoped_ptr<TextInputClientForTesting> client(
351 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 352 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
352 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 353 input_method_auralinux_->SetFocusedTextInputClient(client.get());
353 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 354 input_method_auralinux_->OnTextInputTypeChanged(client.get());
354 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 355 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
355 key.set_character(L'a'); 356 key.set_character(L'a');
356 input_method_auralinux_->DispatchKeyEvent(key); 357 input_method_auralinux_->DispatchKeyEvent(&key);
357 358
358 // IBus mutes the key down. 359 // IBus mutes the key down.
359 test_result_->Verify(); 360 test_result_->Verify();
360 361
361 // IBus simulates a faked key down and handle it in sync mode. 362 // IBus simulates a faked key down and handle it in sync mode.
362 context_->SetSyncMode(true); 363 context_->SetSyncMode(true);
363 context_->AddCommitAction("a"); 364 context_->AddCommitAction("a");
364 input_method_auralinux_->DispatchKeyEvent(key); 365 input_method_auralinux_->DispatchKeyEvent(&key);
365 366
366 test_result_->ExpectAction("keydown:65"); 367 test_result_->ExpectAction("keydown:65");
367 test_result_->ExpectAction("keypress:97"); 368 test_result_->ExpectAction("keypress:97");
368 test_result_->Verify(); 369 test_result_->Verify();
369 370
370 // IBus does NOT handle the key up. 371 // IBus does NOT handle the key up.
371 context_->SetEatKey(false); 372 context_->SetEatKey(false);
372 input_method_auralinux_->DispatchKeyEvent( 373 KeyEvent key_up(ET_KEY_RELEASED, VKEY_A, 0);
373 KeyEvent(ET_KEY_RELEASED, VKEY_A, 0)); 374 input_method_auralinux_->DispatchKeyEvent(&key_up);
374 375
375 test_result_->ExpectAction("keyup:65"); 376 test_result_->ExpectAction("keyup:65");
376 test_result_->Verify(); 377 test_result_->Verify();
377 } 378 }
378 379
379 TEST_F(InputMethodAuraLinuxTest, IBusPinyinTest) { 380 TEST_F(InputMethodAuraLinuxTest, IBusPinyinTest) {
380 context_->SetSyncMode(false); 381 context_->SetSyncMode(false);
381 context_->SetEatKey(true); 382 context_->SetEatKey(true);
382 383
383 scoped_ptr<TextInputClientForTesting> client( 384 scoped_ptr<TextInputClientForTesting> client(
384 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 385 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
385 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 386 input_method_auralinux_->SetFocusedTextInputClient(client.get());
386 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 387 input_method_auralinux_->OnTextInputTypeChanged(client.get());
387 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 388 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
388 key.set_character(L'a'); 389 key.set_character(L'a');
389 input_method_auralinux_->DispatchKeyEvent(key); 390 input_method_auralinux_->DispatchKeyEvent(&key);
390 391
391 // IBus issues a standalone set_composition action. 392 // IBus issues a standalone set_composition action.
392 input_method_auralinux_->OnPreeditStart(); 393 input_method_auralinux_->OnPreeditStart();
393 CompositionText comp; 394 CompositionText comp;
394 comp.text = base::ASCIIToUTF16("a"); 395 comp.text = base::ASCIIToUTF16("a");
395 input_method_auralinux_->OnPreeditChanged(comp); 396 input_method_auralinux_->OnPreeditChanged(comp);
396 397
397 test_result_->ExpectAction("keydown:229"); 398 test_result_->ExpectAction("keydown:229");
398 test_result_->ExpectAction("compositionstart"); 399 test_result_->ExpectAction("compositionstart");
399 test_result_->ExpectAction("compositionupdate:a"); 400 test_result_->ExpectAction("compositionupdate:a");
400 test_result_->Verify(); 401 test_result_->Verify();
401 402
402 // IBus issues a commit text with composition after muting the space key down. 403 // IBus issues a commit text with composition after muting the space key down.
403 input_method_auralinux_->DispatchKeyEvent( 404 KeyEvent key_up(ET_KEY_RELEASED, VKEY_SPACE, 0);
404 KeyEvent(ET_KEY_PRESSED, VKEY_SPACE, 0)); 405 input_method_auralinux_->DispatchKeyEvent(&key_up);
405 406
406 input_method_auralinux_->OnPreeditEnd(); 407 input_method_auralinux_->OnPreeditEnd();
407 input_method_auralinux_->OnCommit(base::ASCIIToUTF16("A")); 408 input_method_auralinux_->OnCommit(base::ASCIIToUTF16("A"));
408 409
409 test_result_->ExpectAction("keydown:229"); 410 test_result_->ExpectAction("keydown:229");
410 test_result_->ExpectAction("compositionend"); 411 test_result_->ExpectAction("compositionend");
411 test_result_->ExpectAction("keydown:229"); 412 test_result_->ExpectAction("keydown:229");
412 test_result_->ExpectAction("textinput:A"); 413 test_result_->ExpectAction("textinput:A");
413 test_result_->Verify(); 414 test_result_->Verify();
414 } 415 }
415 416
416 // crbug.com/463491 417 // crbug.com/463491
417 TEST_F(InputMethodAuraLinuxTest, DeadKeyTest) { 418 TEST_F(InputMethodAuraLinuxTest, DeadKeyTest) {
418 context_simple_->SetSyncMode(true); 419 context_simple_->SetSyncMode(true);
419 context_simple_->SetEatKey(true); 420 context_simple_->SetEatKey(true);
420 421
421 scoped_ptr<TextInputClientForTesting> client( 422 scoped_ptr<TextInputClientForTesting> client(
422 new TextInputClientForTesting(TEXT_INPUT_TYPE_NONE)); 423 new TextInputClientForTesting(TEXT_INPUT_TYPE_NONE));
423 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 424 input_method_auralinux_->SetFocusedTextInputClient(client.get());
424 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 425 input_method_auralinux_->OnTextInputTypeChanged(client.get());
425 426
426 KeyEvent dead_key(ET_KEY_PRESSED, VKEY_OEM_7, 0); 427 KeyEvent dead_key(ET_KEY_PRESSED, VKEY_OEM_7, 0);
427 dead_key.set_character(L'\''); 428 dead_key.set_character(L'\'');
428 input_method_auralinux_->DispatchKeyEvent(dead_key); 429 input_method_auralinux_->DispatchKeyEvent(&dead_key);
429 430
430 // The single quote key is muted. 431 // The single quote key is muted.
431 test_result_->ExpectAction("keydown:222"); 432 test_result_->ExpectAction("keydown:222");
432 test_result_->Verify(); 433 test_result_->Verify();
433 434
434 context_simple_->AddCommitAction("X"); 435 context_simple_->AddCommitAction("X");
435 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 436 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
436 key.set_character(L'a'); 437 key.set_character(L'a');
437 input_method_auralinux_->DispatchKeyEvent(key); 438 input_method_auralinux_->DispatchKeyEvent(&key);
438 439
439 // The following A key generates the accent key: á. 440 // The following A key generates the accent key: á.
440 test_result_->ExpectAction("keydown:65"); 441 test_result_->ExpectAction("keydown:65");
441 test_result_->ExpectAction("keypress:88"); 442 test_result_->ExpectAction("keypress:88");
442 test_result_->Verify(); 443 test_result_->Verify();
443 } 444 }
444 445
445 TEST_F(InputMethodAuraLinuxTest, MultiCommitsTest) { 446 TEST_F(InputMethodAuraLinuxTest, MultiCommitsTest) {
446 context_->SetSyncMode(true); 447 context_->SetSyncMode(true);
447 context_->SetEatKey(true); 448 context_->SetEatKey(true);
448 context_->AddCommitAction("a"); 449 context_->AddCommitAction("a");
449 context_->AddCommitAction("b"); 450 context_->AddCommitAction("b");
450 context_->AddCommitAction("c"); 451 context_->AddCommitAction("c");
451 452
452 scoped_ptr<TextInputClientForTesting> client( 453 scoped_ptr<TextInputClientForTesting> client(
453 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 454 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
454 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 455 input_method_auralinux_->SetFocusedTextInputClient(client.get());
455 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 456 input_method_auralinux_->OnTextInputTypeChanged(client.get());
456 457
457 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 458 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
458 key.set_character(L'a'); 459 key.set_character(L'a');
459 input_method_auralinux_->DispatchKeyEvent(key); 460 input_method_auralinux_->DispatchKeyEvent(&key);
460 461
461 test_result_->ExpectAction("keydown:229"); 462 test_result_->ExpectAction("keydown:229");
462 test_result_->ExpectAction("textinput:abc"); 463 test_result_->ExpectAction("textinput:abc");
463 test_result_->Verify(); 464 test_result_->Verify();
464 } 465 }
465 466
466 TEST_F(InputMethodAuraLinuxTest, MixedCompositionAndCommitTest) { 467 TEST_F(InputMethodAuraLinuxTest, MixedCompositionAndCommitTest) {
467 context_->SetSyncMode(true); 468 context_->SetSyncMode(true);
468 context_->SetEatKey(true); 469 context_->SetEatKey(true);
469 context_->AddCommitAction("a"); 470 context_->AddCommitAction("a");
470 context_->AddCompositionStartAction(); 471 context_->AddCompositionStartAction();
471 context_->AddCompositionUpdateAction("b"); 472 context_->AddCompositionUpdateAction("b");
472 context_->AddCommitAction("c"); 473 context_->AddCommitAction("c");
473 context_->AddCompositionUpdateAction("d"); 474 context_->AddCompositionUpdateAction("d");
474 475
475 scoped_ptr<TextInputClientForTesting> client( 476 scoped_ptr<TextInputClientForTesting> client(
476 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 477 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
477 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 478 input_method_auralinux_->SetFocusedTextInputClient(client.get());
478 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 479 input_method_auralinux_->OnTextInputTypeChanged(client.get());
479 480
480 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 481 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
481 key.set_character(L'a'); 482 key.set_character(L'a');
482 input_method_auralinux_->DispatchKeyEvent(key); 483 input_method_auralinux_->DispatchKeyEvent(&key);
483 484
484 test_result_->ExpectAction("keydown:229"); 485 test_result_->ExpectAction("keydown:229");
485 test_result_->ExpectAction("textinput:ac"); 486 test_result_->ExpectAction("textinput:ac");
486 test_result_->ExpectAction("compositionstart"); 487 test_result_->ExpectAction("compositionstart");
487 test_result_->ExpectAction("compositionupdate:d"); 488 test_result_->ExpectAction("compositionupdate:d");
488 test_result_->Verify(); 489 test_result_->Verify();
489 490
490 context_->AddCommitAction("e"); 491 context_->AddCommitAction("e");
491 input_method_auralinux_->DispatchKeyEvent(key); 492 input_method_auralinux_->DispatchKeyEvent(&key);
492 493
493 test_result_->ExpectAction("keydown:229"); 494 test_result_->ExpectAction("keydown:229");
494 test_result_->ExpectAction("compositionend"); 495 test_result_->ExpectAction("compositionend");
495 test_result_->ExpectAction("textinput:e"); 496 test_result_->ExpectAction("textinput:e");
496 test_result_->Verify(); 497 test_result_->Verify();
497 } 498 }
498 499
499 TEST_F(InputMethodAuraLinuxTest, CompositionEndWithoutCommitTest) { 500 TEST_F(InputMethodAuraLinuxTest, CompositionEndWithoutCommitTest) {
500 context_->SetSyncMode(true); 501 context_->SetSyncMode(true);
501 context_->SetEatKey(true); 502 context_->SetEatKey(true);
502 context_->AddCompositionStartAction(); 503 context_->AddCompositionStartAction();
503 context_->AddCompositionUpdateAction("a"); 504 context_->AddCompositionUpdateAction("a");
504 505
505 scoped_ptr<TextInputClientForTesting> client( 506 scoped_ptr<TextInputClientForTesting> client(
506 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 507 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
507 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 508 input_method_auralinux_->SetFocusedTextInputClient(client.get());
508 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 509 input_method_auralinux_->OnTextInputTypeChanged(client.get());
509 510
510 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 511 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
511 key.set_character(L'a'); 512 key.set_character(L'a');
512 input_method_auralinux_->DispatchKeyEvent(key); 513 input_method_auralinux_->DispatchKeyEvent(&key);
513 514
514 test_result_->ExpectAction("keydown:229"); 515 test_result_->ExpectAction("keydown:229");
515 test_result_->ExpectAction("compositionstart"); 516 test_result_->ExpectAction("compositionstart");
516 test_result_->ExpectAction("compositionupdate:a"); 517 test_result_->ExpectAction("compositionupdate:a");
517 test_result_->Verify(); 518 test_result_->Verify();
518 519
519 context_->AddCompositionEndAction(); 520 context_->AddCompositionEndAction();
520 input_method_auralinux_->DispatchKeyEvent(key); 521 input_method_auralinux_->DispatchKeyEvent(&key);
521 522
522 test_result_->ExpectAction("keydown:229"); 523 test_result_->ExpectAction("keydown:229");
523 test_result_->ExpectAction("compositionend"); 524 test_result_->ExpectAction("compositionend");
524 test_result_->Verify(); 525 test_result_->Verify();
525 } 526 }
526 527
527 TEST_F(InputMethodAuraLinuxTest, CompositionEndWithEmptyCommitTest) { 528 TEST_F(InputMethodAuraLinuxTest, CompositionEndWithEmptyCommitTest) {
528 context_->SetSyncMode(true); 529 context_->SetSyncMode(true);
529 context_->SetEatKey(true); 530 context_->SetEatKey(true);
530 context_->AddCompositionStartAction(); 531 context_->AddCompositionStartAction();
531 context_->AddCompositionUpdateAction("a"); 532 context_->AddCompositionUpdateAction("a");
532 533
533 scoped_ptr<TextInputClientForTesting> client( 534 scoped_ptr<TextInputClientForTesting> client(
534 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 535 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
535 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 536 input_method_auralinux_->SetFocusedTextInputClient(client.get());
536 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 537 input_method_auralinux_->OnTextInputTypeChanged(client.get());
537 538
538 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 539 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
539 key.set_character(L'a'); 540 key.set_character(L'a');
540 input_method_auralinux_->DispatchKeyEvent(key); 541 input_method_auralinux_->DispatchKeyEvent(&key);
541 542
542 test_result_->ExpectAction("keydown:229"); 543 test_result_->ExpectAction("keydown:229");
543 test_result_->ExpectAction("compositionstart"); 544 test_result_->ExpectAction("compositionstart");
544 test_result_->ExpectAction("compositionupdate:a"); 545 test_result_->ExpectAction("compositionupdate:a");
545 test_result_->Verify(); 546 test_result_->Verify();
546 547
547 context_->AddCompositionEndAction(); 548 context_->AddCompositionEndAction();
548 context_->AddCommitAction(""); 549 context_->AddCommitAction("");
549 input_method_auralinux_->DispatchKeyEvent(key); 550 input_method_auralinux_->DispatchKeyEvent(&key);
550 551
551 test_result_->ExpectAction("keydown:229"); 552 test_result_->ExpectAction("keydown:229");
552 test_result_->ExpectAction("compositionend"); 553 test_result_->ExpectAction("compositionend");
553 test_result_->Verify(); 554 test_result_->Verify();
554 } 555 }
555 556
556 TEST_F(InputMethodAuraLinuxTest, CompositionEndWithCommitTest) { 557 TEST_F(InputMethodAuraLinuxTest, CompositionEndWithCommitTest) {
557 context_->SetSyncMode(true); 558 context_->SetSyncMode(true);
558 context_->SetEatKey(true); 559 context_->SetEatKey(true);
559 context_->AddCompositionStartAction(); 560 context_->AddCompositionStartAction();
560 context_->AddCompositionUpdateAction("a"); 561 context_->AddCompositionUpdateAction("a");
561 562
562 scoped_ptr<TextInputClientForTesting> client( 563 scoped_ptr<TextInputClientForTesting> client(
563 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 564 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
564 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 565 input_method_auralinux_->SetFocusedTextInputClient(client.get());
565 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 566 input_method_auralinux_->OnTextInputTypeChanged(client.get());
566 567
567 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 568 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
568 key.set_character(L'a'); 569 key.set_character(L'a');
569 input_method_auralinux_->DispatchKeyEvent(key); 570 input_method_auralinux_->DispatchKeyEvent(&key);
570 571
571 test_result_->ExpectAction("keydown:229"); 572 test_result_->ExpectAction("keydown:229");
572 test_result_->ExpectAction("compositionstart"); 573 test_result_->ExpectAction("compositionstart");
573 test_result_->ExpectAction("compositionupdate:a"); 574 test_result_->ExpectAction("compositionupdate:a");
574 test_result_->Verify(); 575 test_result_->Verify();
575 576
576 context_->AddCompositionEndAction(); 577 context_->AddCompositionEndAction();
577 context_->AddCommitAction("b"); 578 context_->AddCommitAction("b");
578 input_method_auralinux_->DispatchKeyEvent(key); 579 input_method_auralinux_->DispatchKeyEvent(&key);
579 580
580 // Verifies single char commit under composition mode will call InsertText 581 // Verifies single char commit under composition mode will call InsertText
581 // intead of InsertChar. 582 // intead of InsertChar.
582 test_result_->ExpectAction("keydown:229"); 583 test_result_->ExpectAction("keydown:229");
583 test_result_->ExpectAction("compositionend"); 584 test_result_->ExpectAction("compositionend");
584 test_result_->ExpectAction("textinput:b"); 585 test_result_->ExpectAction("textinput:b");
585 test_result_->Verify(); 586 test_result_->Verify();
586 } 587 }
587 588
588 TEST_F(InputMethodAuraLinuxTest, CompositionUpdateWithCommitTest) { 589 TEST_F(InputMethodAuraLinuxTest, CompositionUpdateWithCommitTest) {
589 context_->SetSyncMode(true); 590 context_->SetSyncMode(true);
590 context_->SetEatKey(true); 591 context_->SetEatKey(true);
591 context_->AddCompositionStartAction(); 592 context_->AddCompositionStartAction();
592 context_->AddCompositionUpdateAction("a"); 593 context_->AddCompositionUpdateAction("a");
593 context_->AddCommitAction("b"); 594 context_->AddCommitAction("b");
594 595
595 scoped_ptr<TextInputClientForTesting> client( 596 scoped_ptr<TextInputClientForTesting> client(
596 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 597 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
597 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 598 input_method_auralinux_->SetFocusedTextInputClient(client.get());
598 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 599 input_method_auralinux_->OnTextInputTypeChanged(client.get());
599 600
600 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 601 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
601 key.set_character(L'a'); 602 key.set_character(L'a');
602 input_method_auralinux_->DispatchKeyEvent(key); 603 input_method_auralinux_->DispatchKeyEvent(&key);
603 604
604 test_result_->ExpectAction("keydown:229"); 605 test_result_->ExpectAction("keydown:229");
605 test_result_->ExpectAction("textinput:b"); 606 test_result_->ExpectAction("textinput:b");
606 test_result_->ExpectAction("compositionstart"); 607 test_result_->ExpectAction("compositionstart");
607 test_result_->ExpectAction("compositionupdate:a"); 608 test_result_->ExpectAction("compositionupdate:a");
608 test_result_->Verify(); 609 test_result_->Verify();
609 610
610 // crbug.com/513124. 611 // crbug.com/513124.
611 context_->SetSyncMode(true); 612 context_->SetSyncMode(true);
612 context_->SetEatKey(true); 613 context_->SetEatKey(true);
613 context_->AddCommitAction("c"); 614 context_->AddCommitAction("c");
614 context_->AddCompositionUpdateAction(""); 615 context_->AddCompositionUpdateAction("");
615 input_method_auralinux_->DispatchKeyEvent(key); 616 input_method_auralinux_->DispatchKeyEvent(&key);
616 617
617 test_result_->ExpectAction("keydown:229"); 618 test_result_->ExpectAction("keydown:229");
618 test_result_->ExpectAction("compositionend"); 619 test_result_->ExpectAction("compositionend");
619 test_result_->ExpectAction("textinput:c"); 620 test_result_->ExpectAction("textinput:c");
620 test_result_->Verify(); 621 test_result_->Verify();
621 } 622 }
622 623
623 TEST_F(InputMethodAuraLinuxTest, MixedAsyncAndSyncTest) { 624 TEST_F(InputMethodAuraLinuxTest, MixedAsyncAndSyncTest) {
624 context_->SetSyncMode(false); 625 context_->SetSyncMode(false);
625 context_->SetEatKey(true); 626 context_->SetEatKey(true);
626 627
627 scoped_ptr<TextInputClientForTesting> client( 628 scoped_ptr<TextInputClientForTesting> client(
628 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 629 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
629 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 630 input_method_auralinux_->SetFocusedTextInputClient(client.get());
630 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 631 input_method_auralinux_->OnTextInputTypeChanged(client.get());
631 632
632 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 633 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
633 key.set_character(L'a'); 634 key.set_character(L'a');
634 input_method_auralinux_->DispatchKeyEvent(key); 635 input_method_auralinux_->DispatchKeyEvent(&key);
635 CompositionText comp; 636 CompositionText comp;
636 comp.text = base::ASCIIToUTF16("a"); 637 comp.text = base::ASCIIToUTF16("a");
637 input_method_auralinux_->OnPreeditChanged(comp); 638 input_method_auralinux_->OnPreeditChanged(comp);
638 639
639 test_result_->ExpectAction("keydown:229"); 640 test_result_->ExpectAction("keydown:229");
640 test_result_->ExpectAction("compositionstart"); 641 test_result_->ExpectAction("compositionstart");
641 test_result_->ExpectAction("compositionupdate:a"); 642 test_result_->ExpectAction("compositionupdate:a");
642 test_result_->Verify(); 643 test_result_->Verify();
643 644
644 context_->SetSyncMode(true); 645 context_->SetSyncMode(true);
645 context_->AddCompositionEndAction(); 646 context_->AddCompositionEndAction();
646 context_->AddCommitAction("b"); 647 context_->AddCommitAction("b");
647 648
648 input_method_auralinux_->DispatchKeyEvent(key); 649 input_method_auralinux_->DispatchKeyEvent(&key);
649 650
650 test_result_->ExpectAction("keydown:229"); 651 test_result_->ExpectAction("keydown:229");
651 test_result_->ExpectAction("compositionend"); 652 test_result_->ExpectAction("compositionend");
652 test_result_->ExpectAction("textinput:b"); 653 test_result_->ExpectAction("textinput:b");
653 test_result_->Verify(); 654 test_result_->Verify();
654 } 655 }
655 656
656 TEST_F(InputMethodAuraLinuxTest, MixedSyncAndAsyncTest) { 657 TEST_F(InputMethodAuraLinuxTest, MixedSyncAndAsyncTest) {
657 context_->SetSyncMode(true); 658 context_->SetSyncMode(true);
658 context_->SetEatKey(true); 659 context_->SetEatKey(true);
659 context_->AddCompositionStartAction(); 660 context_->AddCompositionStartAction();
660 context_->AddCompositionUpdateAction("a"); 661 context_->AddCompositionUpdateAction("a");
661 662
662 scoped_ptr<TextInputClientForTesting> client( 663 scoped_ptr<TextInputClientForTesting> client(
663 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 664 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
664 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 665 input_method_auralinux_->SetFocusedTextInputClient(client.get());
665 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 666 input_method_auralinux_->OnTextInputTypeChanged(client.get());
666 667
667 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 668 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
668 key.set_character(L'a'); 669 key.set_character(L'a');
669 input_method_auralinux_->DispatchKeyEvent(key); 670 input_method_auralinux_->DispatchKeyEvent(&key);
670 671
671 test_result_->ExpectAction("keydown:229"); 672 test_result_->ExpectAction("keydown:229");
672 test_result_->ExpectAction("compositionstart"); 673 test_result_->ExpectAction("compositionstart");
673 test_result_->ExpectAction("compositionupdate:a"); 674 test_result_->ExpectAction("compositionupdate:a");
674 test_result_->Verify(); 675 test_result_->Verify();
675 676
676 context_->SetSyncMode(false); 677 context_->SetSyncMode(false);
677 678
678 input_method_auralinux_->DispatchKeyEvent(key); 679 input_method_auralinux_->DispatchKeyEvent(&key);
679 input_method_auralinux_->OnCommit(base::ASCIIToUTF16("b")); 680 input_method_auralinux_->OnCommit(base::ASCIIToUTF16("b"));
680 681
681 test_result_->ExpectAction("keydown:229"); 682 test_result_->ExpectAction("keydown:229");
682 test_result_->ExpectAction("compositionend"); 683 test_result_->ExpectAction("compositionend");
683 test_result_->ExpectAction("textinput:b"); 684 test_result_->ExpectAction("textinput:b");
684 test_result_->Verify(); 685 test_result_->Verify();
685 686
686 context_->SetSyncMode(true); 687 context_->SetSyncMode(true);
687 context_->AddCommitAction("c"); 688 context_->AddCommitAction("c");
688 input_method_auralinux_->DispatchKeyEvent(key); 689 input_method_auralinux_->DispatchKeyEvent(&key);
689 690
690 test_result_->ExpectAction("keydown:65"); 691 test_result_->ExpectAction("keydown:65");
691 test_result_->ExpectAction("keypress:99"); 692 test_result_->ExpectAction("keypress:99");
692 test_result_->Verify(); 693 test_result_->Verify();
693 } 694 }
694 695
695 TEST_F(InputMethodAuraLinuxTest, ReleaseKeyTest) { 696 TEST_F(InputMethodAuraLinuxTest, ReleaseKeyTest) {
696 context_->SetSyncMode(true); 697 context_->SetSyncMode(true);
697 context_->SetEatKey(true); 698 context_->SetEatKey(true);
698 context_->AddCompositionUpdateAction("a"); 699 context_->AddCompositionUpdateAction("a");
699 700
700 scoped_ptr<TextInputClientForTesting> client( 701 scoped_ptr<TextInputClientForTesting> client(
701 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT)); 702 new TextInputClientForTesting(TEXT_INPUT_TYPE_TEXT));
702 input_method_auralinux_->SetFocusedTextInputClient(client.get()); 703 input_method_auralinux_->SetFocusedTextInputClient(client.get());
703 input_method_auralinux_->OnTextInputTypeChanged(client.get()); 704 input_method_auralinux_->OnTextInputTypeChanged(client.get());
704 705
705 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0); 706 KeyEvent key(ET_KEY_PRESSED, VKEY_A, 0);
706 key.set_character(L'A'); 707 key.set_character(L'A');
707 input_method_auralinux_->DispatchKeyEvent(key); 708 input_method_auralinux_->DispatchKeyEvent(&key);
708 709
709 test_result_->ExpectAction("keydown:229"); 710 test_result_->ExpectAction("keydown:229");
710 test_result_->ExpectAction("compositionstart"); 711 test_result_->ExpectAction("compositionstart");
711 test_result_->ExpectAction("compositionupdate:a"); 712 test_result_->ExpectAction("compositionupdate:a");
712 test_result_->Verify(); 713 test_result_->Verify();
713 714
714 context_->SetEatKey(false); 715 context_->SetEatKey(false);
715 context_->AddCommitAction("b"); 716 context_->AddCommitAction("b");
716 input_method_auralinux_->DispatchKeyEvent(key); 717 input_method_auralinux_->DispatchKeyEvent(&key);
717 718
718 test_result_->ExpectAction("compositionend"); 719 test_result_->ExpectAction("compositionend");
719 test_result_->ExpectAction("textinput:b"); 720 test_result_->ExpectAction("textinput:b");
720 test_result_->ExpectAction("keydown:65"); 721 test_result_->ExpectAction("keydown:65");
721 test_result_->ExpectAction("keypress:65"); 722 test_result_->ExpectAction("keypress:65");
722 test_result_->Verify(); 723 test_result_->Verify();
723 724
724 context_->AddCommitAction("c"); 725 context_->AddCommitAction("c");
725 input_method_auralinux_->DispatchKeyEvent(key); 726 input_method_auralinux_->DispatchKeyEvent(&key);
726 727
727 test_result_->ExpectAction("textinput:c"); 728 test_result_->ExpectAction("textinput:c");
728 test_result_->ExpectAction("keydown:65"); 729 test_result_->ExpectAction("keydown:65");
729 test_result_->ExpectAction("keypress:65"); 730 test_result_->ExpectAction("keypress:65");
730 test_result_->Verify(); 731 test_result_->Verify();
731 } 732 }
732 733
733 } // namespace 734 } // namespace
734 } // namespace ui 735 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698