diff options
author | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-31 04:02:34 +0000 |
---|---|---|
committer | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-31 04:02:34 +0000 |
commit | ae352c0f3a361af6d0729237a2f80a85b9d3309a (patch) | |
tree | 3031c1acde97b0234741290f56204983d099c9b6 /chrome/browser/chromeos/input_method/input_method_util_unittest.cc | |
parent | 27924346be5e74e67a15c1b6e29478c20d6735e7 (diff) | |
download | chromium_src-ae352c0f3a361af6d0729237a2f80a85b9d3309a.zip chromium_src-ae352c0f3a361af6d0729237a2f80a85b9d3309a.tar.gz chromium_src-ae352c0f3a361af6d0729237a2f80a85b9d3309a.tar.bz2 |
Add GetInputMethodDescriptorFromId() and fix GetKeyboardLayoutName()
Before this fix, GetKeyboardLayoutName() didn't return keyboard layout
names for non-XKB input methods.
Along the way, refactor the code and add more tests.
BUG=11099
TEST=unit_tests
Review URL: http://codereview.chromium.org/6336020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73126 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/input_method/input_method_util_unittest.cc')
-rw-r--r-- | chrome/browser/chromeos/input_method/input_method_util_unittest.cc | 92 |
1 files changed, 36 insertions, 56 deletions
diff --git a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc b/chrome/browser/chromeos/input_method/input_method_util_unittest.cc index acfaec3..0670c44 100644 --- a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc +++ b/chrome/browser/chromeos/input_method/input_method_util_unittest.cc @@ -7,6 +7,7 @@ #include <string> #include "base/utf_string_conversions.h" +#include "chrome/browser/chromeos/cros/cros_library.h" #include "grit/generated_resources.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/l10n/l10n_util.h" @@ -78,67 +79,46 @@ TEST(InputMethodUtilTest, GetLanguageCodeFromDescriptor) { } TEST(InputMethodUtilTest, GetKeyboardLayoutName) { - // Unsupported cases + ScopedStubCrosEnabler stub_cros_enabler; + // Unsupported case. EXPECT_EQ("", GetKeyboardLayoutName("UNSUPPORTED_ID")); - EXPECT_EQ("", GetKeyboardLayoutName("chewing")); - EXPECT_EQ("", GetKeyboardLayoutName("hangul")); - EXPECT_EQ("", GetKeyboardLayoutName("mozc")); - EXPECT_EQ("", GetKeyboardLayoutName("mozc-jp")); - EXPECT_EQ("", GetKeyboardLayoutName("pinyin")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:ar:kbd")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:he:kbd")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:hi:itrans")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:fa:isiri")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:th:kesmanee")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:th:pattachote")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:th:tis820")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:vi:tcvn")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:vi:telex")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:vi:viqr")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:vi:vni")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:zh:cangjie")); - EXPECT_EQ("", GetKeyboardLayoutName("m17n:zh:quick")); - - // Supported cases - EXPECT_EQ("be", GetKeyboardLayoutName("xkb:be::fra")); - EXPECT_EQ("br", GetKeyboardLayoutName("xkb:br::por")); - EXPECT_EQ("bg", GetKeyboardLayoutName("xkb:bg::bul")); - EXPECT_EQ("cz", GetKeyboardLayoutName("xkb:cz::cze")); - EXPECT_EQ("de", GetKeyboardLayoutName("xkb:de::ger")); - EXPECT_EQ("ee", GetKeyboardLayoutName("xkb:ee::est")); + + // Supported cases (samples). + EXPECT_EQ("jp", GetKeyboardLayoutName("mozc-jp")); + EXPECT_EQ("us", GetKeyboardLayoutName("pinyin")); + EXPECT_EQ("us", GetKeyboardLayoutName("m17n:ar:kbd")); EXPECT_EQ("es", GetKeyboardLayoutName("xkb:es::spa")); - EXPECT_EQ("es", GetKeyboardLayoutName("xkb:es:cat:cat")); - EXPECT_EQ("dk", GetKeyboardLayoutName("xkb:dk::dan")); - EXPECT_EQ("gr", GetKeyboardLayoutName("xkb:gr::gre")); - EXPECT_EQ("lt", GetKeyboardLayoutName("xkb:lt::lit")); - EXPECT_EQ("lv", GetKeyboardLayoutName("xkb:lv::lav")); - EXPECT_EQ("hr", GetKeyboardLayoutName("xkb:hr::scr")); - EXPECT_EQ("nl", GetKeyboardLayoutName("xkb:nl::nld")); - EXPECT_EQ("gb", GetKeyboardLayoutName("xkb:gb::eng")); - EXPECT_EQ("fi", GetKeyboardLayoutName("xkb:fi::fin")); - EXPECT_EQ("fr", GetKeyboardLayoutName("xkb:fr::fra")); - EXPECT_EQ("hu", GetKeyboardLayoutName("xkb:hu::hun")); - EXPECT_EQ("it", GetKeyboardLayoutName("xkb:it::ita")); - EXPECT_EQ("jp", GetKeyboardLayoutName("xkb:jp::jpn")); - EXPECT_EQ("no", GetKeyboardLayoutName("xkb:no::nor")); - EXPECT_EQ("pl", GetKeyboardLayoutName("xkb:pl::pol")); - EXPECT_EQ("pt", GetKeyboardLayoutName("xkb:pt::por")); - EXPECT_EQ("ro", GetKeyboardLayoutName("xkb:ro::rum")); - EXPECT_EQ("se", GetKeyboardLayoutName("xkb:se::swe")); - EXPECT_EQ("sk", GetKeyboardLayoutName("xkb:sk::slo")); - EXPECT_EQ("si", GetKeyboardLayoutName("xkb:si::slv")); - EXPECT_EQ("rs", GetKeyboardLayoutName("xkb:rs::srp")); - EXPECT_EQ("ch", GetKeyboardLayoutName("xkb:ch::ger")); - EXPECT_EQ("ru", GetKeyboardLayoutName("xkb:ru::rus")); - EXPECT_EQ("tr", GetKeyboardLayoutName("xkb:tr::tur")); - EXPECT_EQ("ua", GetKeyboardLayoutName("xkb:ua::ukr")); + EXPECT_EQ("es(cat)", GetKeyboardLayoutName("xkb:es:cat:cat")); + EXPECT_EQ("gb(extd)", GetKeyboardLayoutName("xkb:gb:extd:eng")); EXPECT_EQ("us", GetKeyboardLayoutName("xkb:us::eng")); - EXPECT_EQ("us", GetKeyboardLayoutName("xkb:us:dvorak:eng")); - EXPECT_EQ("us", GetKeyboardLayoutName("xkb:us:colemak:eng")); + EXPECT_EQ("us(dvorak)", GetKeyboardLayoutName("xkb:us:dvorak:eng")); + EXPECT_EQ("us(colemak)", GetKeyboardLayoutName("xkb:us:colemak:eng")); +} + +TEST(InputMethodUtilTest, GetLanguageCodeFromInputMethodId) { + ScopedStubCrosEnabler stub_cros_enabler; + // Make sure that the -CN is added properly. + EXPECT_EQ("zh-CN", GetLanguageCodeFromInputMethodId("pinyin")); +} + +TEST(InputMethodUtilTest, GetInputMethodDisplayNameFromId) { + EXPECT_EQ("Pinyin", GetInputMethodDisplayNameFromId("pinyin")); } -TEST(InputMethodUtilTest, GetLanguageDisplayNameFromCode) { - EXPECT_EQ(UTF8ToUTF16("Finnish"), GetLanguageDisplayNameFromCode("fi")); +TEST(InputMethodUtilTest, GetInputMethodDescriptorFromId) { + ScopedStubCrosEnabler stub_cros_enabler; + EXPECT_EQ(NULL, GetInputMethodDescriptorFromId("non_existent")); + + const InputMethodDescriptor* descriptor = + GetInputMethodDescriptorFromId("pinyin"); + ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile. + EXPECT_EQ("pinyin", descriptor->id); + EXPECT_EQ("Pinyin", descriptor->display_name); + EXPECT_EQ("us", descriptor->keyboard_layout); + // This is not zh-CN as the language code in InputMethodDescriptor is + // not normalized to our format. The normalization is done in + // GetLanguageCodeFromDescriptor(). + EXPECT_EQ("zh", descriptor->language_code); } TEST(InputMethodUtilTest, GetLanguageNativeDisplayNameFromCode) { |