| 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 20 matching lines...) Expand all Loading... |
| 31 #include "ui/base/accelerators/accelerator.h" | 31 #include "ui/base/accelerators/accelerator.h" |
| 32 #include "ui/base/ime/chromeos/mock_ime_engine_handler.h" | 32 #include "ui/base/ime/chromeos/mock_ime_engine_handler.h" |
| 33 #include "ui/base/ime/input_method_initializer.h" | 33 #include "ui/base/ime/input_method_initializer.h" |
| 34 #include "ui/events/keycodes/keyboard_codes.h" | 34 #include "ui/events/keycodes/keyboard_codes.h" |
| 35 | 35 |
| 36 namespace chromeos { | 36 namespace chromeos { |
| 37 | 37 |
| 38 namespace input_method { | 38 namespace input_method { |
| 39 namespace { | 39 namespace { |
| 40 | 40 |
| 41 const char kNaclMozcUsId[] = | 41 const char kNaclMozcUsId[] = "nacl_mozc_us"; |
| 42 "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_us"; | 42 const char kNaclMozcJpId[] = "nacl_mozc_jp"; |
| 43 const char kNaclMozcJpId[] = | 43 const char kExt2Engine1Id[] = "ext2_engine1-t-i0-engine_id"; |
| 44 "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_jp"; | 44 const char kExt2Engine2Id[] = "ext2_engine2-t-i0-engine_id"; |
| 45 const char kExt2Engine1Id[] = | 45 const char kPinyinImeId[] = "zh-t-i0-pinyin"; |
| 46 "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopext2_engine1_engine_id"; | |
| 47 const char kExt2Engine2Id[] = | |
| 48 "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopext2_engine2_engine_id"; | |
| 49 const char kXkbExtId[] = | |
| 50 #if defined(OFFICIAL_BUILD) | |
| 51 "jkghodnilhceideoidjikpgommlajknk"; | |
| 52 #else | |
| 53 "fgoepimhcoialccpbmpnnblemnepkkao"; | |
| 54 #endif | |
| 55 | 46 |
| 56 // Returns true if |descriptors| contain |target|. | 47 // Returns true if |descriptors| contain |target|. |
| 57 bool Contain(const InputMethodDescriptors& descriptors, | 48 bool Contain(const InputMethodDescriptors& descriptors, |
| 58 const InputMethodDescriptor& target) { | 49 const InputMethodDescriptor& target) { |
| 59 for (size_t i = 0; i < descriptors.size(); ++i) { | 50 for (size_t i = 0; i < descriptors.size(); ++i) { |
| 60 if (descriptors[i].id() == target.id()) | 51 if (descriptors[i].id() == target.id()) |
| 61 return true; | 52 return true; |
| 62 } | 53 } |
| 63 return false; | 54 return false; |
| 64 } | 55 } |
| 65 | 56 |
| 66 std::string XkbId(const std::string& id) { | 57 std::string ImeIdFromEngineId(const std::string& id) { |
| 67 return extension_ime_util::GetInputMethodIDByKeyboardLayout(id); | 58 return extension_ime_util::GetInputMethodIDByEngineID(id); |
| 68 } | 59 } |
| 69 | 60 |
| 70 class InputMethodManagerImplTest : public BrowserWithTestWindowTest { | 61 class InputMethodManagerImplTest : public BrowserWithTestWindowTest { |
| 71 public: | 62 public: |
| 72 InputMethodManagerImplTest() | 63 InputMethodManagerImplTest() |
| 73 : delegate_(NULL), | 64 : delegate_(NULL), |
| 74 candidate_window_controller_(NULL), | 65 candidate_window_controller_(NULL), |
| 75 keyboard_(NULL) { | 66 keyboard_(NULL) { |
| 76 } | 67 } |
| 77 virtual ~InputMethodManagerImplTest() {} | 68 virtual ~InputMethodManagerImplTest() {} |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 protected: | 110 protected: |
| 120 // Helper function to initialize component extension stuff for testing. | 111 // Helper function to initialize component extension stuff for testing. |
| 121 void InitComponentExtension() { | 112 void InitComponentExtension() { |
| 122 mock_delegate_ = new MockComponentExtIMEManagerDelegate(); | 113 mock_delegate_ = new MockComponentExtIMEManagerDelegate(); |
| 123 mock_delegate_->set_ime_list(ime_list_); | 114 mock_delegate_->set_ime_list(ime_list_); |
| 124 scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate(mock_delegate_); | 115 scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate(mock_delegate_); |
| 125 | 116 |
| 126 // Note, for production, these SetEngineHandler are called when | 117 // Note, for production, these SetEngineHandler are called when |
| 127 // IMEEngineHandlerInterface is initialized via | 118 // IMEEngineHandlerInterface is initialized via |
| 128 // InitializeComponentextension. | 119 // InitializeComponentextension. |
| 129 manager_->AddInputMethodExtension(kNaclMozcUsId, | 120 manager_->AddInputMethodExtension(ImeIdFromEngineId(kNaclMozcUsId), |
| 130 mock_engine_handler_.get()); | 121 mock_engine_handler_.get()); |
| 131 manager_->AddInputMethodExtension(kNaclMozcJpId, | 122 manager_->AddInputMethodExtension(ImeIdFromEngineId(kNaclMozcJpId), |
| 132 mock_engine_handler_.get()); | 123 mock_engine_handler_.get()); |
| 133 manager_->AddInputMethodExtension(kExt2Engine1Id, | 124 manager_->AddInputMethodExtension(ImeIdFromEngineId(kExt2Engine1Id), |
| 134 mock_engine_handler_.get()); | 125 mock_engine_handler_.get()); |
| 135 manager_->AddInputMethodExtension(kExt2Engine2Id, | 126 manager_->AddInputMethodExtension(ImeIdFromEngineId(kExt2Engine2Id), |
| 136 mock_engine_handler_.get()); | 127 mock_engine_handler_.get()); |
| 137 manager_->InitializeComponentExtensionForTesting(delegate.Pass()); | 128 manager_->InitializeComponentExtensionForTesting(delegate.Pass()); |
| 138 } | 129 } |
| 139 | 130 |
| 140 void InitImeList() { | 131 void InitImeList() { |
| 141 ime_list_.clear(); | 132 ime_list_.clear(); |
| 142 | 133 |
| 143 ComponentExtensionIME ext_xkb; | 134 ComponentExtensionIME ext_xkb; |
| 144 ext_xkb.id = kXkbExtId; | 135 ext_xkb.id = extension_ime_util::kXkbExtensionId; |
| 145 ext_xkb.description = "ext_xkb_description"; | 136 ext_xkb.description = "ext_xkb_description"; |
| 146 ext_xkb.path = base::FilePath("ext_xkb_file_path"); | 137 ext_xkb.path = base::FilePath("ext_xkb_file_path"); |
| 147 | 138 |
| 148 ComponentExtensionEngine ext_xkb_engine_us; | 139 ComponentExtensionEngine ext_xkb_engine_us; |
| 149 ext_xkb_engine_us.engine_id = "xkb:us::eng"; | 140 ext_xkb_engine_us.engine_id = "xkb:us::eng"; |
| 150 ext_xkb_engine_us.display_name = "xkb:us::eng"; | 141 ext_xkb_engine_us.display_name = "xkb:us::eng"; |
| 151 ext_xkb_engine_us.language_codes.push_back("en-US"); | 142 ext_xkb_engine_us.language_codes.push_back("en-US"); |
| 152 ext_xkb_engine_us.layouts.push_back("us"); | 143 ext_xkb_engine_us.layouts.push_back("us"); |
| 153 ext_xkb.engines.push_back(ext_xkb_engine_us); | 144 ext_xkb.engines.push_back(ext_xkb_engine_us); |
| 154 | 145 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 ComponentExtensionEngine ext_xkb_engine_hu; | 202 ComponentExtensionEngine ext_xkb_engine_hu; |
| 212 ext_xkb_engine_hu.engine_id = "xkb:hu::hun"; | 203 ext_xkb_engine_hu.engine_id = "xkb:hu::hun"; |
| 213 ext_xkb_engine_hu.display_name = "xkb:hu::hun"; | 204 ext_xkb_engine_hu.display_name = "xkb:hu::hun"; |
| 214 ext_xkb_engine_hu.language_codes.push_back("hu"); | 205 ext_xkb_engine_hu.language_codes.push_back("hu"); |
| 215 ext_xkb_engine_hu.layouts.push_back("hu"); | 206 ext_xkb_engine_hu.layouts.push_back("hu"); |
| 216 ext_xkb.engines.push_back(ext_xkb_engine_hu); | 207 ext_xkb.engines.push_back(ext_xkb_engine_hu); |
| 217 | 208 |
| 218 ime_list_.push_back(ext_xkb); | 209 ime_list_.push_back(ext_xkb); |
| 219 | 210 |
| 220 ComponentExtensionIME ext1; | 211 ComponentExtensionIME ext1; |
| 221 ext1.id = "gjaehgfemfahhmlgpdfknkhdnemmolop"; | 212 ext1.id = extension_ime_util::kMozcExtensionId; |
| 222 ext1.description = "ext1_description"; | 213 ext1.description = "ext1_description"; |
| 223 ext1.path = base::FilePath("ext1_file_path"); | 214 ext1.path = base::FilePath("ext1_file_path"); |
| 224 | 215 |
| 225 ComponentExtensionEngine ext1_engine1; | 216 ComponentExtensionEngine ext1_engine1; |
| 226 ext1_engine1.engine_id = "nacl_mozc_us"; | 217 ext1_engine1.engine_id = "nacl_mozc_us"; |
| 227 ext1_engine1.display_name = "ext1_engine_1_display_name"; | 218 ext1_engine1.display_name = "ext1_engine_1_display_name"; |
| 228 ext1_engine1.language_codes.push_back("ja"); | 219 ext1_engine1.language_codes.push_back("ja"); |
| 229 ext1_engine1.layouts.push_back("us"); | 220 ext1_engine1.layouts.push_back("us"); |
| 230 ext1.engines.push_back(ext1_engine1); | 221 ext1.engines.push_back(ext1_engine1); |
| 231 | 222 |
| 232 ComponentExtensionEngine ext1_engine2; | 223 ComponentExtensionEngine ext1_engine2; |
| 233 ext1_engine2.engine_id = "nacl_mozc_jp"; | 224 ext1_engine2.engine_id = "nacl_mozc_jp"; |
| 234 ext1_engine2.display_name = "ext1_engine_1_display_name"; | 225 ext1_engine2.display_name = "ext1_engine_1_display_name"; |
| 235 ext1_engine2.language_codes.push_back("ja"); | 226 ext1_engine2.language_codes.push_back("ja"); |
| 236 ext1_engine2.layouts.push_back("jp"); | 227 ext1_engine2.layouts.push_back("jp"); |
| 237 ext1.engines.push_back(ext1_engine2); | 228 ext1.engines.push_back(ext1_engine2); |
| 238 | 229 |
| 239 ime_list_.push_back(ext1); | 230 ime_list_.push_back(ext1); |
| 240 | 231 |
| 241 ComponentExtensionIME ext2; | 232 ComponentExtensionIME ext2; |
| 242 ext2.id = "gjaehgfemfahhmlgpdfknkhdnemmolop"; | 233 ext2.id = extension_ime_util::kT13nExtensionId; |
| 243 ext2.description = "ext2_description"; | 234 ext2.description = "ext2_description"; |
| 244 ext2.path = base::FilePath("ext2_file_path"); | 235 ext2.path = base::FilePath("ext2_file_path"); |
| 245 | 236 |
| 246 ComponentExtensionEngine ext2_engine1; | 237 ComponentExtensionEngine ext2_engine1; |
| 247 ext2_engine1.engine_id = "ext2_engine1_engine_id"; | 238 ext2_engine1.engine_id = kExt2Engine1Id; |
| 248 ext2_engine1.display_name = "ext2_engine_1_display_name"; | 239 ext2_engine1.display_name = "ext2_engine_1_display_name"; |
| 249 ext2_engine1.language_codes.push_back("en"); | 240 ext2_engine1.language_codes.push_back("en"); |
| 250 ext2_engine1.layouts.push_back("us"); | 241 ext2_engine1.layouts.push_back("us"); |
| 251 ext2.engines.push_back(ext2_engine1); | 242 ext2.engines.push_back(ext2_engine1); |
| 252 | 243 |
| 253 ComponentExtensionEngine ext2_engine2; | 244 ComponentExtensionEngine ext2_engine2; |
| 254 ext2_engine2.engine_id = "ext2_engine2_engine_id"; | 245 ext2_engine2.engine_id = kExt2Engine2Id; |
| 255 ext2_engine2.display_name = "ext2_engine_2_display_name"; | 246 ext2_engine2.display_name = "ext2_engine_2_display_name"; |
| 256 ext2_engine2.language_codes.push_back("en"); | 247 ext2_engine2.language_codes.push_back("en"); |
| 257 ext2_engine2.layouts.push_back("us(dvorak)"); | 248 ext2_engine2.layouts.push_back("us(dvorak)"); |
| 258 ext2.engines.push_back(ext2_engine2); | 249 ext2.engines.push_back(ext2_engine2); |
| 259 | 250 |
| 260 ime_list_.push_back(ext2); | 251 ime_list_.push_back(ext2); |
| 261 } | 252 } |
| 262 | 253 |
| 263 TestingBrowserProcess* GetBrowserProcess() { | 254 TestingBrowserProcess* GetBrowserProcess() { |
| 264 return TestingBrowserProcess::GetGlobal(); | 255 return TestingBrowserProcess::GetGlobal(); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 | 350 |
| 360 TestObserver observer; | 351 TestObserver observer; |
| 361 InitComponentExtension(); | 352 InitComponentExtension(); |
| 362 manager_->AddObserver(&observer); | 353 manager_->AddObserver(&observer); |
| 363 menu_manager_->AddObserver(&observer); | 354 menu_manager_->AddObserver(&observer); |
| 364 EXPECT_EQ(0, observer.input_method_changed_count_); | 355 EXPECT_EQ(0, observer.input_method_changed_count_); |
| 365 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 356 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
| 366 EXPECT_EQ(5U, manager_->GetActiveInputMethods()->size()); | 357 EXPECT_EQ(5U, manager_->GetActiveInputMethods()->size()); |
| 367 EXPECT_EQ(1, observer.input_method_changed_count_); | 358 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 368 EXPECT_EQ(1, observer.input_method_menu_item_changed_count_); | 359 EXPECT_EQ(1, observer.input_method_menu_item_changed_count_); |
| 369 manager_->ChangeInputMethod(XkbId("xkb:us:dvorak:eng")); | 360 manager_->ChangeInputMethod(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 370 EXPECT_FALSE(observer.last_show_message_); | 361 EXPECT_FALSE(observer.last_show_message_); |
| 371 EXPECT_EQ(2, observer.input_method_changed_count_); | 362 EXPECT_EQ(2, observer.input_method_changed_count_); |
| 372 EXPECT_EQ(2, observer.input_method_menu_item_changed_count_); | 363 EXPECT_EQ(2, observer.input_method_menu_item_changed_count_); |
| 373 manager_->ChangeInputMethod(XkbId("xkb:us:dvorak:eng")); | 364 manager_->ChangeInputMethod(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 374 EXPECT_FALSE(observer.last_show_message_); | 365 EXPECT_FALSE(observer.last_show_message_); |
| 375 | 366 |
| 376 // The observer is always notified even when the same input method ID is | 367 // The observer is always notified even when the same input method ID is |
| 377 // passed to ChangeInputMethod() more than twice. | 368 // passed to ChangeInputMethod() more than twice. |
| 378 // TODO(komatsu): Revisit if this is neccessary. | 369 // TODO(komatsu): Revisit if this is neccessary. |
| 379 EXPECT_EQ(3, observer.input_method_changed_count_); | 370 EXPECT_EQ(3, observer.input_method_changed_count_); |
| 380 | 371 |
| 381 // If the same input method ID is passed, PropertyChanged() is not | 372 // If the same input method ID is passed, PropertyChanged() is not |
| 382 // notified. | 373 // notified. |
| 383 EXPECT_EQ(2, observer.input_method_menu_item_changed_count_); | 374 EXPECT_EQ(2, observer.input_method_menu_item_changed_count_); |
| 384 | 375 |
| 385 manager_->RemoveObserver(&observer); | 376 manager_->RemoveObserver(&observer); |
| 386 menu_manager_->RemoveObserver(&observer); | 377 menu_manager_->RemoveObserver(&observer); |
| 387 } | 378 } |
| 388 | 379 |
| 389 TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) { | 380 TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) { |
| 390 InitComponentExtension(); | 381 InitComponentExtension(); |
| 391 InputMethodDescriptors methods; | 382 InputMethodDescriptors methods; |
| 392 if (extension_ime_util::UseWrappedExtensionKeyboardLayouts()) { | 383 methods = manager_->GetComponentExtensionIMEManager() |
| 393 methods = manager_->GetComponentExtensionIMEManager() | 384 ->GetXkbIMEAsInputMethodDescriptor(); |
| 394 ->GetXkbIMEAsInputMethodDescriptor(); | |
| 395 } else { | |
| 396 methods = *(manager_->GetSupportedInputMethods()); | |
| 397 } | |
| 398 // Try to find random 4-5 layuts and IMEs to make sure the returned list is | 385 // Try to find random 4-5 layuts and IMEs to make sure the returned list is |
| 399 // correct. | 386 // correct. |
| 400 const InputMethodDescriptor* id_to_find = | 387 const InputMethodDescriptor* id_to_find = |
| 401 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 388 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 402 kNaclMozcUsId); | 389 ImeIdFromEngineId(kNaclMozcUsId)); |
| 403 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 390 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 404 XkbId("xkb:us::eng")); | 391 ImeIdFromEngineId("xkb:us::eng")); |
| 405 EXPECT_TRUE(Contain(methods, *id_to_find)); | 392 EXPECT_TRUE(Contain(methods, *id_to_find)); |
| 406 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 393 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 407 XkbId("xkb:us:dvorak:eng")); | 394 ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 408 EXPECT_TRUE(Contain(methods, *id_to_find)); | 395 EXPECT_TRUE(Contain(methods, *id_to_find)); |
| 409 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 396 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 410 XkbId("xkb:fr::fra")); | 397 ImeIdFromEngineId("xkb:fr::fra")); |
| 411 EXPECT_TRUE(Contain(methods, *id_to_find)); | 398 EXPECT_TRUE(Contain(methods, *id_to_find)); |
| 412 } | 399 } |
| 413 | 400 |
| 414 TEST_F(InputMethodManagerImplTest, TestEnableLayouts) { | 401 TEST_F(InputMethodManagerImplTest, TestEnableLayouts) { |
| 415 // Currently 5 keyboard layouts are supported for en-US, and 1 for ja. See | 402 // Currently 5 keyboard layouts are supported for en-US, and 1 for ja. See |
| 416 // ibus_input_method.txt. | 403 // ibus_input_method.txt. |
| 417 std::vector<std::string> keyboard_layouts; | 404 std::vector<std::string> keyboard_layouts; |
| 418 | 405 |
| 419 InitComponentExtension(); | 406 InitComponentExtension(); |
| 420 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 407 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
| 421 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 408 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
| 422 | 409 |
| 423 // For http://crbug.com/19655#c11 - (5) | 410 // For http://crbug.com/19655#c11 - (5) |
| 424 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. | 411 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. |
| 425 manager_->EnableLoginLayouts("ja", keyboard_layouts); // Japanese | 412 manager_->EnableLoginLayouts("ja", keyboard_layouts); // Japanese |
| 426 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 413 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 427 } | 414 } |
| 428 | 415 |
| 429 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsAndCurrentInputMethod) { | 416 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsAndCurrentInputMethod) { |
| 430 // For http://crbug.com/329061 | 417 // For http://crbug.com/329061 |
| 431 std::vector<std::string> keyboard_layouts; | 418 std::vector<std::string> keyboard_layouts; |
| 432 keyboard_layouts.push_back(XkbId("xkb:se::swe")); | 419 keyboard_layouts.push_back(ImeIdFromEngineId("xkb:se::swe")); |
| 433 | 420 |
| 434 InitComponentExtension(); | 421 InitComponentExtension(); |
| 435 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 422 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
| 436 const std::string im_id = manager_->GetCurrentInputMethod().id(); | 423 const std::string im_id = manager_->GetCurrentInputMethod().id(); |
| 437 EXPECT_EQ(XkbId("xkb:se::swe"), im_id); | 424 EXPECT_EQ(ImeIdFromEngineId("xkb:se::swe"), im_id); |
| 438 } | 425 } |
| 439 | 426 |
| 440 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsNonUsHardwareKeyboard) { | 427 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsNonUsHardwareKeyboard) { |
| 441 InitComponentExtension(); | 428 InitComponentExtension(); |
| 442 // The physical layout is French. | 429 // The physical layout is French. |
| 443 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( | 430 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( |
| 444 "xkb:fr::fra"); | 431 "xkb:fr::fra"); |
| 445 manager_->EnableLoginLayouts( | 432 manager_->EnableLoginLayouts( |
| 446 "en-US", | 433 "en-US", |
| 447 manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds()); | 434 manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds()); |
| 448 EXPECT_EQ(6U, manager_->GetNumActiveInputMethods()); // 5 + French | 435 EXPECT_EQ(6U, manager_->GetNumActiveInputMethods()); // 5 + French |
| 449 // The physical layout is Japanese. | 436 // The physical layout is Japanese. |
| 450 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( | 437 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( |
| 451 "xkb:jp::jpn"); | 438 "xkb:jp::jpn"); |
| 452 manager_->EnableLoginLayouts( | 439 manager_->EnableLoginLayouts( |
| 453 "ja", | 440 "ja", |
| 454 manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds()); | 441 manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds()); |
| 455 // "xkb:us::eng" is not needed, hence 1. | 442 // "xkb:us::eng" is not needed, hence 1. |
| 456 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 443 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 457 | 444 |
| 458 // The physical layout is Russian. | 445 // The physical layout is Russian. |
| 459 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( | 446 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( |
| 460 "xkb:ru::rus"); | 447 "xkb:ru::rus"); |
| 461 manager_->EnableLoginLayouts( | 448 manager_->EnableLoginLayouts( |
| 462 "ru", | 449 "ru", |
| 463 manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds()); | 450 manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds()); |
| 464 // "xkb:us::eng" only. | 451 // "xkb:us::eng" only. |
| 465 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 452 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 466 EXPECT_EQ(XkbId("xkb:us::eng"), | 453 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 467 manager_->GetActiveInputMethodIds().front()); | 454 manager_->GetActiveInputMethodIds().front()); |
| 468 } | 455 } |
| 469 | 456 |
| 470 TEST_F(InputMethodManagerImplTest, TestEnableMultipleHardwareKeyboardLayout) { | 457 TEST_F(InputMethodManagerImplTest, TestEnableMultipleHardwareKeyboardLayout) { |
| 471 InitComponentExtension(); | 458 InitComponentExtension(); |
| 472 // The physical layouts are French and Hungarian. | 459 // The physical layouts are French and Hungarian. |
| 473 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( | 460 manager_->GetInputMethodUtil()->SetHardwareKeyboardLayoutForTesting( |
| 474 "xkb:fr::fra,xkb:hu::hun"); | 461 "xkb:fr::fra,xkb:hu::hun"); |
| 475 manager_->EnableLoginLayouts( | 462 manager_->EnableLoginLayouts( |
| 476 "en-US", | 463 "en-US", |
| (...skipping 19 matching lines...) Expand all Loading... |
| 496 InitComponentExtension(); | 483 InitComponentExtension(); |
| 497 std::vector<std::string> keyboard_layouts; | 484 std::vector<std::string> keyboard_layouts; |
| 498 manager_->EnableLoginLayouts("ja", keyboard_layouts); // Japanese | 485 manager_->EnableLoginLayouts("ja", keyboard_layouts); // Japanese |
| 499 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 486 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 500 scoped_ptr<InputMethodDescriptors> methods( | 487 scoped_ptr<InputMethodDescriptors> methods( |
| 501 manager_->GetActiveInputMethods()); | 488 manager_->GetActiveInputMethods()); |
| 502 ASSERT_TRUE(methods.get()); | 489 ASSERT_TRUE(methods.get()); |
| 503 EXPECT_EQ(2U, methods->size()); | 490 EXPECT_EQ(2U, methods->size()); |
| 504 const InputMethodDescriptor* id_to_find = | 491 const InputMethodDescriptor* id_to_find = |
| 505 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 492 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 506 XkbId("xkb:us::eng")); | 493 ImeIdFromEngineId("xkb:us::eng")); |
| 507 EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find)); | 494 EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find)); |
| 508 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 495 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 509 XkbId("xkb:jp::jpn")); | 496 ImeIdFromEngineId("xkb:jp::jpn")); |
| 510 EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find)); | 497 EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find)); |
| 511 } | 498 } |
| 512 | 499 |
| 513 TEST_F(InputMethodManagerImplTest, TestEnableTwoLayouts) { | 500 TEST_F(InputMethodManagerImplTest, TestEnableTwoLayouts) { |
| 514 // For http://crbug.com/19655#c11 - (8), step 6. | 501 // For http://crbug.com/19655#c11 - (8), step 6. |
| 515 TestObserver observer; | 502 TestObserver observer; |
| 516 manager_->AddObserver(&observer); | 503 manager_->AddObserver(&observer); |
| 517 InitComponentExtension(); | 504 InitComponentExtension(); |
| 518 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 505 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 519 std::vector<std::string> ids; | 506 std::vector<std::string> ids; |
| 520 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 507 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 521 ids.push_back(XkbId("xkb:us:colemak:eng")); | 508 ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng")); |
| 522 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 509 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 523 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 510 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 524 // Since all the IDs added avobe are keyboard layouts, Start() should not be | 511 // Since all the IDs added avobe are keyboard layouts, Start() should not be |
| 525 // called. | 512 // called. |
| 526 EXPECT_EQ(1, observer.input_method_changed_count_); | 513 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 527 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 514 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 528 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 515 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 529 // Disable Dvorak. | 516 // Disable Dvorak. |
| 530 ids.erase(ids.begin()); | 517 ids.erase(ids.begin()); |
| 531 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 518 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 532 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 519 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 533 EXPECT_EQ(2, observer.input_method_changed_count_); | 520 EXPECT_EQ(2, observer.input_method_changed_count_); |
| 534 EXPECT_EQ(XkbId(ids[0]), // colemak | 521 EXPECT_EQ(ImeIdFromEngineId(ids[0]), // colemak |
| 535 manager_->GetCurrentInputMethod().id()); | 522 manager_->GetCurrentInputMethod().id()); |
| 536 EXPECT_EQ("us(colemak)", keyboard_->last_layout_); | 523 EXPECT_EQ("us(colemak)", keyboard_->last_layout_); |
| 537 manager_->RemoveObserver(&observer); | 524 manager_->RemoveObserver(&observer); |
| 538 } | 525 } |
| 539 | 526 |
| 540 TEST_F(InputMethodManagerImplTest, TestEnableThreeLayouts) { | 527 TEST_F(InputMethodManagerImplTest, TestEnableThreeLayouts) { |
| 541 // For http://crbug.com/19655#c11 - (9). | 528 // For http://crbug.com/19655#c11 - (9). |
| 542 TestObserver observer; | 529 TestObserver observer; |
| 543 manager_->AddObserver(&observer); | 530 manager_->AddObserver(&observer); |
| 544 InitComponentExtension(); | 531 InitComponentExtension(); |
| 545 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 532 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 546 std::vector<std::string> ids; | 533 std::vector<std::string> ids; |
| 547 ids.push_back(XkbId("xkb:us::eng")); | 534 ids.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 548 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 535 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 549 ids.push_back(XkbId("xkb:us:colemak:eng")); | 536 ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng")); |
| 550 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 537 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 551 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); | 538 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); |
| 552 EXPECT_EQ(1, observer.input_method_changed_count_); | 539 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 553 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 540 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 554 EXPECT_EQ("us", keyboard_->last_layout_); | 541 EXPECT_EQ("us", keyboard_->last_layout_); |
| 555 // Switch to Dvorak. | 542 // Switch to Dvorak. |
| 556 manager_->SwitchToNextInputMethod(); | 543 manager_->SwitchToNextInputMethod(); |
| 557 EXPECT_EQ(2, observer.input_method_changed_count_); | 544 EXPECT_EQ(2, observer.input_method_changed_count_); |
| 558 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 545 EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id()); |
| 559 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 546 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 560 // Disable Dvorak. | 547 // Disable Dvorak. |
| 561 ids.erase(ids.begin() + 1); | 548 ids.erase(ids.begin() + 1); |
| 562 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 549 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 563 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 550 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 564 EXPECT_EQ(3, observer.input_method_changed_count_); | 551 EXPECT_EQ(3, observer.input_method_changed_count_); |
| 565 EXPECT_EQ(XkbId(ids[0]), // US Qwerty | 552 EXPECT_EQ(ImeIdFromEngineId(ids[0]), // US Qwerty |
| 566 manager_->GetCurrentInputMethod().id()); | 553 manager_->GetCurrentInputMethod().id()); |
| 567 EXPECT_EQ("us", keyboard_->last_layout_); | 554 EXPECT_EQ("us", keyboard_->last_layout_); |
| 568 manager_->RemoveObserver(&observer); | 555 manager_->RemoveObserver(&observer); |
| 569 } | 556 } |
| 570 | 557 |
| 571 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme) { | 558 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme) { |
| 572 // For http://crbug.com/19655#c11 - (10). | 559 // For http://crbug.com/19655#c11 - (10). |
| 573 TestObserver observer; | 560 TestObserver observer; |
| 574 manager_->AddObserver(&observer); | 561 manager_->AddObserver(&observer); |
| 575 InitComponentExtension(); | 562 InitComponentExtension(); |
| 576 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 563 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 577 std::vector<std::string> ids; | 564 std::vector<std::string> ids; |
| 578 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 565 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 579 ids.push_back(kNaclMozcUsId); | 566 ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); |
| 580 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 567 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 581 EXPECT_EQ(1, observer.input_method_changed_count_); | 568 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 582 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 569 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 583 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 570 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 584 // Switch to Mozc | 571 // Switch to Mozc |
| 585 manager_->SwitchToNextInputMethod(); | 572 manager_->SwitchToNextInputMethod(); |
| 586 EXPECT_EQ(2, observer.input_method_changed_count_); | 573 EXPECT_EQ(2, observer.input_method_changed_count_); |
| 587 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 574 EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id()); |
| 588 EXPECT_EQ("us", keyboard_->last_layout_); | 575 EXPECT_EQ("us", keyboard_->last_layout_); |
| 589 // Disable Mozc. | 576 // Disable Mozc. |
| 590 ids.erase(ids.begin() + 1); | 577 ids.erase(ids.begin() + 1); |
| 591 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 578 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 592 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 579 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 593 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 580 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 594 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 581 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 595 } | 582 } |
| 596 | 583 |
| 597 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme2) { | 584 TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme2) { |
| 598 // For http://crbug.com/19655#c11 - (11). | 585 // For http://crbug.com/19655#c11 - (11). |
| 599 TestObserver observer; | 586 TestObserver observer; |
| 600 manager_->AddObserver(&observer); | 587 manager_->AddObserver(&observer); |
| 601 InitComponentExtension(); | 588 InitComponentExtension(); |
| 602 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 589 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 603 std::vector<std::string> ids; | 590 std::vector<std::string> ids; |
| 604 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 591 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 605 ids.push_back(kNaclMozcUsId); | 592 ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); |
| 606 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 593 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 607 EXPECT_EQ(1, observer.input_method_changed_count_); | 594 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 608 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 595 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 609 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 596 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 610 | 597 |
| 611 // Disable Dvorak. | 598 // Disable Dvorak. |
| 612 ids.erase(ids.begin()); | 599 ids.erase(ids.begin()); |
| 613 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 600 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 614 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 601 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 615 EXPECT_EQ(XkbId(ids[0]), // Mozc | 602 EXPECT_EQ(ImeIdFromEngineId(ids[0]), // Mozc |
| 616 manager_->GetCurrentInputMethod().id()); | 603 manager_->GetCurrentInputMethod().id()); |
| 617 EXPECT_EQ("us", keyboard_->last_layout_); | 604 EXPECT_EQ("us", keyboard_->last_layout_); |
| 618 manager_->RemoveObserver(&observer); | 605 manager_->RemoveObserver(&observer); |
| 619 } | 606 } |
| 620 | 607 |
| 621 TEST_F(InputMethodManagerImplTest, TestEnableImes) { | 608 TEST_F(InputMethodManagerImplTest, TestEnableImes) { |
| 622 TestObserver observer; | 609 TestObserver observer; |
| 623 manager_->AddObserver(&observer); | 610 manager_->AddObserver(&observer); |
| 624 InitComponentExtension(); | 611 InitComponentExtension(); |
| 625 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 612 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 626 std::vector<std::string> ids; | 613 std::vector<std::string> ids; |
| 627 ids.push_back(kExt2Engine1Id); | 614 ids.push_back(ImeIdFromEngineId(kExt2Engine1Id)); |
| 628 ids.push_back("mozc-dv"); | 615 ids.push_back("mozc-dv"); |
| 629 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 616 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 630 EXPECT_EQ(1, observer.input_method_changed_count_); | 617 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 631 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 618 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 632 EXPECT_EQ("us", keyboard_->last_layout_); | 619 EXPECT_EQ("us", keyboard_->last_layout_); |
| 633 manager_->RemoveObserver(&observer); | 620 manager_->RemoveObserver(&observer); |
| 634 } | 621 } |
| 635 | 622 |
| 636 TEST_F(InputMethodManagerImplTest, TestEnableUnknownIds) { | 623 TEST_F(InputMethodManagerImplTest, TestEnableUnknownIds) { |
| 637 TestObserver observer; | 624 TestObserver observer; |
| 638 manager_->AddObserver(&observer); | 625 manager_->AddObserver(&observer); |
| 639 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 626 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 640 std::vector<std::string> ids; | 627 std::vector<std::string> ids; |
| 641 ids.push_back("xkb:tl::tlh"); // Klingon, which is not supported. | 628 ids.push_back("xkb:tl::tlh"); // Klingon, which is not supported. |
| 642 ids.push_back("unknown-super-cool-ime"); | 629 ids.push_back("unknown-super-cool-ime"); |
| 643 EXPECT_FALSE(manager_->ReplaceEnabledInputMethods(ids)); | 630 EXPECT_FALSE(manager_->ReplaceEnabledInputMethods(ids)); |
| 644 | 631 |
| 645 // TODO(yusukes): Should we fall back to the hardware keyboard layout in this | 632 // TODO(yusukes): Should we fall back to the hardware keyboard layout in this |
| 646 // case? | 633 // case? |
| 647 EXPECT_EQ(0, observer.input_method_changed_count_); | 634 EXPECT_EQ(0, observer.input_method_changed_count_); |
| 648 | 635 |
| 649 manager_->RemoveObserver(&observer); | 636 manager_->RemoveObserver(&observer); |
| 650 } | 637 } |
| 651 | 638 |
| 652 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsThenLock) { | 639 TEST_F(InputMethodManagerImplTest, TestEnableLayoutsThenLock) { |
| 653 // For http://crbug.com/19655#c11 - (14). | 640 // For http://crbug.com/19655#c11 - (14). |
| 654 TestObserver observer; | 641 TestObserver observer; |
| 655 manager_->AddObserver(&observer); | 642 manager_->AddObserver(&observer); |
| 656 InitComponentExtension(); | 643 InitComponentExtension(); |
| 657 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 644 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 658 std::vector<std::string> ids; | 645 std::vector<std::string> ids; |
| 659 ids.push_back(XkbId("xkb:us::eng")); | 646 ids.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 660 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 647 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 661 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 648 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 662 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 649 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 663 EXPECT_EQ(1, observer.input_method_changed_count_); | 650 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 664 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 651 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 665 EXPECT_EQ("us", keyboard_->last_layout_); | 652 EXPECT_EQ("us", keyboard_->last_layout_); |
| 666 | 653 |
| 667 // Switch to Dvorak. | 654 // Switch to Dvorak. |
| 668 manager_->SwitchToNextInputMethod(); | 655 manager_->SwitchToNextInputMethod(); |
| 669 EXPECT_EQ(2, observer.input_method_changed_count_); | 656 EXPECT_EQ(2, observer.input_method_changed_count_); |
| 670 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 657 EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id()); |
| 671 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 658 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 672 | 659 |
| 673 // Lock screen | 660 // Lock screen |
| 674 manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN); | 661 manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN); |
| 675 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 662 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 676 EXPECT_EQ(XkbId(ids[1]), // still Dvorak | 663 EXPECT_EQ(ImeIdFromEngineId(ids[1]), // still Dvorak |
| 677 manager_->GetCurrentInputMethod().id()); | 664 manager_->GetCurrentInputMethod().id()); |
| 678 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 665 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 679 // Switch back to Qwerty. | 666 // Switch back to Qwerty. |
| 680 manager_->SwitchToNextInputMethod(); | 667 manager_->SwitchToNextInputMethod(); |
| 681 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 668 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 682 EXPECT_EQ("us", keyboard_->last_layout_); | 669 EXPECT_EQ("us", keyboard_->last_layout_); |
| 683 | 670 |
| 684 // Unlock screen. The original state, Dvorak, is restored. | 671 // Unlock screen. The original state, Dvorak, is restored. |
| 685 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 672 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 686 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 673 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 687 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 674 EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id()); |
| 688 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 675 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 689 | 676 |
| 690 manager_->RemoveObserver(&observer); | 677 manager_->RemoveObserver(&observer); |
| 691 } | 678 } |
| 692 | 679 |
| 693 TEST_F(InputMethodManagerImplTest, SwitchInputMethodTest) { | 680 TEST_F(InputMethodManagerImplTest, SwitchInputMethodTest) { |
| 694 // For http://crbug.com/19655#c11 - (15). | 681 // For http://crbug.com/19655#c11 - (15). |
| 695 TestObserver observer; | 682 TestObserver observer; |
| 696 manager_->AddObserver(&observer); | 683 manager_->AddObserver(&observer); |
| 697 InitComponentExtension(); | 684 InitComponentExtension(); |
| 698 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 685 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 699 std::vector<std::string> ids; | 686 std::vector<std::string> ids; |
| 700 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 687 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 701 ids.push_back(kExt2Engine2Id); | 688 ids.push_back(ImeIdFromEngineId(kExt2Engine2Id)); |
| 702 ids.push_back(kExt2Engine1Id); | 689 ids.push_back(ImeIdFromEngineId(kExt2Engine1Id)); |
| 703 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 690 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 704 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); | 691 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); |
| 705 EXPECT_EQ(1, observer.input_method_changed_count_); | 692 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 706 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 693 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 707 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 694 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 708 | 695 |
| 709 // Switch to Mozc. | 696 // Switch to Mozc. |
| 710 manager_->SwitchToNextInputMethod(); | 697 manager_->SwitchToNextInputMethod(); |
| 711 EXPECT_EQ(2, observer.input_method_changed_count_); | 698 EXPECT_EQ(2, observer.input_method_changed_count_); |
| 712 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 699 EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id()); |
| 713 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 700 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 714 | 701 |
| 715 // Lock screen | 702 // Lock screen |
| 716 manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN); | 703 manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN); |
| 717 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); // Qwerty+Dvorak. | 704 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); // Qwerty+Dvorak. |
| 718 EXPECT_EQ(XkbId("xkb:us:dvorak:eng"), | 705 EXPECT_EQ(ImeIdFromEngineId("xkb:us:dvorak:eng"), |
| 719 manager_->GetCurrentInputMethod().id()); | 706 manager_->GetCurrentInputMethod().id()); |
| 720 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 707 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 721 manager_->SwitchToNextInputMethod(); | 708 manager_->SwitchToNextInputMethod(); |
| 722 EXPECT_EQ(XkbId("xkb:us::eng"), // The hardware keyboard layout. | 709 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), // The hardware keyboard layout. |
| 723 manager_->GetCurrentInputMethod().id()); | 710 manager_->GetCurrentInputMethod().id()); |
| 724 EXPECT_EQ("us", keyboard_->last_layout_); | 711 EXPECT_EQ("us", keyboard_->last_layout_); |
| 725 | 712 |
| 726 // Unlock screen. The original state, pinyin-dv, is restored. | 713 // Unlock screen. The original state, pinyin-dv, is restored. |
| 727 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 714 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 728 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); // Dvorak and 2 IMEs. | 715 EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); // Dvorak and 2 IMEs. |
| 729 EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id()); | 716 EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id()); |
| 730 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 717 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 731 | 718 |
| 732 manager_->RemoveObserver(&observer); | 719 manager_->RemoveObserver(&observer); |
| 733 } | 720 } |
| 734 | 721 |
| 735 TEST_F(InputMethodManagerImplTest, TestXkbSetting) { | 722 TEST_F(InputMethodManagerImplTest, TestXkbSetting) { |
| 736 // For http://crbug.com/19655#c11 - (8), step 7-11. | 723 // For http://crbug.com/19655#c11 - (8), step 7-11. |
| 737 InitComponentExtension(); | 724 InitComponentExtension(); |
| 738 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 725 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 739 std::vector<std::string> ids; | 726 std::vector<std::string> ids; |
| 740 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 727 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 741 ids.push_back(XkbId("xkb:us:colemak:eng")); | 728 ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng")); |
| 742 ids.push_back(kNaclMozcJpId); | 729 ids.push_back(ImeIdFromEngineId(kNaclMozcJpId)); |
| 743 ids.push_back(kNaclMozcUsId); | 730 ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); |
| 744 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 731 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 745 EXPECT_EQ(4U, manager_->GetNumActiveInputMethods()); | 732 EXPECT_EQ(4U, manager_->GetNumActiveInputMethods()); |
| 746 EXPECT_EQ(1, keyboard_->set_current_keyboard_layout_by_name_count_); | 733 EXPECT_EQ(1, keyboard_->set_current_keyboard_layout_by_name_count_); |
| 747 // See input_methods.txt for an expected XKB layout name. | 734 // See input_methods.txt for an expected XKB layout name. |
| 748 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 735 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 749 manager_->SwitchToNextInputMethod(); | 736 manager_->SwitchToNextInputMethod(); |
| 750 EXPECT_EQ(2, keyboard_->set_current_keyboard_layout_by_name_count_); | 737 EXPECT_EQ(2, keyboard_->set_current_keyboard_layout_by_name_count_); |
| 751 EXPECT_EQ("us(colemak)", keyboard_->last_layout_); | 738 EXPECT_EQ("us(colemak)", keyboard_->last_layout_); |
| 752 manager_->SwitchToNextInputMethod(); | 739 manager_->SwitchToNextInputMethod(); |
| 753 EXPECT_EQ(3, keyboard_->set_current_keyboard_layout_by_name_count_); | 740 EXPECT_EQ(3, keyboard_->set_current_keyboard_layout_by_name_count_); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 780 manager_->ActivateInputMethodMenuItem("key2"); | 767 manager_->ActivateInputMethodMenuItem("key2"); |
| 781 EXPECT_EQ(kKey, mock_engine_handler_->last_activated_property()); | 768 EXPECT_EQ(kKey, mock_engine_handler_->last_activated_property()); |
| 782 } | 769 } |
| 783 | 770 |
| 784 TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodProperties) { | 771 TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodProperties) { |
| 785 InitComponentExtension(); | 772 InitComponentExtension(); |
| 786 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 773 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
| 787 | 774 |
| 788 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 775 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 789 std::vector<std::string> ids; | 776 std::vector<std::string> ids; |
| 790 ids.push_back(XkbId("xkb:us::eng")); | 777 ids.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 791 ids.push_back(kNaclMozcUsId); | 778 ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); |
| 792 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 779 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 793 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 780 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 794 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 781 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
| 795 manager_->ChangeInputMethod(kNaclMozcUsId); | 782 manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId)); |
| 796 | 783 |
| 797 ash::ime::InputMethodMenuItemList current_property_list; | 784 ash::ime::InputMethodMenuItemList current_property_list; |
| 798 current_property_list.push_back(ash::ime::InputMethodMenuItem( | 785 current_property_list.push_back(ash::ime::InputMethodMenuItem( |
| 799 "key", "label", false, false)); | 786 "key", "label", false, false)); |
| 800 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); | 787 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); |
| 801 | 788 |
| 802 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); | 789 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); |
| 803 EXPECT_EQ("key", | 790 EXPECT_EQ("key", |
| 804 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); | 791 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); |
| 805 | 792 |
| 806 manager_->ChangeInputMethod("xkb:us::eng"); | 793 manager_->ChangeInputMethod("xkb:us::eng"); |
| 807 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 794 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
| 808 } | 795 } |
| 809 | 796 |
| 810 TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodPropertiesTwoImes) { | 797 TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodPropertiesTwoImes) { |
| 811 InitComponentExtension(); | 798 InitComponentExtension(); |
| 812 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 799 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
| 813 | 800 |
| 814 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 801 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 815 std::vector<std::string> ids; | 802 std::vector<std::string> ids; |
| 816 ids.push_back(kNaclMozcUsId); // Japanese | 803 ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); // Japanese |
| 817 ids.push_back(kExt2Engine1Id); // T-Chinese | 804 ids.push_back(ImeIdFromEngineId(kExt2Engine1Id)); // T-Chinese |
| 818 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 805 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 819 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 806 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 820 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 807 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
| 821 | 808 |
| 822 ash::ime::InputMethodMenuItemList current_property_list; | 809 ash::ime::InputMethodMenuItemList current_property_list; |
| 823 current_property_list.push_back(ash::ime::InputMethodMenuItem("key-mozc", | 810 current_property_list.push_back(ash::ime::InputMethodMenuItem("key-mozc", |
| 824 "label", | 811 "label", |
| 825 false, | 812 false, |
| 826 false)); | 813 false)); |
| 827 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); | 814 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); |
| 828 | 815 |
| 829 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); | 816 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); |
| 830 EXPECT_EQ("key-mozc", | 817 EXPECT_EQ("key-mozc", |
| 831 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); | 818 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); |
| 832 | 819 |
| 833 manager_->ChangeInputMethod(kExt2Engine1Id); | 820 manager_->ChangeInputMethod(ImeIdFromEngineId(kExt2Engine1Id)); |
| 834 // Since the IME is changed, the property for mozc Japanese should be hidden. | 821 // Since the IME is changed, the property for mozc Japanese should be hidden. |
| 835 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); | 822 EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty()); |
| 836 | 823 |
| 837 // Asynchronous property update signal from mozc-chewing. | 824 // Asynchronous property update signal from mozc-chewing. |
| 838 current_property_list.clear(); | 825 current_property_list.clear(); |
| 839 current_property_list.push_back(ash::ime::InputMethodMenuItem( | 826 current_property_list.push_back(ash::ime::InputMethodMenuItem( |
| 840 "key-chewing", "label", false, false)); | 827 "key-chewing", "label", false, false)); |
| 841 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); | 828 menu_manager_->SetCurrentInputMethodMenuItemList(current_property_list); |
| 842 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); | 829 ASSERT_EQ(1U, menu_manager_->GetCurrentInputMethodMenuItemList().size()); |
| 843 EXPECT_EQ("key-chewing", | 830 EXPECT_EQ("key-chewing", |
| 844 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); | 831 menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key); |
| 845 } | 832 } |
| 846 | 833 |
| 847 TEST_F(InputMethodManagerImplTest, TestNextInputMethod) { | 834 TEST_F(InputMethodManagerImplTest, TestNextInputMethod) { |
| 848 TestObserver observer; | 835 TestObserver observer; |
| 849 manager_->AddObserver(&observer); | 836 manager_->AddObserver(&observer); |
| 850 InitComponentExtension(); | 837 InitComponentExtension(); |
| 851 std::vector<std::string> keyboard_layouts; | 838 std::vector<std::string> keyboard_layouts; |
| 852 keyboard_layouts.push_back(XkbId("xkb:us::eng")); | 839 keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 853 // For http://crbug.com/19655#c11 - (1) | 840 // For http://crbug.com/19655#c11 - (1) |
| 854 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 841 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
| 855 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 842 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
| 856 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 843 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 844 manager_->GetCurrentInputMethod().id()); |
| 857 EXPECT_EQ("us", keyboard_->last_layout_); | 845 EXPECT_EQ("us", keyboard_->last_layout_); |
| 858 manager_->SwitchToNextInputMethod(); | 846 manager_->SwitchToNextInputMethod(); |
| 859 EXPECT_TRUE(observer.last_show_message_); | 847 EXPECT_TRUE(observer.last_show_message_); |
| 860 EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id()); | 848 EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"), |
| 849 manager_->GetCurrentInputMethod().id()); |
| 861 EXPECT_EQ("us(intl)", keyboard_->last_layout_); | 850 EXPECT_EQ("us(intl)", keyboard_->last_layout_); |
| 862 manager_->SwitchToNextInputMethod(); | 851 manager_->SwitchToNextInputMethod(); |
| 863 EXPECT_TRUE(observer.last_show_message_); | 852 EXPECT_TRUE(observer.last_show_message_); |
| 864 EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"), | 853 EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"), |
| 865 manager_->GetCurrentInputMethod().id()); | 854 manager_->GetCurrentInputMethod().id()); |
| 866 EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_); | 855 EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_); |
| 867 manager_->SwitchToNextInputMethod(); | 856 manager_->SwitchToNextInputMethod(); |
| 868 EXPECT_TRUE(observer.last_show_message_); | 857 EXPECT_TRUE(observer.last_show_message_); |
| 869 EXPECT_EQ(XkbId("xkb:us:dvorak:eng"), | 858 EXPECT_EQ(ImeIdFromEngineId("xkb:us:dvorak:eng"), |
| 870 manager_->GetCurrentInputMethod().id()); | 859 manager_->GetCurrentInputMethod().id()); |
| 871 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 860 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 872 manager_->SwitchToNextInputMethod(); | 861 manager_->SwitchToNextInputMethod(); |
| 873 EXPECT_TRUE(observer.last_show_message_); | 862 EXPECT_TRUE(observer.last_show_message_); |
| 874 EXPECT_EQ(XkbId("xkb:us:colemak:eng"), | 863 EXPECT_EQ(ImeIdFromEngineId("xkb:us:colemak:eng"), |
| 875 manager_->GetCurrentInputMethod().id()); | 864 manager_->GetCurrentInputMethod().id()); |
| 876 EXPECT_EQ("us(colemak)", keyboard_->last_layout_); | 865 EXPECT_EQ("us(colemak)", keyboard_->last_layout_); |
| 877 manager_->SwitchToNextInputMethod(); | 866 manager_->SwitchToNextInputMethod(); |
| 878 EXPECT_TRUE(observer.last_show_message_); | 867 EXPECT_TRUE(observer.last_show_message_); |
| 879 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 868 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 869 manager_->GetCurrentInputMethod().id()); |
| 880 EXPECT_EQ("us", keyboard_->last_layout_); | 870 EXPECT_EQ("us", keyboard_->last_layout_); |
| 881 | 871 |
| 882 manager_->RemoveObserver(&observer); | 872 manager_->RemoveObserver(&observer); |
| 883 } | 873 } |
| 884 | 874 |
| 885 TEST_F(InputMethodManagerImplTest, TestPreviousInputMethod) { | 875 TEST_F(InputMethodManagerImplTest, TestPreviousInputMethod) { |
| 886 TestObserver observer; | 876 TestObserver observer; |
| 887 manager_->AddObserver(&observer); | 877 manager_->AddObserver(&observer); |
| 888 InitComponentExtension(); | 878 InitComponentExtension(); |
| 889 | 879 |
| 890 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 880 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 891 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); | 881 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); |
| 892 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 882 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 893 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); | 883 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); |
| 894 | 884 |
| 895 std::vector<std::string> keyboard_layouts; | 885 std::vector<std::string> keyboard_layouts; |
| 896 keyboard_layouts.push_back(XkbId("xkb:us::eng")); | 886 keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 897 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 887 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
| 898 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 888 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
| 899 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 889 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 890 manager_->GetCurrentInputMethod().id()); |
| 900 EXPECT_EQ("us", keyboard_->last_layout_); | 891 EXPECT_EQ("us", keyboard_->last_layout_); |
| 901 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); | 892 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); |
| 902 EXPECT_TRUE(observer.last_show_message_); | 893 EXPECT_TRUE(observer.last_show_message_); |
| 903 EXPECT_EQ(XkbId("xkb:us:intl:eng"), | 894 EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"), |
| 904 manager_->GetCurrentInputMethod().id()); | 895 manager_->GetCurrentInputMethod().id()); |
| 905 EXPECT_EQ("us(intl)", keyboard_->last_layout_); | 896 EXPECT_EQ("us(intl)", keyboard_->last_layout_); |
| 906 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 897 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 907 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 898 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 908 EXPECT_TRUE(observer.last_show_message_); | 899 EXPECT_TRUE(observer.last_show_message_); |
| 909 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 900 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 901 manager_->GetCurrentInputMethod().id()); |
| 910 EXPECT_EQ("us", keyboard_->last_layout_); | 902 EXPECT_EQ("us", keyboard_->last_layout_); |
| 911 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 903 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 912 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 904 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 913 EXPECT_TRUE(observer.last_show_message_); | 905 EXPECT_TRUE(observer.last_show_message_); |
| 914 EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id()); | 906 EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"), |
| 907 manager_->GetCurrentInputMethod().id()); |
| 915 EXPECT_EQ("us(intl)", keyboard_->last_layout_); | 908 EXPECT_EQ("us(intl)", keyboard_->last_layout_); |
| 916 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 909 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 917 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 910 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 918 EXPECT_TRUE(observer.last_show_message_); | 911 EXPECT_TRUE(observer.last_show_message_); |
| 919 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 912 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 913 manager_->GetCurrentInputMethod().id()); |
| 920 EXPECT_EQ("us", keyboard_->last_layout_); | 914 EXPECT_EQ("us", keyboard_->last_layout_); |
| 921 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); | 915 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); |
| 922 EXPECT_TRUE(observer.last_show_message_); | 916 EXPECT_TRUE(observer.last_show_message_); |
| 923 EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id()); | 917 EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"), |
| 918 manager_->GetCurrentInputMethod().id()); |
| 924 EXPECT_EQ("us(intl)", keyboard_->last_layout_); | 919 EXPECT_EQ("us(intl)", keyboard_->last_layout_); |
| 925 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); | 920 EXPECT_TRUE(manager_->SwitchToNextInputMethod()); |
| 926 EXPECT_TRUE(observer.last_show_message_); | 921 EXPECT_TRUE(observer.last_show_message_); |
| 927 EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"), | 922 EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"), |
| 928 manager_->GetCurrentInputMethod().id()); | 923 manager_->GetCurrentInputMethod().id()); |
| 929 EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_); | 924 EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_); |
| 930 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 925 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 931 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 926 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 932 EXPECT_TRUE(observer.last_show_message_); | 927 EXPECT_TRUE(observer.last_show_message_); |
| 933 EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id()); | 928 EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"), |
| 929 manager_->GetCurrentInputMethod().id()); |
| 934 EXPECT_EQ("us(intl)", keyboard_->last_layout_); | 930 EXPECT_EQ("us(intl)", keyboard_->last_layout_); |
| 935 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 931 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 936 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 932 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 937 EXPECT_TRUE(observer.last_show_message_); | 933 EXPECT_TRUE(observer.last_show_message_); |
| 938 EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"), | 934 EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"), |
| 939 manager_->GetCurrentInputMethod().id()); | 935 manager_->GetCurrentInputMethod().id()); |
| 940 EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_); | 936 EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_); |
| 941 | 937 |
| 942 manager_->RemoveObserver(&observer); | 938 manager_->RemoveObserver(&observer); |
| 943 } | 939 } |
| 944 | 940 |
| 945 TEST_F(InputMethodManagerImplTest, | 941 TEST_F(InputMethodManagerImplTest, |
| 946 TestSwitchToPreviousInputMethodForOneActiveInputMethod) { | 942 TestSwitchToPreviousInputMethodForOneActiveInputMethod) { |
| 947 TestObserver observer; | 943 TestObserver observer; |
| 948 manager_->AddObserver(&observer); | 944 manager_->AddObserver(&observer); |
| 949 InitComponentExtension(); | 945 InitComponentExtension(); |
| 950 | 946 |
| 951 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 947 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 952 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); | 948 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); |
| 953 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 949 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 954 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); | 950 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); |
| 955 | 951 |
| 956 std::vector<std::string> ids; | 952 std::vector<std::string> ids; |
| 957 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 953 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 958 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 954 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 959 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 955 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 960 | 956 |
| 961 // Ctrl+Space accelerator should not be consumed if there is only one active | 957 // Ctrl+Space accelerator should not be consumed if there is only one active |
| 962 // input method. | 958 // input method. |
| 963 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 959 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 964 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 960 EXPECT_FALSE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 965 | 961 |
| 966 manager_->RemoveObserver(&observer); | 962 manager_->RemoveObserver(&observer); |
| 967 } | 963 } |
| 968 | 964 |
| 969 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithUsLayouts) { | 965 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithUsLayouts) { |
| 970 std::string expect_id = XkbId("xkb:us::eng"); | 966 std::string expect_id = ImeIdFromEngineId("xkb:us::eng"); |
| 971 TestObserver observer; | 967 TestObserver observer; |
| 972 manager_->AddObserver(&observer); | 968 manager_->AddObserver(&observer); |
| 973 InitComponentExtension(); | 969 InitComponentExtension(); |
| 974 std::vector<std::string> keyboard_layouts; | 970 std::vector<std::string> keyboard_layouts; |
| 975 keyboard_layouts.push_back(XkbId("xkb:us::eng")); | 971 keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 976 manager_->EnableLoginLayouts("en-US", keyboard_layouts); | 972 manager_->EnableLoginLayouts("en-US", keyboard_layouts); |
| 977 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 973 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
| 978 EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id()); | 974 EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id()); |
| 979 EXPECT_EQ("us", keyboard_->last_layout_); | 975 EXPECT_EQ("us", keyboard_->last_layout_); |
| 980 | 976 |
| 981 // Henkan, Muhenkan, ZenkakuHankaku should be ignored when no Japanese IMEs | 977 // Henkan, Muhenkan, ZenkakuHankaku should be ignored when no Japanese IMEs |
| 982 // and keyboards are enabled. | 978 // and keyboards are enabled. |
| 983 EXPECT_FALSE(manager_->SwitchInputMethod( | 979 EXPECT_FALSE(manager_->SwitchInputMethod( |
| 984 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); | 980 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); |
| 985 EXPECT_FALSE(observer.last_show_message_); | 981 EXPECT_FALSE(observer.last_show_message_); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1004 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpLayout) { | 1000 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpLayout) { |
| 1005 // Enable "xkb:jp::jpn" and press Muhenkan/ZenkakuHankaku. | 1001 // Enable "xkb:jp::jpn" and press Muhenkan/ZenkakuHankaku. |
| 1006 InitComponentExtension(); | 1002 InitComponentExtension(); |
| 1007 | 1003 |
| 1008 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 1004 ui::Accelerator keydown_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 1009 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); | 1005 keydown_accelerator.set_type(ui::ET_KEY_PRESSED); |
| 1010 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 1006 ui::Accelerator keyup_accelerator(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 1011 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); | 1007 keyup_accelerator.set_type(ui::ET_KEY_RELEASED); |
| 1012 | 1008 |
| 1013 std::vector<std::string> keyboard_layouts; | 1009 std::vector<std::string> keyboard_layouts; |
| 1014 keyboard_layouts.push_back(XkbId("xkb:us::eng")); | 1010 keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 1015 manager_->EnableLoginLayouts("ja", keyboard_layouts); | 1011 manager_->EnableLoginLayouts("ja", keyboard_layouts); |
| 1016 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 1012 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 1017 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 1013 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 1014 manager_->GetCurrentInputMethod().id()); |
| 1018 EXPECT_EQ("us", keyboard_->last_layout_); | 1015 EXPECT_EQ("us", keyboard_->last_layout_); |
| 1019 EXPECT_TRUE(manager_->SwitchInputMethod( | 1016 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1020 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); | 1017 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); |
| 1021 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1018 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1019 manager_->GetCurrentInputMethod().id()); |
| 1022 EXPECT_EQ("jp", keyboard_->last_layout_); | 1020 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1023 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 1021 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 1024 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 1022 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 1025 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 1023 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 1024 manager_->GetCurrentInputMethod().id()); |
| 1026 EXPECT_EQ("us", keyboard_->last_layout_); | 1025 EXPECT_EQ("us", keyboard_->last_layout_); |
| 1027 EXPECT_TRUE(manager_->SwitchInputMethod( | 1026 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1028 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); | 1027 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); |
| 1029 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1028 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1029 manager_->GetCurrentInputMethod().id()); |
| 1030 EXPECT_EQ("jp", keyboard_->last_layout_); | 1030 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1031 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); | 1031 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator)); |
| 1032 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); | 1032 EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator)); |
| 1033 EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id()); | 1033 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 1034 manager_->GetCurrentInputMethod().id()); |
| 1034 EXPECT_EQ("us", keyboard_->last_layout_); | 1035 EXPECT_EQ("us", keyboard_->last_layout_); |
| 1035 EXPECT_TRUE(manager_->SwitchInputMethod( | 1036 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1036 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); | 1037 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); |
| 1037 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1038 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1039 manager_->GetCurrentInputMethod().id()); |
| 1038 EXPECT_EQ("jp", keyboard_->last_layout_); | 1040 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1039 } | 1041 } |
| 1040 | 1042 |
| 1041 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpIme) { | 1043 TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpIme) { |
| 1042 InitComponentExtension(); | 1044 InitComponentExtension(); |
| 1043 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1045 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 1044 std::vector<std::string> ids; | 1046 std::vector<std::string> ids; |
| 1045 ids.push_back(XkbId("xkb:jp::jpn")); | 1047 ids.push_back(ImeIdFromEngineId("xkb:jp::jpn")); |
| 1046 ids.push_back(kNaclMozcJpId); | 1048 ids.push_back(ImeIdFromEngineId(kNaclMozcJpId)); |
| 1047 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1049 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 1048 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1050 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1051 manager_->GetCurrentInputMethod().id()); |
| 1049 EXPECT_EQ("jp", keyboard_->last_layout_); | 1052 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1050 EXPECT_TRUE(manager_->SwitchInputMethod( | 1053 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1051 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); | 1054 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); |
| 1052 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); | 1055 EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId), |
| 1056 manager_->GetCurrentInputMethod().id()); |
| 1053 EXPECT_EQ("jp", keyboard_->last_layout_); | 1057 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1054 EXPECT_TRUE(manager_->SwitchInputMethod( | 1058 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1055 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); | 1059 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE))); |
| 1056 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1060 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1061 manager_->GetCurrentInputMethod().id()); |
| 1057 EXPECT_EQ("jp", keyboard_->last_layout_); | 1062 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1058 EXPECT_TRUE(manager_->SwitchInputMethod( | 1063 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1059 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); | 1064 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); |
| 1060 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); | 1065 EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId), |
| 1066 manager_->GetCurrentInputMethod().id()); |
| 1061 EXPECT_EQ("jp", keyboard_->last_layout_); | 1067 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1062 EXPECT_TRUE(manager_->SwitchInputMethod( | 1068 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1063 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); | 1069 ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE))); |
| 1064 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); | 1070 EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId), |
| 1071 manager_->GetCurrentInputMethod().id()); |
| 1065 EXPECT_EQ("jp", keyboard_->last_layout_); | 1072 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1066 EXPECT_TRUE(manager_->SwitchInputMethod( | 1073 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1067 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); | 1074 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); |
| 1068 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1075 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1076 manager_->GetCurrentInputMethod().id()); |
| 1069 EXPECT_EQ("jp", keyboard_->last_layout_); | 1077 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1070 EXPECT_TRUE(manager_->SwitchInputMethod( | 1078 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1071 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); | 1079 ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE))); |
| 1072 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1080 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1081 manager_->GetCurrentInputMethod().id()); |
| 1073 EXPECT_EQ("jp", keyboard_->last_layout_); | 1082 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1074 | 1083 |
| 1075 // Add Dvorak. | 1084 // Add Dvorak. |
| 1076 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 1085 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 1077 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1086 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 1078 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1087 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1088 manager_->GetCurrentInputMethod().id()); |
| 1079 EXPECT_EQ("jp", keyboard_->last_layout_); | 1089 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1080 EXPECT_TRUE(manager_->SwitchInputMethod( | 1090 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1081 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); | 1091 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); |
| 1082 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); | 1092 EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId), |
| 1093 manager_->GetCurrentInputMethod().id()); |
| 1083 EXPECT_EQ("jp", keyboard_->last_layout_); | 1094 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1084 EXPECT_TRUE(manager_->SwitchInputMethod( | 1095 EXPECT_TRUE(manager_->SwitchInputMethod( |
| 1085 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); | 1096 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE))); |
| 1086 EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id()); | 1097 EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"), |
| 1098 manager_->GetCurrentInputMethod().id()); |
| 1087 EXPECT_EQ("jp", keyboard_->last_layout_); | 1099 EXPECT_EQ("jp", keyboard_->last_layout_); |
| 1088 } | 1100 } |
| 1089 | 1101 |
| 1090 TEST_F(InputMethodManagerImplTest, TestAddRemoveExtensionInputMethods) { | 1102 TEST_F(InputMethodManagerImplTest, TestAddRemoveExtensionInputMethods) { |
| 1091 TestObserver observer; | 1103 TestObserver observer; |
| 1092 manager_->AddObserver(&observer); | 1104 manager_->AddObserver(&observer); |
| 1093 InitComponentExtension(); | 1105 InitComponentExtension(); |
| 1094 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1106 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 1095 std::vector<std::string> ids; | 1107 std::vector<std::string> ids; |
| 1096 ids.push_back(XkbId("xkb:us:dvorak:eng")); | 1108 ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng")); |
| 1097 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1109 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 1098 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 1110 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 1099 EXPECT_EQ(1, observer.input_method_changed_count_); | 1111 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 1100 EXPECT_EQ(XkbId(ids[0]), | 1112 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 1101 manager_->GetCurrentInputMethod().id()); | |
| 1102 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 1113 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 1103 | 1114 |
| 1104 // Add two Extension IMEs. | 1115 // Add two Extension IMEs. |
| 1105 std::vector<std::string> layouts; | 1116 std::vector<std::string> layouts; |
| 1106 layouts.push_back("us"); | 1117 layouts.push_back("us"); |
| 1107 std::vector<std::string> languages; | 1118 std::vector<std::string> languages; |
| 1108 languages.push_back("en-US"); | 1119 languages.push_back("en-US"); |
| 1109 | 1120 |
| 1110 const std::string ext1_id = | 1121 const std::string ext1_id = |
| 1111 extension_ime_util::GetInputMethodID("deadbeef", "engine_id"); | 1122 extension_ime_util::GetInputMethodID("deadbeef", "engine_id"); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1168 manager_->RemoveInputMethodExtension(ext2_id); | 1179 manager_->RemoveInputMethodExtension(ext2_id); |
| 1169 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 1180 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 1170 } | 1181 } |
| 1171 | 1182 |
| 1172 TEST_F(InputMethodManagerImplTest, TestAddExtensionInputThenLockScreen) { | 1183 TEST_F(InputMethodManagerImplTest, TestAddExtensionInputThenLockScreen) { |
| 1173 TestObserver observer; | 1184 TestObserver observer; |
| 1174 InitComponentExtension(); | 1185 InitComponentExtension(); |
| 1175 manager_->AddObserver(&observer); | 1186 manager_->AddObserver(&observer); |
| 1176 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1187 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 1177 std::vector<std::string> ids; | 1188 std::vector<std::string> ids; |
| 1178 ids.push_back(XkbId("xkb:us::eng")); | 1189 ids.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 1179 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1190 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 1180 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 1191 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 1181 EXPECT_EQ(1, observer.input_method_changed_count_); | 1192 EXPECT_EQ(1, observer.input_method_changed_count_); |
| 1182 EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id()); | 1193 EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id()); |
| 1183 EXPECT_EQ("us", keyboard_->last_layout_); | 1194 EXPECT_EQ("us", keyboard_->last_layout_); |
| 1184 | 1195 |
| 1185 // Add an Extension IME. | 1196 // Add an Extension IME. |
| 1186 std::vector<std::string> layouts; | 1197 std::vector<std::string> layouts; |
| 1187 layouts.push_back("us(dvorak)"); | 1198 layouts.push_back("us(dvorak)"); |
| 1188 std::vector<std::string> languages; | 1199 std::vector<std::string> languages; |
| 1189 languages.push_back("en-US"); | 1200 languages.push_back("en-US"); |
| 1190 | 1201 |
| 1191 const std::string ext_id = | 1202 const std::string ext_id = |
| 1192 extension_ime_util::GetInputMethodID("deadbeef", "engine_id"); | 1203 extension_ime_util::GetInputMethodID("deadbeef", "engine_id"); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1212 | 1223 |
| 1213 // Switch to the IME. | 1224 // Switch to the IME. |
| 1214 manager_->SwitchToNextInputMethod(); | 1225 manager_->SwitchToNextInputMethod(); |
| 1215 EXPECT_EQ(3, observer.input_method_changed_count_); | 1226 EXPECT_EQ(3, observer.input_method_changed_count_); |
| 1216 EXPECT_EQ(ext_id, manager_->GetCurrentInputMethod().id()); | 1227 EXPECT_EQ(ext_id, manager_->GetCurrentInputMethod().id()); |
| 1217 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 1228 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 1218 | 1229 |
| 1219 // Lock the screen. This is for crosbug.com/27049. | 1230 // Lock the screen. This is for crosbug.com/27049. |
| 1220 manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN); | 1231 manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN); |
| 1221 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); // Qwerty. No Ext. IME | 1232 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); // Qwerty. No Ext. IME |
| 1222 EXPECT_EQ(XkbId("xkb:us::eng"), | 1233 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), |
| 1223 manager_->GetCurrentInputMethod().id()); | 1234 manager_->GetCurrentInputMethod().id()); |
| 1224 EXPECT_EQ("us", keyboard_->last_layout_); | 1235 EXPECT_EQ("us", keyboard_->last_layout_); |
| 1225 | 1236 |
| 1226 // Unlock the screen. | 1237 // Unlock the screen. |
| 1227 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1238 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 1228 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 1239 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 1229 EXPECT_EQ(ext_id, manager_->GetCurrentInputMethod().id()); | 1240 EXPECT_EQ(ext_id, manager_->GetCurrentInputMethod().id()); |
| 1230 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); | 1241 EXPECT_EQ("us(dvorak)", keyboard_->last_layout_); |
| 1231 { | 1242 { |
| 1232 // This is for crosbug.com/27052. | 1243 // This is for crosbug.com/27052. |
| 1233 scoped_ptr<InputMethodDescriptors> methods( | 1244 scoped_ptr<InputMethodDescriptors> methods( |
| 1234 manager_->GetActiveInputMethods()); | 1245 manager_->GetActiveInputMethods()); |
| 1235 ASSERT_EQ(2U, methods->size()); | 1246 ASSERT_EQ(2U, methods->size()); |
| 1236 // Ext. IMEs should be at the end of the list. | 1247 // Ext. IMEs should be at the end of the list. |
| 1237 EXPECT_EQ(ext_id, methods->at(1).id()); | 1248 EXPECT_EQ(ext_id, methods->at(1).id()); |
| 1238 } | 1249 } |
| 1239 manager_->RemoveObserver(&observer); | 1250 manager_->RemoveObserver(&observer); |
| 1240 } | 1251 } |
| 1241 | 1252 |
| 1242 TEST_F(InputMethodManagerImplTest, | 1253 TEST_F(InputMethodManagerImplTest, |
| 1243 ChangeInputMethodBeforeComponentExtensionInitialization_OneIME) { | 1254 ChangeInputMethodBeforeComponentExtensionInitialization_OneIME) { |
| 1244 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1255 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 1245 std::vector<std::string> ids; | 1256 std::vector<std::string> ids; |
| 1246 ids.push_back(kNaclMozcUsId); | 1257 ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); |
| 1247 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1258 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 1248 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); | 1259 EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); |
| 1249 manager_->ChangeInputMethod(kNaclMozcUsId); | 1260 manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId)); |
| 1250 | 1261 |
| 1251 InitComponentExtension(); | 1262 InitComponentExtension(); |
| 1252 EXPECT_EQ(kNaclMozcUsId, manager_->GetCurrentInputMethod().id()); | 1263 EXPECT_EQ(ImeIdFromEngineId(kNaclMozcUsId), |
| 1264 manager_->GetCurrentInputMethod().id()); |
| 1253 } | 1265 } |
| 1254 | 1266 |
| 1255 TEST_F(InputMethodManagerImplTest, | 1267 TEST_F(InputMethodManagerImplTest, |
| 1256 ChangeInputMethodBeforeComponentExtensionInitialization_TwoIME) { | 1268 ChangeInputMethodBeforeComponentExtensionInitialization_TwoIME) { |
| 1257 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1269 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 1258 std::vector<std::string> ids; | 1270 std::vector<std::string> ids; |
| 1259 ids.push_back(kNaclMozcUsId); | 1271 ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); |
| 1260 ids.push_back(kNaclMozcJpId); | 1272 ids.push_back(ImeIdFromEngineId(kNaclMozcJpId)); |
| 1261 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1273 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 1262 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 1274 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 1263 manager_->ChangeInputMethod(kNaclMozcUsId); | 1275 manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId)); |
| 1264 manager_->ChangeInputMethod(kNaclMozcJpId); | 1276 manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcJpId)); |
| 1265 | 1277 |
| 1266 InitComponentExtension(); | 1278 InitComponentExtension(); |
| 1267 EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id()); | 1279 EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId), |
| 1280 manager_->GetCurrentInputMethod().id()); |
| 1268 } | 1281 } |
| 1269 | 1282 |
| 1270 TEST_F(InputMethodManagerImplTest, | 1283 TEST_F(InputMethodManagerImplTest, |
| 1271 ChangeInputMethodBeforeComponentExtensionInitialization_CompOneIME) { | 1284 ChangeInputMethodBeforeComponentExtensionInitialization_CompOneIME) { |
| 1272 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); | 1285 manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN); |
| 1273 const std::string ext_id = extension_ime_util::GetComponentInputMethodID( | 1286 const std::string ext_id = extension_ime_util::GetComponentInputMethodID( |
| 1274 ime_list_[1].id, | 1287 ime_list_[1].id, |
| 1275 ime_list_[1].engines[0].engine_id); | 1288 ime_list_[1].engines[0].engine_id); |
| 1276 std::vector<std::string> ids; | 1289 std::vector<std::string> ids; |
| 1277 ids.push_back(ext_id); | 1290 ids.push_back(ext_id); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1331 std::vector<std::string> ids; | 1344 std::vector<std::string> ids; |
| 1332 ids.push_back(ext_id1); | 1345 ids.push_back(ext_id1); |
| 1333 ids.push_back(ext_id2); | 1346 ids.push_back(ext_id2); |
| 1334 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); | 1347 EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids)); |
| 1335 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 1348 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 1336 EXPECT_EQ(ext_id1, manager_->GetCurrentInputMethod().id()); | 1349 EXPECT_EQ(ext_id1, manager_->GetCurrentInputMethod().id()); |
| 1337 manager_->ChangeInputMethod(ext_id2); | 1350 manager_->ChangeInputMethod(ext_id2); |
| 1338 EXPECT_EQ(ext_id2, manager_->GetCurrentInputMethod().id()); | 1351 EXPECT_EQ(ext_id2, manager_->GetCurrentInputMethod().id()); |
| 1339 } | 1352 } |
| 1340 | 1353 |
| 1341 TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest_1) { | 1354 TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest) { |
| 1342 extension_ime_util::ScopedUseExtensionKeyboardFlagForTesting | |
| 1343 scoped_flag(true); | |
| 1344 | |
| 1345 std::vector<std::string> input_method_ids; | 1355 std::vector<std::string> input_method_ids; |
| 1346 input_method_ids.push_back("xkb:us::eng"); | 1356 input_method_ids.push_back("xkb:us::eng"); |
| 1347 input_method_ids.push_back("xkb:fr::fra"); | 1357 input_method_ids.push_back("xkb:fr::fra"); |
| 1348 input_method_ids.push_back( | 1358 input_method_ids.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 1349 std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng"); | |
| 1350 input_method_ids.push_back("xkb:fr::fra"); | 1359 input_method_ids.push_back("xkb:fr::fra"); |
| 1351 input_method_ids.push_back( | 1360 input_method_ids.push_back(ImeIdFromEngineId("xkb:us::eng")); |
| 1352 std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng"); | |
| 1353 input_method_ids.push_back("_comp_ime_asdf_pinyin"); | 1361 input_method_ids.push_back("_comp_ime_asdf_pinyin"); |
| 1354 input_method_ids.push_back(kNaclMozcUsId); | 1362 input_method_ids.push_back(ImeIdFromEngineId(kPinyinImeId)); |
| 1355 | 1363 |
| 1356 manager_->MigrateInputMethods(&input_method_ids); | 1364 manager_->MigrateInputMethods(&input_method_ids); |
| 1357 | 1365 |
| 1358 ASSERT_EQ(4U, input_method_ids.size()); | 1366 ASSERT_EQ(4U, input_method_ids.size()); |
| 1359 | 1367 |
| 1360 EXPECT_EQ(std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng", | 1368 EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), input_method_ids[0]); |
| 1361 input_method_ids[0]); | 1369 EXPECT_EQ(ImeIdFromEngineId("xkb:fr::fra"), input_method_ids[1]); |
| 1362 EXPECT_EQ(std::string("_comp_ime_") + kXkbExtId + "xkb:fr::fra", | |
| 1363 input_method_ids[1]); | |
| 1364 EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]); | 1370 EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]); |
| 1365 EXPECT_EQ("_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_us", | 1371 EXPECT_EQ(ImeIdFromEngineId("zh-t-i0-pinyin"), input_method_ids[3]); |
| 1366 input_method_ids[3]); | |
| 1367 } | |
| 1368 | |
| 1369 TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest_2) { | |
| 1370 extension_ime_util::ScopedUseExtensionKeyboardFlagForTesting | |
| 1371 scoped_flag(false); | |
| 1372 | |
| 1373 std::vector<std::string> input_method_ids; | |
| 1374 input_method_ids.push_back("xkb:us::eng"); | |
| 1375 input_method_ids.push_back("xkb:fr::fra"); | |
| 1376 input_method_ids.push_back( | |
| 1377 std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng"); | |
| 1378 input_method_ids.push_back("xkb:fr::fra"); | |
| 1379 input_method_ids.push_back( | |
| 1380 std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng"); | |
| 1381 input_method_ids.push_back("_comp_ime_asdf_pinyin"); | |
| 1382 | |
| 1383 manager_->MigrateInputMethods(&input_method_ids); | |
| 1384 | |
| 1385 ASSERT_EQ(3U, input_method_ids.size()); | |
| 1386 | |
| 1387 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); | |
| 1388 EXPECT_EQ("xkb:fr::fra", input_method_ids[1]); | |
| 1389 EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]); | |
| 1390 } | 1372 } |
| 1391 | 1373 |
| 1392 } // namespace input_method | 1374 } // namespace input_method |
| 1393 } // namespace chromeos | 1375 } // namespace chromeos |
| OLD | NEW |