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_util.h" | 5 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 } | 109 } |
110 { | 110 { |
111 InputMethodDescriptor desc = GetDesc("xkb:de:neo:ger", "de(neo)", "de"); | 111 InputMethodDescriptor desc = GetDesc("xkb:de:neo:ger", "de(neo)", "de"); |
112 EXPECT_EQ(ASCIIToUTF16("NEO"), util_.GetInputMethodShortName(desc)); | 112 EXPECT_EQ(ASCIIToUTF16("NEO"), util_.GetInputMethodShortName(desc)); |
113 } | 113 } |
114 { | 114 { |
115 InputMethodDescriptor desc = GetDesc("xkb:es:cat:cat", "es(cat)", "ca"); | 115 InputMethodDescriptor desc = GetDesc("xkb:es:cat:cat", "es(cat)", "ca"); |
116 EXPECT_EQ(ASCIIToUTF16("CAS"), util_.GetInputMethodShortName(desc)); | 116 EXPECT_EQ(ASCIIToUTF16("CAS"), util_.GetInputMethodShortName(desc)); |
117 } | 117 } |
118 { | 118 { |
119 InputMethodDescriptor desc = GetDesc("mozc", "us", "ja"); | |
120 EXPECT_EQ(UTF8ToUTF16("\xe3\x81\x82"), | |
121 util_.GetInputMethodShortName(desc)); | |
122 } | |
123 { | |
124 InputMethodDescriptor desc = GetDesc("mozc-jp", "jp", "ja"); | |
125 EXPECT_EQ(UTF8ToUTF16("\xe3\x81\x82"), | |
126 util_.GetInputMethodShortName(desc)); | |
127 } | |
128 { | |
129 InputMethodDescriptor desc = GetDesc("pinyin", "us", "zh-CN"); | 119 InputMethodDescriptor desc = GetDesc("pinyin", "us", "zh-CN"); |
130 EXPECT_EQ(UTF8ToUTF16("\xe6\x8b\xbc"), | 120 EXPECT_EQ(UTF8ToUTF16("\xe6\x8b\xbc"), |
131 util_.GetInputMethodShortName(desc)); | 121 util_.GetInputMethodShortName(desc)); |
132 } | 122 } |
133 { | 123 { |
134 InputMethodDescriptor desc = GetDesc("pinyin-dv", "us(dvorak)", "zh-CN"); | 124 InputMethodDescriptor desc = GetDesc("pinyin-dv", "us(dvorak)", "zh-CN"); |
135 EXPECT_EQ(UTF8ToUTF16("\xe6\x8b\xbc"), | 125 EXPECT_EQ(UTF8ToUTF16("\xe6\x8b\xbc"), |
136 util_.GetInputMethodShortName(desc)); | 126 util_.GetInputMethodShortName(desc)); |
137 } | 127 } |
138 { | 128 { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 string16 medium_name = util_.GetInputMethodMediumName(desc); | 161 string16 medium_name = util_.GetInputMethodMediumName(desc); |
172 string16 short_name = util_.GetInputMethodShortName(desc); | 162 string16 short_name = util_.GetInputMethodShortName(desc); |
173 EXPECT_EQ(medium_name,short_name); | 163 EXPECT_EQ(medium_name,short_name); |
174 } | 164 } |
175 } | 165 } |
176 { | 166 { |
177 // input methods with medium name not equal to short name | 167 // input methods with medium name not equal to short name |
178 const char * input_method_id[] = { | 168 const char * input_method_id[] = { |
179 "m17n:zh:cangjie", | 169 "m17n:zh:cangjie", |
180 "m17n:zh:quick", | 170 "m17n:zh:quick", |
181 "mozc", | 171 "pinyin", |
182 "mozc-chewing", | 172 "mozc-chewing", |
183 "mozc-dv", | |
184 "mozc-hangul", | 173 "mozc-hangul", |
185 "mozc-jp", | 174 "pinyin", |
186 "pinyin", | 175 "pinyin", |
187 "pinyin-dv", | 176 "pinyin-dv", |
188 }; | 177 }; |
189 const int len = ARRAYSIZE_UNSAFE(input_method_id); | 178 const int len = ARRAYSIZE_UNSAFE(input_method_id); |
190 for (int i=0; i<len; ++i) { | 179 for (int i=0; i<len; ++i) { |
191 InputMethodDescriptor desc = GetDesc(input_method_id[i], "", ""); | 180 InputMethodDescriptor desc = GetDesc(input_method_id[i], "", ""); |
192 string16 medium_name = util_.GetInputMethodMediumName(desc); | 181 string16 medium_name = util_.GetInputMethodMediumName(desc); |
193 string16 short_name = util_.GetInputMethodShortName(desc); | 182 string16 short_name = util_.GetInputMethodShortName(desc); |
194 EXPECT_NE(medium_name,short_name); | 183 EXPECT_NE(medium_name,short_name); |
195 } | 184 } |
(...skipping 12 matching lines...) Expand all Loading... |
208 InputMethodDescriptor desc = GetDesc("mozc-hangul", "us", "ko"); | 197 InputMethodDescriptor desc = GetDesc("mozc-hangul", "us", "ko"); |
209 EXPECT_EQ(ASCIIToUTF16("Korean input method"), | 198 EXPECT_EQ(ASCIIToUTF16("Korean input method"), |
210 util_.GetInputMethodLongName(desc)); | 199 util_.GetInputMethodLongName(desc)); |
211 } | 200 } |
212 { | 201 { |
213 InputMethodDescriptor desc = GetDesc("m17n:vi:tcvn", "us", "vi"); | 202 InputMethodDescriptor desc = GetDesc("m17n:vi:tcvn", "us", "vi"); |
214 EXPECT_EQ(ASCIIToUTF16("Vietnamese input method (TCVN6064)"), | 203 EXPECT_EQ(ASCIIToUTF16("Vietnamese input method (TCVN6064)"), |
215 util_.GetInputMethodLongName(desc)); | 204 util_.GetInputMethodLongName(desc)); |
216 } | 205 } |
217 { | 206 { |
218 InputMethodDescriptor desc = GetDesc("mozc", "us", "ja"); | 207 InputMethodDescriptor desc = GetDesc("pinyin", "us", "ja"); |
219 #if !defined(GOOGLE_CHROME_BUILD) | 208 EXPECT_EQ(ASCIIToUTF16("Pinyin input method"), |
220 EXPECT_EQ(ASCIIToUTF16("Japanese input method (for US keyboard)"), | |
221 #else | |
222 EXPECT_EQ(ASCIIToUTF16("Google Japanese Input (for US keyboard)"), | |
223 #endif // defined(GOOGLE_CHROME_BUILD) | |
224 util_.GetInputMethodLongName(desc)); | 209 util_.GetInputMethodLongName(desc)); |
225 } | 210 } |
226 { | 211 { |
227 InputMethodDescriptor desc = GetDesc("xkb:jp::jpn", "jp", "ja"); | 212 InputMethodDescriptor desc = GetDesc("xkb:jp::jpn", "jp", "ja"); |
228 EXPECT_EQ(ASCIIToUTF16("Japanese keyboard"), | 213 EXPECT_EQ(ASCIIToUTF16("Japanese keyboard"), |
229 util_.GetInputMethodLongName(desc)); | 214 util_.GetInputMethodLongName(desc)); |
230 } | 215 } |
231 { | 216 { |
232 InputMethodDescriptor desc = | 217 InputMethodDescriptor desc = |
233 GetDesc("xkb:us:dvorak:eng", "us(dvorak)", "en-US"); | 218 GetDesc("xkb:us:dvorak:eng", "us(dvorak)", "en-US"); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 // You can safely ignore the "Resouce ID is not found for: invalid-id" | 269 // You can safely ignore the "Resouce ID is not found for: invalid-id" |
285 // error. | 270 // error. |
286 EXPECT_EQ(ASCIIToUTF16("invalid-id"), | 271 EXPECT_EQ(ASCIIToUTF16("invalid-id"), |
287 util_.GetInputMethodLongName(desc)); | 272 util_.GetInputMethodLongName(desc)); |
288 } | 273 } |
289 } | 274 } |
290 | 275 |
291 TEST_F(InputMethodUtilTest, TestGetStringUTF8) { | 276 TEST_F(InputMethodUtilTest, TestGetStringUTF8) { |
292 EXPECT_EQ(UTF8ToUTF16("Pinyin input method"), | 277 EXPECT_EQ(UTF8ToUTF16("Pinyin input method"), |
293 util_.TranslateString("pinyin")); | 278 util_.TranslateString("pinyin")); |
294 #if !defined(GOOGLE_CHROME_BUILD) | |
295 EXPECT_EQ(UTF8ToUTF16("Japanese input method (for US Dvorak keyboard)"), | |
296 util_.TranslateString("mozc-dv")); | |
297 #endif | |
298 } | 279 } |
299 | 280 |
300 TEST_F(InputMethodUtilTest, TestIsValidInputMethodId) { | 281 TEST_F(InputMethodUtilTest, TestIsValidInputMethodId) { |
301 EXPECT_TRUE(util_.IsValidInputMethodId("xkb:us:colemak:eng")); | 282 EXPECT_TRUE(util_.IsValidInputMethodId("xkb:us:colemak:eng")); |
302 EXPECT_TRUE(util_.IsValidInputMethodId("mozc")); | 283 EXPECT_TRUE(util_.IsValidInputMethodId("pinyin")); |
303 EXPECT_FALSE(util_.IsValidInputMethodId("unsupported-input-method")); | 284 EXPECT_FALSE(util_.IsValidInputMethodId("unsupported-input-method")); |
304 } | 285 } |
305 | 286 |
306 TEST_F(InputMethodUtilTest, TestIsKeyboardLayout) { | 287 TEST_F(InputMethodUtilTest, TestIsKeyboardLayout) { |
307 EXPECT_TRUE(InputMethodUtil::IsKeyboardLayout("xkb:us::eng")); | 288 EXPECT_TRUE(InputMethodUtil::IsKeyboardLayout("xkb:us::eng")); |
308 EXPECT_FALSE(InputMethodUtil::IsKeyboardLayout("mozc")); | 289 EXPECT_FALSE(InputMethodUtil::IsKeyboardLayout("pinyin")); |
309 } | 290 } |
310 | 291 |
311 TEST_F(InputMethodUtilTest, TestGetKeyboardLayoutName) { | 292 TEST_F(InputMethodUtilTest, TestGetKeyboardLayoutName) { |
312 // Unsupported case. | 293 // Unsupported case. |
313 EXPECT_EQ("", util_.GetKeyboardLayoutName("UNSUPPORTED_ID")); | 294 EXPECT_EQ("", util_.GetKeyboardLayoutName("UNSUPPORTED_ID")); |
314 | 295 |
315 // Supported cases (samples). | 296 // Supported cases (samples). |
316 EXPECT_EQ("jp", util_.GetKeyboardLayoutName("mozc-jp")); | |
317 EXPECT_EQ("us", util_.GetKeyboardLayoutName("pinyin")); | 297 EXPECT_EQ("us", util_.GetKeyboardLayoutName("pinyin")); |
318 EXPECT_EQ("us(dvorak)", util_.GetKeyboardLayoutName("pinyin-dv")); | 298 EXPECT_EQ("us(dvorak)", util_.GetKeyboardLayoutName("pinyin-dv")); |
319 EXPECT_EQ("us", util_.GetKeyboardLayoutName("m17n:ar:kbd")); | 299 EXPECT_EQ("us", util_.GetKeyboardLayoutName("m17n:ar:kbd")); |
320 EXPECT_EQ("es", util_.GetKeyboardLayoutName("xkb:es::spa")); | 300 EXPECT_EQ("es", util_.GetKeyboardLayoutName("xkb:es::spa")); |
321 EXPECT_EQ("es(cat)", util_.GetKeyboardLayoutName("xkb:es:cat:cat")); | 301 EXPECT_EQ("es(cat)", util_.GetKeyboardLayoutName("xkb:es:cat:cat")); |
322 EXPECT_EQ("gb(extd)", util_.GetKeyboardLayoutName("xkb:gb:extd:eng")); | 302 EXPECT_EQ("gb(extd)", util_.GetKeyboardLayoutName("xkb:gb:extd:eng")); |
323 EXPECT_EQ("us", util_.GetKeyboardLayoutName("xkb:us::eng")); | 303 EXPECT_EQ("us", util_.GetKeyboardLayoutName("xkb:us::eng")); |
324 EXPECT_EQ("us(dvorak)", util_.GetKeyboardLayoutName("xkb:us:dvorak:eng")); | 304 EXPECT_EQ("us(dvorak)", util_.GetKeyboardLayoutName("xkb:us:dvorak:eng")); |
325 EXPECT_EQ("us(colemak)", util_.GetKeyboardLayoutName("xkb:us:colemak:eng")); | 305 EXPECT_EQ("us(colemak)", util_.GetKeyboardLayoutName("xkb:us:colemak:eng")); |
326 EXPECT_EQ("de(neo)", util_.GetKeyboardLayoutName("xkb:de:neo:ger")); | 306 EXPECT_EQ("de(neo)", util_.GetKeyboardLayoutName("xkb:de:neo:ger")); |
(...skipping 20 matching lines...) Expand all Loading... |
347 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. | 327 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. |
348 EXPECT_EQ("pinyin", descriptor->id()); | 328 EXPECT_EQ("pinyin", descriptor->id()); |
349 EXPECT_EQ("us", descriptor->GetPreferredKeyboardLayout()); | 329 EXPECT_EQ("us", descriptor->GetPreferredKeyboardLayout()); |
350 // This used to be "zh" but now we have "zh-CN" in input_methods.h, | 330 // This used to be "zh" but now we have "zh-CN" in input_methods.h, |
351 // hence this should be zh-CN now. | 331 // hence this should be zh-CN now. |
352 EXPECT_EQ("zh-CN", descriptor->language_code()); | 332 EXPECT_EQ("zh-CN", descriptor->language_code()); |
353 } | 333 } |
354 | 334 |
355 TEST_F(InputMethodUtilTest, TestGetInputMethodIdsForLanguageCode) { | 335 TEST_F(InputMethodUtilTest, TestGetInputMethodIdsForLanguageCode) { |
356 std::multimap<std::string, std::string> language_code_to_ids_map; | 336 std::multimap<std::string, std::string> language_code_to_ids_map; |
357 language_code_to_ids_map.insert(std::make_pair("ja", "mozc")); | 337 language_code_to_ids_map.insert(std::make_pair("ja", "pinyin")); |
358 language_code_to_ids_map.insert(std::make_pair("ja", "mozc-jp")); | 338 language_code_to_ids_map.insert(std::make_pair("ja", "pinyin")); |
359 language_code_to_ids_map.insert(std::make_pair("ja", "xkb:jp:jpn")); | 339 language_code_to_ids_map.insert(std::make_pair("ja", "xkb:jp:jpn")); |
360 language_code_to_ids_map.insert(std::make_pair("fr", "xkb:fr:fra")); | 340 language_code_to_ids_map.insert(std::make_pair("fr", "xkb:fr:fra")); |
361 | 341 |
362 std::vector<std::string> result; | 342 std::vector<std::string> result; |
363 EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal( | 343 EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal( |
364 language_code_to_ids_map, "ja", kAllInputMethods, &result)); | 344 language_code_to_ids_map, "ja", kAllInputMethods, &result)); |
365 EXPECT_EQ(3U, result.size()); | 345 EXPECT_EQ(3U, result.size()); |
366 EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal( | 346 EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal( |
367 language_code_to_ids_map, "ja", kKeyboardLayoutsOnly, &result)); | 347 language_code_to_ids_map, "ja", kKeyboardLayoutsOnly, &result)); |
368 ASSERT_EQ(1U, result.size()); | 348 ASSERT_EQ(1U, result.size()); |
(...skipping 18 matching lines...) Expand all Loading... |
387 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_EnUs) { | 367 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_EnUs) { |
388 const InputMethodDescriptor* descriptor = | 368 const InputMethodDescriptor* descriptor = |
389 util_.GetInputMethodDescriptorFromId("xkb:us::eng"); // US keyboard. | 369 util_.GetInputMethodDescriptorFromId("xkb:us::eng"); // US keyboard. |
390 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. | 370 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. |
391 std::vector<std::string> input_method_ids; | 371 std::vector<std::string> input_method_ids; |
392 util_.GetFirstLoginInputMethodIds("en-US", *descriptor, &input_method_ids); | 372 util_.GetFirstLoginInputMethodIds("en-US", *descriptor, &input_method_ids); |
393 ASSERT_EQ(1U, input_method_ids.size()); | 373 ASSERT_EQ(1U, input_method_ids.size()); |
394 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); | 374 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); |
395 } | 375 } |
396 | 376 |
397 // US keyboard + Japanese UI = US keyboard + mozc. | 377 // US keyboard + Chinese UI = US keyboard + Pinyin IME. |
398 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Ja) { | 378 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Zh) { |
399 const InputMethodDescriptor* descriptor = | 379 const InputMethodDescriptor* descriptor = |
400 util_.GetInputMethodDescriptorFromId("xkb:us::eng"); // US keyboard. | 380 util_.GetInputMethodDescriptorFromId("xkb:us::eng"); // US keyboard. |
401 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. | 381 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. |
402 std::vector<std::string> input_method_ids; | 382 std::vector<std::string> input_method_ids; |
403 util_.GetFirstLoginInputMethodIds("ja", *descriptor, &input_method_ids); | 383 util_.GetFirstLoginInputMethodIds("zh-CN", *descriptor, &input_method_ids); |
404 ASSERT_EQ(2U, input_method_ids.size()); | 384 ASSERT_EQ(2U, input_method_ids.size()); |
405 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); | 385 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); |
406 EXPECT_EQ("mozc", input_method_ids[1]); // Mozc for US keybaord. | 386 EXPECT_EQ("pinyin", input_method_ids[1]); // Pinyin for US keybaord. |
407 } | 387 } |
408 | 388 |
409 // JP keyboard + Japanese UI = JP keyboard + mozc-jp. | 389 // Korean keyboard + Korean UI = Korean keyboard + mozc-hangul. |
410 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_JP_And_Ja) { | 390 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_KR_And_Ko) { |
| 391 // Korean keyboard |
411 const InputMethodDescriptor* descriptor = | 392 const InputMethodDescriptor* descriptor = |
412 util_.GetInputMethodDescriptorFromId("xkb:jp::jpn"); // Japanese keyboard | 393 util_.GetInputMethodDescriptorFromId("xkb:kr:kr104:kor"); |
413 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. | 394 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. |
414 std::vector<std::string> input_method_ids; | 395 std::vector<std::string> input_method_ids; |
415 util_.GetFirstLoginInputMethodIds("ja", *descriptor, &input_method_ids); | 396 util_.GetFirstLoginInputMethodIds("ko", *descriptor, &input_method_ids); |
416 ASSERT_EQ(2U, input_method_ids.size()); | 397 ASSERT_EQ(2U, input_method_ids.size()); |
417 EXPECT_EQ("xkb:jp::jpn", input_method_ids[0]); | 398 EXPECT_EQ("xkb:kr:kr104:kor", input_method_ids[0]); |
418 EXPECT_EQ("mozc-jp", input_method_ids[1]); // Mozc for JP keybaord. | 399 EXPECT_EQ("mozc-hangul", input_method_ids[1]); // Mozc for JP keybaord. |
419 } | |
420 | |
421 // US dvorak keyboard + Japanese UI = US dvorak keyboard + mozc-dv. | |
422 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Dvorak_And_Ja) { | |
423 const InputMethodDescriptor* descriptor = | |
424 // US Drovak keyboard. | |
425 util_.GetInputMethodDescriptorFromId("xkb:us:dvorak:eng"); | |
426 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. | |
427 std::vector<std::string> input_method_ids; | |
428 util_.GetFirstLoginInputMethodIds("ja", *descriptor, &input_method_ids); | |
429 ASSERT_EQ(2U, input_method_ids.size()); | |
430 EXPECT_EQ("xkb:us:dvorak:eng", input_method_ids[0]); | |
431 EXPECT_EQ("mozc-dv", input_method_ids[1]); // Mozc for US Dvorak keybaord. | |
432 } | 400 } |
433 | 401 |
434 // US keyboard + Russian UI = US keyboard + Russsian keyboard | 402 // US keyboard + Russian UI = US keyboard + Russsian keyboard |
435 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Ru) { | 403 TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Ru) { |
436 const InputMethodDescriptor* descriptor = | 404 const InputMethodDescriptor* descriptor = |
437 util_.GetInputMethodDescriptorFromId("xkb:us::eng"); // US keyboard. | 405 util_.GetInputMethodDescriptorFromId("xkb:us::eng"); // US keyboard. |
438 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. | 406 ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. |
439 std::vector<std::string> input_method_ids; | 407 std::vector<std::string> input_method_ids; |
440 util_.GetFirstLoginInputMethodIds("ru", *descriptor, &input_method_ids); | 408 util_.GetFirstLoginInputMethodIds("ru", *descriptor, &input_method_ids); |
441 ASSERT_EQ(2U, input_method_ids.size()); | 409 ASSERT_EQ(2U, input_method_ids.size()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 util_.GetFirstLoginInputMethodIds("vi", *descriptor, &input_method_ids); | 444 util_.GetFirstLoginInputMethodIds("vi", *descriptor, &input_method_ids); |
477 ASSERT_EQ(2U, input_method_ids.size()); | 445 ASSERT_EQ(2U, input_method_ids.size()); |
478 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); | 446 EXPECT_EQ("xkb:us::eng", input_method_ids[0]); |
479 EXPECT_EQ("m17n:vi:tcvn", input_method_ids[1]); // TCVN6064. | 447 EXPECT_EQ("m17n:vi:tcvn", input_method_ids[1]); // TCVN6064. |
480 } | 448 } |
481 | 449 |
482 TEST_F(InputMethodUtilTest, TestGetLanguageCodesFromInputMethodIds) { | 450 TEST_F(InputMethodUtilTest, TestGetLanguageCodesFromInputMethodIds) { |
483 std::vector<std::string> input_method_ids; | 451 std::vector<std::string> input_method_ids; |
484 input_method_ids.push_back("xkb:us::eng"); // English US. | 452 input_method_ids.push_back("xkb:us::eng"); // English US. |
485 input_method_ids.push_back("xkb:us:dvorak:eng"); // English US Dvorak. | 453 input_method_ids.push_back("xkb:us:dvorak:eng"); // English US Dvorak. |
486 input_method_ids.push_back("mozc-jp"); // Japanese. | 454 input_method_ids.push_back("pinyin"); // Pinyin |
487 input_method_ids.push_back("xkb:fr::fra"); // French France. | 455 input_method_ids.push_back("xkb:fr::fra"); // French France. |
488 std::vector<std::string> language_codes; | 456 std::vector<std::string> language_codes; |
489 util_.GetLanguageCodesFromInputMethodIds(input_method_ids, &language_codes); | 457 util_.GetLanguageCodesFromInputMethodIds(input_method_ids, &language_codes); |
490 ASSERT_EQ(3U, language_codes.size()); | 458 ASSERT_EQ(3U, language_codes.size()); |
491 EXPECT_EQ("en-US", language_codes[0]); | 459 EXPECT_EQ("en-US", language_codes[0]); |
492 EXPECT_EQ("ja", language_codes[1]); | 460 EXPECT_EQ("zh-CN", language_codes[1]); |
493 EXPECT_EQ("fr", language_codes[2]); | 461 EXPECT_EQ("fr", language_codes[2]); |
494 } | 462 } |
495 | 463 |
496 // Test all supported descriptors to detect a typo in ibus_input_methods.txt. | 464 // Test all supported descriptors to detect a typo in ibus_input_methods.txt. |
497 TEST_F(InputMethodUtilTest, TestIBusInputMethodText) { | 465 TEST_F(InputMethodUtilTest, TestIBusInputMethodText) { |
498 for (size_t i = 0; i < util_.supported_input_methods_->size(); ++i) { | 466 for (size_t i = 0; i < util_.supported_input_methods_->size(); ++i) { |
499 const std::string language_code = | 467 const std::string language_code = |
500 util_.supported_input_methods_->at(i).language_code(); | 468 util_.supported_input_methods_->at(i).language_code(); |
501 const string16 display_name = | 469 const string16 display_name = |
502 l10n_util::GetDisplayNameForLocale(language_code, "en", false); | 470 l10n_util::GetDisplayNameForLocale(language_code, "en", false); |
503 // Only two formats, like "fr" (lower case) and "en-US" (lower-upper), are | 471 // Only two formats, like "fr" (lower case) and "en-US" (lower-upper), are |
504 // allowed. See the text file for details. | 472 // allowed. See the text file for details. |
505 EXPECT_TRUE(language_code.length() == 2 || | 473 EXPECT_TRUE(language_code.length() == 2 || |
506 (language_code.length() == 5 && language_code[2] == '-')) | 474 (language_code.length() == 5 && language_code[2] == '-')) |
507 << "Invalid language code " << language_code; | 475 << "Invalid language code " << language_code; |
508 EXPECT_TRUE(l10n_util::IsValidLocaleSyntax(language_code)) | 476 EXPECT_TRUE(l10n_util::IsValidLocaleSyntax(language_code)) |
509 << "Invalid language code " << language_code; | 477 << "Invalid language code " << language_code; |
510 EXPECT_FALSE(display_name.empty()) | 478 EXPECT_FALSE(display_name.empty()) |
511 << "Invalid language code " << language_code; | 479 << "Invalid language code " << language_code; |
512 // On error, GetDisplayNameForLocale() returns the |language_code| as-is. | 480 // On error, GetDisplayNameForLocale() returns the |language_code| as-is. |
513 EXPECT_NE(language_code, UTF16ToUTF8(display_name)) | 481 EXPECT_NE(language_code, UTF16ToUTF8(display_name)) |
514 << "Invalid language code " << language_code; | 482 << "Invalid language code " << language_code; |
515 } | 483 } |
516 } | 484 } |
517 | 485 |
518 } // namespace input_method | 486 } // namespace input_method |
519 } // namespace chromeos | 487 } // namespace chromeos |
OLD | NEW |