OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/input_method/input_method_manager_impl.h" | 5 #include "chrome/browser/chromeos/input_method/input_method_manager_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "ash/ime/input_method_menu_item.h" | 9 #include "ash/ime/input_method_menu_item.h" |
10 #include "ash/ime/input_method_menu_manager.h" | 10 #include "ash/ime/input_method_menu_manager.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 ext_xkb.description = "ext_xkb_description"; | 87 ext_xkb.description = "ext_xkb_description"; |
88 ext_xkb.path = base::FilePath("ext_xkb_file_path"); | 88 ext_xkb.path = base::FilePath("ext_xkb_file_path"); |
89 | 89 |
90 ComponentExtensionEngine ext_xkb_engine_us; | 90 ComponentExtensionEngine ext_xkb_engine_us; |
91 ext_xkb_engine_us.engine_id = "xkb:us::eng"; | 91 ext_xkb_engine_us.engine_id = "xkb:us::eng"; |
92 ext_xkb_engine_us.display_name = "xkb:us::eng"; | 92 ext_xkb_engine_us.display_name = "xkb:us::eng"; |
93 ext_xkb_engine_us.language_codes.push_back("en-US"); | 93 ext_xkb_engine_us.language_codes.push_back("en-US"); |
94 ext_xkb_engine_us.layouts.push_back("us"); | 94 ext_xkb_engine_us.layouts.push_back("us"); |
95 ext_xkb.engines.push_back(ext_xkb_engine_us); | 95 ext_xkb.engines.push_back(ext_xkb_engine_us); |
96 | 96 |
97 ComponentExtensionEngine ext_xkb_engine_dvorak; | |
98 ext_xkb_engine_dvorak.engine_id = "xkb:us:dvorak:eng"; | |
99 ext_xkb_engine_dvorak.display_name = "xkb:us:dvorak:eng"; | |
100 ext_xkb_engine_dvorak.language_codes.push_back("en-US"); | |
101 ext_xkb_engine_dvorak.layouts.push_back("us(dvorak)"); | |
102 ext_xkb.engines.push_back(ext_xkb_engine_dvorak); | |
103 | |
104 ComponentExtensionEngine ext_xkb_engine_intl; | 97 ComponentExtensionEngine ext_xkb_engine_intl; |
105 ext_xkb_engine_intl.engine_id = "xkb:us:intl:eng"; | 98 ext_xkb_engine_intl.engine_id = "xkb:us:intl:eng"; |
106 ext_xkb_engine_intl.display_name = "xkb:us:intl:eng"; | 99 ext_xkb_engine_intl.display_name = "xkb:us:intl:eng"; |
107 ext_xkb_engine_intl.language_codes.push_back("en-US"); | 100 ext_xkb_engine_intl.language_codes.push_back("en-US"); |
108 ext_xkb_engine_intl.layouts.push_back("us(intl)"); | 101 ext_xkb_engine_intl.layouts.push_back("us(intl)"); |
109 ext_xkb.engines.push_back(ext_xkb_engine_intl); | 102 ext_xkb.engines.push_back(ext_xkb_engine_intl); |
110 | 103 |
111 ComponentExtensionEngine ext_xkb_engine_altgr_intl; | 104 ComponentExtensionEngine ext_xkb_engine_altgr_intl; |
112 ext_xkb_engine_altgr_intl.engine_id = "xkb:us:altgr-intl:eng"; | 105 ext_xkb_engine_altgr_intl.engine_id = "xkb:us:altgr-intl:eng"; |
113 ext_xkb_engine_altgr_intl.display_name = "xkb:us:altgr-intl:eng"; | 106 ext_xkb_engine_altgr_intl.display_name = "xkb:us:altgr-intl:eng"; |
114 ext_xkb_engine_altgr_intl.language_codes.push_back("en-US"); | 107 ext_xkb_engine_altgr_intl.language_codes.push_back("en-US"); |
115 ext_xkb_engine_altgr_intl.layouts.push_back("us(altgr-intl)"); | 108 ext_xkb_engine_altgr_intl.layouts.push_back("us(altgr-intl)"); |
116 ext_xkb.engines.push_back(ext_xkb_engine_altgr_intl); | 109 ext_xkb.engines.push_back(ext_xkb_engine_altgr_intl); |
117 | 110 |
118 ComponentExtensionEngine ext_xkb_engine_fr; | 111 ComponentExtensionEngine ext_xkb_engine_dvorak; |
119 ext_xkb_engine_fr.engine_id = "xkb:fr::fra"; | 112 ext_xkb_engine_dvorak.engine_id = "xkb:us:dvorak:eng"; |
120 ext_xkb_engine_fr.display_name = "xkb:fr::fra"; | 113 ext_xkb_engine_dvorak.display_name = "xkb:us:dvorak:eng"; |
121 ext_xkb_engine_fr.language_codes.push_back("fr"); | 114 ext_xkb_engine_dvorak.language_codes.push_back("en-US"); |
122 ext_xkb_engine_fr.layouts.push_back("fr"); | 115 ext_xkb_engine_dvorak.layouts.push_back("us(dvorak)"); |
123 ext_xkb.engines.push_back(ext_xkb_engine_fr); | 116 ext_xkb.engines.push_back(ext_xkb_engine_dvorak); |
124 | 117 |
125 ComponentExtensionEngine ext_xkb_engine_colemak; | 118 ComponentExtensionEngine ext_xkb_engine_colemak; |
126 ext_xkb_engine_colemak.engine_id = "xkb:us:colemak:eng"; | 119 ext_xkb_engine_colemak.engine_id = "xkb:us:colemak:eng"; |
127 ext_xkb_engine_colemak.display_name = "xkb:us:colemak:eng"; | 120 ext_xkb_engine_colemak.display_name = "xkb:us:colemak:eng"; |
128 ext_xkb_engine_colemak.language_codes.push_back("en-US"); | 121 ext_xkb_engine_colemak.language_codes.push_back("en-US"); |
129 ext_xkb_engine_colemak.layouts.push_back("us(colemak)"); | 122 ext_xkb_engine_colemak.layouts.push_back("us(colemak)"); |
130 ext_xkb.engines.push_back(ext_xkb_engine_colemak); | 123 ext_xkb.engines.push_back(ext_xkb_engine_colemak); |
131 | 124 |
| 125 ComponentExtensionEngine ext_xkb_engine_fr; |
| 126 ext_xkb_engine_fr.engine_id = "xkb:fr::fra"; |
| 127 ext_xkb_engine_fr.display_name = "xkb:fr::fra"; |
| 128 ext_xkb_engine_fr.language_codes.push_back("fr"); |
| 129 ext_xkb_engine_fr.layouts.push_back("fr"); |
| 130 ext_xkb.engines.push_back(ext_xkb_engine_fr); |
| 131 |
132 ComponentExtensionEngine ext_xkb_engine_se; | 132 ComponentExtensionEngine ext_xkb_engine_se; |
133 ext_xkb_engine_se.engine_id = "xkb:se::swe"; | 133 ext_xkb_engine_se.engine_id = "xkb:se::swe"; |
134 ext_xkb_engine_se.display_name = "xkb:se::swe"; | 134 ext_xkb_engine_se.display_name = "xkb:se::swe"; |
135 ext_xkb_engine_se.language_codes.push_back("sv"); | 135 ext_xkb_engine_se.language_codes.push_back("sv"); |
136 ext_xkb_engine_se.layouts.push_back("se"); | 136 ext_xkb_engine_se.layouts.push_back("se"); |
137 ext_xkb.engines.push_back(ext_xkb_engine_se); | 137 ext_xkb.engines.push_back(ext_xkb_engine_se); |
138 | 138 |
139 ComponentExtensionEngine ext_xkb_engine_jp; | 139 ComponentExtensionEngine ext_xkb_engine_jp; |
140 ext_xkb_engine_jp.engine_id = "xkb:jp::jpn"; | 140 ext_xkb_engine_jp.engine_id = "xkb:jp::jpn"; |
141 ext_xkb_engine_jp.display_name = "xkb:jp::jpn"; | 141 ext_xkb_engine_jp.display_name = "xkb:jp::jpn"; |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 // If the same input method ID is passed, PropertyChanged() is not | 349 // If the same input method ID is passed, PropertyChanged() is not |
350 // notified. | 350 // notified. |
351 EXPECT_EQ(2, observer.input_method_menu_item_changed_count_); | 351 EXPECT_EQ(2, observer.input_method_menu_item_changed_count_); |
352 | 352 |
353 manager_->RemoveObserver(&observer); | 353 manager_->RemoveObserver(&observer); |
354 menu_manager_->RemoveObserver(&observer); | 354 menu_manager_->RemoveObserver(&observer); |
355 } | 355 } |
356 | 356 |
357 TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) { | 357 TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) { |
358 InitComponentExtension(); | 358 InitComponentExtension(); |
359 scoped_ptr<InputMethodDescriptors> methods( | 359 InputMethodDescriptors methods; |
360 manager_->GetSupportedInputMethods()); | 360 if (extension_ime_util::UseWrappedExtensionKeyboardLayouts()) { |
361 ASSERT_TRUE(methods.get()); | 361 methods = manager_->GetComponentExtensionIMEManager() |
| 362 ->GetXkbIMEAsInputMethodDescriptor(); |
| 363 } else { |
| 364 methods = *(manager_->GetSupportedInputMethods()); |
| 365 } |
362 // Try to find random 4-5 layuts and IMEs to make sure the returned list is | 366 // Try to find random 4-5 layuts and IMEs to make sure the returned list is |
363 // correct. | 367 // correct. |
364 const InputMethodDescriptor* id_to_find = | 368 const InputMethodDescriptor* id_to_find = |
365 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 369 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
366 kNaclMozcUsId); | 370 kNaclMozcUsId); |
367 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 371 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
368 "xkb:us::eng"); | 372 XkbId("xkb:us::eng")); |
369 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); | 373 EXPECT_TRUE(Contain(methods, *id_to_find)); |
370 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 374 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
371 "xkb:us:dvorak:eng"); | 375 XkbId("xkb:us:dvorak:eng")); |
372 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); | 376 EXPECT_TRUE(Contain(methods, *id_to_find)); |
373 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 377 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
374 "xkb:fr::fra"); | 378 XkbId("xkb:fr::fra")); |
375 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); | 379 EXPECT_TRUE(Contain(methods, *id_to_find)); |
376 } | 380 } |
377 | 381 |
378 TEST_F(InputMethodManagerImplTest, TestEnableLayouts) { | 382 TEST_F(InputMethodManagerImplTest, TestEnableLayouts) { |
379 // Currently 5 keyboard layouts are supported for en-US, and 1 for ja. See | 383 // Currently 5 keyboard layouts are supported for en-US, and 1 for ja. See |
380 // ibus_input_method.txt. | 384 // ibus_input_method.txt. |
381 std::vector<std::string> keyboard_layouts; | 385 std::vector<std::string> keyboard_layouts; |
382 | 386 |
383 InitComponentExtension(); | 387 InitComponentExtension(); |
384 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 388 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
385 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 389 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
386 | 390 |
387 // For http://crbug.com/19655#c11 - (5) | 391 // For http://crbug.com/19655#c11 - (5) |
388 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. | 392 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. |
389 manager_->EnableLoginLayouts("ja", keyboard_layouts); // Japanese | 393 manager_->EnableLoginLayouts("ja", keyboard_layouts); // Japanese |
390 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 394 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
391 } | 395 } |
392 | 396 |
393 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsAndCurrentInputMethod) { | 397 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsAndCurrentInputMethod) { |
394 // For http://crbug.com/329061 | 398 // For http://crbug.com/329061 |
395 std::vector<std::string> keyboard_layouts; | 399 std::vector<std::string> keyboard_layouts; |
396 keyboard_layouts.push_back("xkb:se::swe"); | 400 keyboard_layouts.push_back(XkbId("xkb:se::swe")); |
397 | 401 |
398 InitComponentExtension(); | 402 InitComponentExtension(); |
399 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 403 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
400 const std::string im_id = manager_->GetCurrentInputMethod().id(); | 404 const std::string im_id = manager_->GetCurrentInputMethod().id(); |
401 EXPECT_EQ(XkbId("xkb:se::swe"), im_id); | 405 EXPECT_EQ(XkbId("xkb:se::swe"), im_id); |
402 } | 406 } |
403 | 407 |
404 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsNonUsHardwareKeyboard) { | 408 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsNonUsHardwareKeyboard) { |
405 InitComponentExtension(); | 409 InitComponentExtension(); |
406 // The physical layout is French. | 410 // The physical layout is French. |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find)); | 478 EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find)); |
475 } | 479 } |
476 | 480 |
477 TEST_F(InputMethodManagerImplTest, TestEnableTwoLayouts) { | 481 TEST_F(InputMethodManagerImplTest, TestEnableTwoLayouts) { |
478 // For http://crbug.com/19655#c11 - (8), step 6. | 482 // For http://crbug.com/19655#c11 - (8), step 6. |
479 TestObserver observer; | 483 TestObserver observer; |
480 manager_->AddObserver(&observer); | 484 manager_->AddObserver(&observer); |
481 InitComponentExtension(); | 485 InitComponentExtension(); |
482 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 486 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
483 std::vector<std::string> ids; | 487 std::vector<std::string> ids; |
484 ids.push_back("xkb:us:dvorak:eng"); | 488 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
485 ids.push_back("xkb:us:colemak:eng"); | 489 ids.push_back(XkbId("xkb:us:colemak:eng")); |
486 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 490 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
487 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 491 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
488 // Since all the IDs added avobe are keyboard layouts, Start() should not be | 492 // Since all the IDs added avobe are keyboard layouts, Start() should not be |
489 // called. | 493 // called. |
490 EXPECT_EQ(1, observer.input_method_changed_count_); | 494 EXPECT_EQ(1, observer.input_method_changed_count_); |
491 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 495 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
492 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 496 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
493 // Disable Dvorak. | 497 // Disable Dvorak. |
494 ids.erase(ids.begin()); | 498 ids.erase(ids.begin()); |
495 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 499 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
496 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 500 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
497 EXPECT_EQ(2, observer.input_method_changed_count_); | 501 EXPECT_EQ(2, observer.input_method_changed_count_); |
498 EXPECT_EQ(XkbId(ids[0]), // colemak | 502 EXPECT_EQ(XkbId(ids[0]), // colemak |
499 manager_->GetCurrentInputMethod().id()); | 503 manager_->GetCurrentInputMethod().id()); |
500 EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_); | 504 EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_); |
501 manager_->RemoveObserver(&observer); | 505 manager_->RemoveObserver(&observer); |
502 } | 506 } |
503 | 507 |
504 TEST_F(InputMethodManagerImplTest, TestEnableThreeLayouts) { | 508 TEST_F(InputMethodManagerImplTest, TestEnableThreeLayouts) { |
505 // For http://crbug.com/19655#c11 - (9). | 509 // For http://crbug.com/19655#c11 - (9). |
506 TestObserver observer; | 510 TestObserver observer; |
507 manager_->AddObserver(&observer); | 511 manager_->AddObserver(&observer); |
508 InitComponentExtension(); | 512 InitComponentExtension(); |
509 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 513 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
510 std::vector<std::string> ids; | 514 std::vector<std::string> ids; |
511 ids.push_back("xkb:us::eng"); | 515 ids.push_back(XkbId("xkb:us::eng")); |
512 ids.push_back("xkb:us:dvorak:eng"); | 516 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
513 ids.push_back("xkb:us:colemak:eng"); | 517 ids.push_back(XkbId("xkb:us:colemak:eng")); |
514 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 518 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
515 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); | 519 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); |
516 EXPECT_EQ(1, observer.input_method_changed_count_); | 520 EXPECT_EQ(1, observer.input_method_changed_count_); |
517 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 521 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
518 EXPECT_EQ("us", xkeyboard_->last_layout_); | 522 EXPECT_EQ("us", xkeyboard_->last_layout_); |
519 // Switch to Dvorak. | 523 // Switch to Dvorak. |
520 manager_->SwitchToNextInputMethod(); | 524 manager_->SwitchToNextInputMethod(); |
521 EXPECT_EQ(2, observer.input_method_changed_count_); | 525 EXPECT_EQ(2, observer.input_method_changed_count_); |
522 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 526 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); |
523 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 527 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
524 // Disable Dvorak. | 528 // Disable Dvorak. |
525 ids.erase(ids.begin() + 1); | 529 ids.erase(ids.begin() + 1); |
526 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 530 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
527 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 531 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
528 EXPECT_EQ(3, observer.input_method_changed_count_); | 532 EXPECT_EQ(3, observer.input_method_changed_count_); |
529 EXPECT_EQ(XkbId(ids[0]), // US Qwerty | 533 EXPECT_EQ(XkbId(ids[0]), // US Qwerty |
530 manager_->GetCurrentInputMethod().id()); | 534 manager_->GetCurrentInputMethod().id()); |
531 EXPECT_EQ("us", xkeyboard_->last_layout_); | 535 EXPECT_EQ("us", xkeyboard_->last_layout_); |
532 manager_->RemoveObserver(&observer); | 536 manager_->RemoveObserver(&observer); |
533 } | 537 } |
534 | 538 |
535 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme) { | 539 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme) { |
536 // For http://crbug.com/19655#c11 - (10). | 540 // For http://crbug.com/19655#c11 - (10). |
537 TestObserver observer; | 541 TestObserver observer; |
538 manager_->AddObserver(&observer); | 542 manager_->AddObserver(&observer); |
539 InitComponentExtension(); | 543 InitComponentExtension(); |
540 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 544 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
541 std::vector<std::string> ids; | 545 std::vector<std::string> ids; |
542 ids.push_back("xkb:us:dvorak:eng"); | 546 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
543 ids.push_back(kNaclMozcUsId); | 547 ids.push_back(kNaclMozcUsId); |
544 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 548 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
545 EXPECT_EQ(1, observer.input_method_changed_count_); | 549 EXPECT_EQ(1, observer.input_method_changed_count_); |
546 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 550 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
547 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 551 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
548 // Switch to Mozc | 552 // Switch to Mozc |
549 manager_->SwitchToNextInputMethod(); | 553 manager_->SwitchToNextInputMethod(); |
550 EXPECT_EQ(2, observer.input_method_changed_count_); | 554 EXPECT_EQ(2, observer.input_method_changed_count_); |
551 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 555 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); |
552 EXPECT_EQ("us", xkeyboard_->last_layout_); | 556 EXPECT_EQ("us", xkeyboard_->last_layout_); |
553 // Disable Mozc. | 557 // Disable Mozc. |
554 ids.erase(ids.begin() + 1); | 558 ids.erase(ids.begin() + 1); |
555 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 559 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
556 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 560 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
557 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 561 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
558 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 562 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
559 } | 563 } |
560 | 564 |
561 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme2) { | 565 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme2) { |
562 // For http://crbug.com/19655#c11 - (11). | 566 // For http://crbug.com/19655#c11 - (11). |
563 TestObserver observer; | 567 TestObserver observer; |
564 manager_->AddObserver(&observer); | 568 manager_->AddObserver(&observer); |
565 InitComponentExtension(); | 569 InitComponentExtension(); |
566 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 570 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
567 std::vector<std::string> ids; | 571 std::vector<std::string> ids; |
568 ids.push_back("xkb:us:dvorak:eng"); | 572 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
569 ids.push_back(kNaclMozcUsId); | 573 ids.push_back(kNaclMozcUsId); |
570 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 574 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
571 EXPECT_EQ(1, observer.input_method_changed_count_); | 575 EXPECT_EQ(1, observer.input_method_changed_count_); |
572 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 576 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
573 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 577 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
574 | 578 |
575 // Disable Dvorak. | 579 // Disable Dvorak. |
576 ids.erase(ids.begin()); | 580 ids.erase(ids.begin()); |
577 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 581 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
578 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 582 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 manager_->RemoveObserver(&observer); | 617 manager_->RemoveObserver(&observer); |
614 } | 618 } |
615 | 619 |
616 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsThenLock) { | 620 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsThenLock) { |
617 // For http://crbug.com/19655#c11 - (14). | 621 // For http://crbug.com/19655#c11 - (14). |
618 TestObserver observer; | 622 TestObserver observer; |
619 manager_->AddObserver(&observer); | 623 manager_->AddObserver(&observer); |
620 InitComponentExtension(); | 624 InitComponentExtension(); |
621 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 625 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
622 std::vector<std::string> ids; | 626 std::vector<std::string> ids; |
623 ids.push_back("xkb:us::eng"); | 627 ids.push_back(XkbId("xkb:us::eng")); |
624 ids.push_back("xkb:us:dvorak:eng"); | 628 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
625 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 629 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
626 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 630 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
627 EXPECT_EQ(1, observer.input_method_changed_count_); | 631 EXPECT_EQ(1, observer.input_method_changed_count_); |
628 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 632 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
629 EXPECT_EQ("us", xkeyboard_->last_layout_); | 633 EXPECT_EQ("us", xkeyboard_->last_layout_); |
630 | 634 |
631 // Switch to Dvorak. | 635 // Switch to Dvorak. |
632 manager_->SwitchToNextInputMethod(); | 636 manager_->SwitchToNextInputMethod(); |
633 EXPECT_EQ(2, observer.input_method_changed_count_); | 637 EXPECT_EQ(2, observer.input_method_changed_count_); |
634 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 638 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); |
(...skipping 19 matching lines...) Expand all Loading... |
654 manager_->RemoveObserver(&observer); | 658 manager_->RemoveObserver(&observer); |
655 } | 659 } |
656 | 660 |
657 TEST_F(InputMethodManagerImplTest, SwitchInputMethodTest) { | 661 TEST_F(InputMethodManagerImplTest, SwitchInputMethodTest) { |
658 // For http://crbug.com/19655#c11 - (15). | 662 // For http://crbug.com/19655#c11 - (15). |
659 TestObserver observer; | 663 TestObserver observer; |
660 manager_->AddObserver(&observer); | 664 manager_->AddObserver(&observer); |
661 InitComponentExtension(); | 665 InitComponentExtension(); |
662 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 666 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
663 std::vector<std::string> ids; | 667 std::vector<std::string> ids; |
664 ids.push_back("xkb:us:dvorak:eng"); | 668 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
665 ids.push_back(kExt2Engine2Id); | 669 ids.push_back(kExt2Engine2Id); |
666 ids.push_back(kExt2Engine1Id); | 670 ids.push_back(kExt2Engine1Id); |
667 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 671 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
668 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); | 672 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); |
669 EXPECT_EQ(1, observer.input_method_changed_count_); | 673 EXPECT_EQ(1, observer.input_method_changed_count_); |
670 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 674 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
671 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 675 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
672 | 676 |
673 // Switch to Mozc. | 677 // Switch to Mozc. |
674 manager_->SwitchToNextInputMethod(); | 678 manager_->SwitchToNextInputMethod(); |
(...skipping 19 matching lines...) Expand all Loading... |
694 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 698 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
695 | 699 |
696 manager_->RemoveObserver(&observer); | 700 manager_->RemoveObserver(&observer); |
697 } | 701 } |
698 | 702 |
699 TEST_F(InputMethodManagerImplTest, TestXkbSetting) { | 703 TEST_F(InputMethodManagerImplTest, TestXkbSetting) { |
700 // For http://crbug.com/19655#c11 - (8), step 7-11. | 704 // For http://crbug.com/19655#c11 - (8), step 7-11. |
701 InitComponentExtension(); | 705 InitComponentExtension(); |
702 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 706 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
703 std::vector<std::string> ids; | 707 std::vector<std::string> ids; |
704 ids.push_back("xkb:us:dvorak:eng"); | 708 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
705 ids.push_back("xkb:us:colemak:eng"); | 709 ids.push_back(XkbId("xkb:us:colemak:eng")); |
706 ids.push_back(kNaclMozcJpId); | 710 ids.push_back(kNaclMozcJpId); |
707 ids.push_back(kNaclMozcUsId); | 711 ids.push_back(kNaclMozcUsId); |
708 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 712 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
709 EXPECT_EQ(4U, manager_->GetNumActiveInputMethods()); | 713 EXPECT_EQ(4U, manager_->GetNumActiveInputMethods()); |
710 EXPECT_EQ(1, xkeyboard_->set_current_keyboard_layout_by_name_count_); | 714 EXPECT_EQ(1, xkeyboard_->set_current_keyboard_layout_by_name_count_); |
711 // See input_methods.txt for an expected XKB layout name. | 715 // See input_methods.txt for an expected XKB layout name. |
712 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 716 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
713 manager_->SwitchToNextInputMethod(); | 717 manager_->SwitchToNextInputMethod(); |
714 EXPECT_EQ(2, xkeyboard_->set_current_keyboard_layout_by_name_count_); | 718 EXPECT_EQ(2, xkeyboard_->set_current_keyboard_layout_by_name_count_); |
715 EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_); | 719 EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_); |
(...skipping 28 matching lines...) Expand all Loading... |
744 manager_->ActivateInputMethodMenuItem("key2"); | 748 manager_->ActivateInputMethodMenuItem("key2"); |
745 EXPECT_EQ(kKey, mock_engine_handler_->last_activated_property()); | 749 EXPECT_EQ(kKey, mock_engine_handler_->last_activated_property()); |
746 } | 750 } |
747 | 751 |
748 TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodProperties) { | 752 TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodProperties) { |
749 InitComponentExtension(); | 753 InitComponentExtension(); |
750 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 754 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
751 | 755 |
752 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 756 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
753 std::vector<std::string> ids; | 757 std::vector<std::string> ids; |
754 ids.push_back("xkb:us::eng"); | 758 ids.push_back(XkbId("xkb:us::eng")); |
755 ids.push_back(kNaclMozcUsId); | 759 ids.push_back(kNaclMozcUsId); |
756 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 760 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
757 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 761 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
758 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 762 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
759 manager_->ChangeInputMethod(kNaclMozcUsId); | 763 manager_->ChangeInputMethod(kNaclMozcUsId); |
760 | 764 |
761 ash::ime::InputMethodMenuItemList current_property_list; | 765 ash::ime::InputMethodMenuItemList current_property_list; |
762 current_property_list.push_back(ash::ime::InputMethodMenuItem( | 766 current_property_list.push_back(ash::ime::InputMethodMenuItem( |
763 "key", "label", false, false)); | 767 "key", "label", false, false)); |
764 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); | 768 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); | 810 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); |
807 EXPECT_EQ("key-chewing", | 811 EXPECT_EQ("key-chewing", |
808 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); | 812 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); |
809 } | 813 } |
810 | 814 |
811 TEST_F(InputMethodManagerImplTest, TestNextInputMethod) { | 815 TEST_F(InputMethodManagerImplTest, TestNextInputMethod) { |
812 TestObserver observer; | 816 TestObserver observer; |
813 manager_->AddObserver(&observer); | 817 manager_->AddObserver(&observer); |
814 InitComponentExtension(); | 818 InitComponentExtension(); |
815 std::vector<std::string> keyboard_layouts; | 819 std::vector<std::string> keyboard_layouts; |
816 keyboard_layouts.push_back("xkb:us::eng"); | 820 keyboard_layouts.push_back(XkbId("xkb:us::eng")); |
817 // For http://crbug.com/19655#c11 - (1) | 821 // For http://crbug.com/19655#c11 - (1) |
818 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 822 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
819 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 823 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
820 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 824 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); |
821 EXPECT_EQ("us", xkeyboard_->last_layout_); | 825 EXPECT_EQ("us", xkeyboard_->last_layout_); |
822 manager_->SwitchToNextInputMethod(); | 826 manager_->SwitchToNextInputMethod(); |
823 EXPECT_TRUE(observer.last_show_message_); | 827 EXPECT_TRUE(observer.last_show_message_); |
824 EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id()); | 828 EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id()); |
825 EXPECT_EQ("us(intl)", xkeyboard_->last_layout_); | 829 EXPECT_EQ("us(intl)", xkeyboard_->last_layout_); |
826 manager_->SwitchToNextInputMethod(); | 830 manager_->SwitchToNextInputMethod(); |
(...skipping 23 matching lines...) Expand all Loading... |
850 TestObserver observer; | 854 TestObserver observer; |
851 manager_->AddObserver(&observer); | 855 manager_->AddObserver(&observer); |
852 InitComponentExtension(); | 856 InitComponentExtension(); |
853 | 857 |
854 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 858 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
855 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); | 859 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); |
856 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 860 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
857 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); | 861 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); |
858 | 862 |
859 std::vector<std::string> keyboard_layouts; | 863 std::vector<std::string> keyboard_layouts; |
860 keyboard_layouts.push_back("xkb:us::eng"); | 864 keyboard_layouts.push_back(XkbId("xkb:us::eng")); |
861 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 865 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
862 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 866 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
863 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 867 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); |
864 EXPECT_EQ("us", xkeyboard_->last_layout_); | 868 EXPECT_EQ("us", xkeyboard_->last_layout_); |
865 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); | 869 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); |
866 EXPECT_TRUE(observer.last_show_message_); | 870 EXPECT_TRUE(observer.last_show_message_); |
867 EXPECT_EQ(XkbId("xkb:us:intl:eng"), | 871 EXPECT_EQ(XkbId("xkb:us:intl:eng"), |
868 manager_->GetCurrentInputMethod().id()); | 872 manager_->GetCurrentInputMethod().id()); |
869 EXPECT_EQ("us(intl)", xkeyboard_->last_layout_); | 873 EXPECT_EQ("us(intl)", xkeyboard_->last_layout_); |
870 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 874 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
911 TestObserver observer; | 915 TestObserver observer; |
912 manager_->AddObserver(&observer); | 916 manager_->AddObserver(&observer); |
913 InitComponentExtension(); | 917 InitComponentExtension(); |
914 | 918 |
915 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 919 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
916 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); | 920 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); |
917 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 921 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
918 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); | 922 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); |
919 | 923 |
920 std::vector<std::string> ids; | 924 std::vector<std::string> ids; |
921 ids.push_back("xkb:us:dvorak:eng"); | 925 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
922 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 926 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
923 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 927 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
924 | 928 |
925 // Ctrl+Space accelerator should not be consumed if there is only one active | 929 // Ctrl+Space accelerator should not be consumed if there is only one active |
926 // input method. | 930 // input method. |
927 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 931 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
928 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 932 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
929 | 933 |
930 manager_->RemoveObserver(&observer); | 934 manager_->RemoveObserver(&observer); |
931 } | 935 } |
932 | 936 |
933 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithUsLayouts) { | 937 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithUsLayouts) { |
934 std::string expect_id = XkbId("xkb:us::eng"); | 938 std::string expect_id = XkbId("xkb:us::eng"); |
935 TestObserver observer; | 939 TestObserver observer; |
936 manager_->AddObserver(&observer); | 940 manager_->AddObserver(&observer); |
937 InitComponentExtension(); | 941 InitComponentExtension(); |
938 std::vector<std::string> keyboard_layouts; | 942 std::vector<std::string> keyboard_layouts; |
939 keyboard_layouts.push_back("xkb:us::eng"); | 943 keyboard_layouts.push_back(XkbId("xkb:us::eng")); |
940 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 944 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
941 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 945 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
942 EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id()); | 946 EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id()); |
943 EXPECT_EQ("us", xkeyboard_->last_layout_); | 947 EXPECT_EQ("us", xkeyboard_->last_layout_); |
944 | 948 |
945 // Henkan, Muhenkan, ZenkakuHankaku should be ignored when no Japanese IMEs | 949 // Henkan, Muhenkan, ZenkakuHankaku should be ignored when no Japanese IMEs |
946 // and keyboards are enabled. | 950 // and keyboards are enabled. |
947 EXPECT_FALSE(manager_->SwitchInputMethod( | 951 EXPECT_FALSE(manager_->SwitchInputMethod( |
948 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); | 952 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); |
949 EXPECT_FALSE(observer.last_show_message_); | 953 EXPECT_FALSE(observer.last_show_message_); |
(...skipping 18 matching lines...) Expand all Loading... |
968 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpLayout) { | 972 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpLayout) { |
969 // Enable "xkb:jp::jpn" and press Muhenkan/ZenkakuHankaku. | 973 // Enable "xkb:jp::jpn" and press Muhenkan/ZenkakuHankaku. |
970 InitComponentExtension(); | 974 InitComponentExtension(); |
971 | 975 |
972 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 976 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
973 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); | 977 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); |
974 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 978 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
975 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); | 979 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); |
976 | 980 |
977 std::vector<std::string> keyboard_layouts; | 981 std::vector<std::string> keyboard_layouts; |
978 keyboard_layouts.push_back("xkb:us::eng"); | 982 keyboard_layouts.push_back(XkbId("xkb:us::eng")); |
979 manager_->EnableLoginLayouts("ja", keyboard_layouts); | 983 manager_->EnableLoginLayouts("ja", keyboard_layouts); |
980 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 984 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
981 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 985 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); |
982 EXPECT_EQ("us", xkeyboard_->last_layout_); | 986 EXPECT_EQ("us", xkeyboard_->last_layout_); |
983 EXPECT_TRUE(manager_->SwitchInputMethod( | 987 EXPECT_TRUE(manager_->SwitchInputMethod( |
984 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); | 988 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); |
985 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 989 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); |
986 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 990 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
987 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 991 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
988 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 992 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
(...skipping 10 matching lines...) Expand all Loading... |
999 EXPECT_TRUE(manager_->SwitchInputMethod( | 1003 EXPECT_TRUE(manager_->SwitchInputMethod( |
1000 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); | 1004 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); |
1001 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1005 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); |
1002 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1006 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1003 } | 1007 } |
1004 | 1008 |
1005 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpIme) { | 1009 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpIme) { |
1006 InitComponentExtension(); | 1010 InitComponentExtension(); |
1007 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1011 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
1008 std::vector<std::string> ids; | 1012 std::vector<std::string> ids; |
1009 ids.push_back("xkb:jp::jpn"); | 1013 ids.push_back(XkbId("xkb:jp::jpn")); |
1010 ids.push_back(kNaclMozcJpId); | 1014 ids.push_back(kNaclMozcJpId); |
1011 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1015 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
1012 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1016 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); |
1013 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1017 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1014 EXPECT_TRUE(manager_->SwitchInputMethod( | 1018 EXPECT_TRUE(manager_->SwitchInputMethod( |
1015 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); | 1019 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); |
1016 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); | 1020 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); |
1017 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1021 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1018 EXPECT_TRUE(manager_->SwitchInputMethod( | 1022 EXPECT_TRUE(manager_->SwitchInputMethod( |
1019 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); | 1023 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); |
(...skipping 10 matching lines...) Expand all Loading... |
1030 EXPECT_TRUE(manager_->SwitchInputMethod( | 1034 EXPECT_TRUE(manager_->SwitchInputMethod( |
1031 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); | 1035 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); |
1032 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1036 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); |
1033 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1037 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1034 EXPECT_TRUE(manager_->SwitchInputMethod( | 1038 EXPECT_TRUE(manager_->SwitchInputMethod( |
1035 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); | 1039 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); |
1036 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1040 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); |
1037 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1041 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1038 | 1042 |
1039 // Add Dvorak. | 1043 // Add Dvorak. |
1040 ids.push_back("xkb:us:dvorak:eng"); | 1044 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
1041 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1045 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
1042 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1046 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); |
1043 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1047 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1044 EXPECT_TRUE(manager_->SwitchInputMethod( | 1048 EXPECT_TRUE(manager_->SwitchInputMethod( |
1045 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); | 1049 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); |
1046 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); | 1050 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); |
1047 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1051 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1048 EXPECT_TRUE(manager_->SwitchInputMethod( | 1052 EXPECT_TRUE(manager_->SwitchInputMethod( |
1049 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); | 1053 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); |
1050 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1054 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); |
1051 EXPECT_EQ("jp", xkeyboard_->last_layout_); | 1055 EXPECT_EQ("jp", xkeyboard_->last_layout_); |
1052 } | 1056 } |
1053 | 1057 |
1054 TEST_F(InputMethodManagerImplTest, TestAddRemoveExtensionInputMethods) { | 1058 TEST_F(InputMethodManagerImplTest, TestAddRemoveExtensionInputMethods) { |
1055 TestObserver observer; | 1059 TestObserver observer; |
1056 manager_->AddObserver(&observer); | 1060 manager_->AddObserver(&observer); |
1057 InitComponentExtension(); | 1061 InitComponentExtension(); |
1058 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1062 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
1059 std::vector<std::string> ids; | 1063 std::vector<std::string> ids; |
1060 ids.push_back("xkb:us:dvorak:eng"); | 1064 ids.push_back(XkbId("xkb:us:dvorak:eng")); |
1061 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1065 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
1062 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 1066 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
1063 EXPECT_EQ(1, observer.input_method_changed_count_); | 1067 EXPECT_EQ(1, observer.input_method_changed_count_); |
1064 EXPECT_EQ(XkbId(ids[0]), | 1068 EXPECT_EQ(XkbId(ids[0]), |
1065 manager_->GetCurrentInputMethod().id()); | 1069 manager_->GetCurrentInputMethod().id()); |
1066 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); | 1070 EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_); |
1067 | 1071 |
1068 // Add two Extension IMEs. | 1072 // Add two Extension IMEs. |
1069 std::vector<std::string> layouts; | 1073 std::vector<std::string> layouts; |
1070 layouts.push_back("us"); | 1074 layouts.push_back("us"); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1132 manager_->RemoveInputMethodExtension(ext2_id); | 1136 manager_->RemoveInputMethodExtension(ext2_id); |
1133 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 1137 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
1134 } | 1138 } |
1135 | 1139 |
1136 TEST_F(InputMethodManagerImplTest, TestAddExtensionInputThenLockScreen) { | 1140 TEST_F(InputMethodManagerImplTest, TestAddExtensionInputThenLockScreen) { |
1137 TestObserver observer; | 1141 TestObserver observer; |
1138 InitComponentExtension(); | 1142 InitComponentExtension(); |
1139 manager_->AddObserver(&observer); | 1143 manager_->AddObserver(&observer); |
1140 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1144 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
1141 std::vector<std::string> ids; | 1145 std::vector<std::string> ids; |
1142 ids.push_back("xkb:us::eng"); | 1146 ids.push_back(XkbId("xkb:us::eng")); |
1143 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1147 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
1144 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 1148 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
1145 EXPECT_EQ(1, observer.input_method_changed_count_); | 1149 EXPECT_EQ(1, observer.input_method_changed_count_); |
1146 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 1150 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); |
1147 EXPECT_EQ("us", xkeyboard_->last_layout_); | 1151 EXPECT_EQ("us", xkeyboard_->last_layout_); |
1148 | 1152 |
1149 // Add an Extension IME. | 1153 // Add an Extension IME. |
1150 std::vector<std::string> layouts; | 1154 std::vector<std::string> layouts; |
1151 layouts.push_back("us(dvorak)"); | 1155 layouts.push_back("us(dvorak)"); |
1152 std::vector<std::string> languages; | 1156 std::vector<std::string> languages; |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1345 | 1349 |
1346 ASSERT_EQ(3U, input_method_ids.size()); | 1350 ASSERT_EQ(3U, input_method_ids.size()); |
1347 | 1351 |
1348 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); | 1352 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); |
1349 EXPECT_EQ("xkb:fr::fra", input_method_ids[1]); | 1353 EXPECT_EQ("xkb:fr::fra", input_method_ids[1]); |
1350 EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]); | 1354 EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]); |
1351 } | 1355 } |
1352 | 1356 |
1353 } // namespace input_method | 1357 } // namespace input_method |
1354 } // namespace chromeos | 1358 } // namespace chromeos |
OLD | NEW |