| Index: chrome/browser/chromeos/input_method/input_method_util_unittest.cc
|
| diff --git a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc b/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
|
| deleted file mode 100644
|
| index 0489f50b02b9785c1356cfcfba8b55e40f189bfe..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
|
| +++ /dev/null
|
| @@ -1,537 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/chromeos/input_method/input_method_util.h"
|
| -
|
| -#include <stddef.h>
|
| -
|
| -#include <memory>
|
| -#include <string>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/macros.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "ui/base/ime/chromeos/extension_ime_util.h"
|
| -#include "ui/base/ime/chromeos/fake_input_method_delegate.h"
|
| -#include "ui/base/ime/chromeos/input_method_manager.h"
|
| -#include "ui/base/ime/chromeos/input_method_whitelist.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -
|
| -using base::ASCIIToUTF16;
|
| -
|
| -namespace chromeos {
|
| -
|
| -namespace input_method {
|
| -
|
| -namespace {
|
| -
|
| -const char pinyin_ime_id[] = "zh-t-i0-pinyin";
|
| -const char zhuyin_ime_id[] = "zh-hant-t-i0-und";
|
| -
|
| -class TestableInputMethodUtil : public InputMethodUtil {
|
| - public:
|
| - explicit TestableInputMethodUtil(
|
| - InputMethodDelegate* delegate,
|
| - std::unique_ptr<InputMethodDescriptors> methods)
|
| - : InputMethodUtil(delegate) {
|
| - ResetInputMethods(*methods);
|
| - }
|
| - // Change access rights.
|
| - using InputMethodUtil::GetInputMethodIdsFromLanguageCodeInternal;
|
| - using InputMethodUtil::GetKeyboardLayoutName;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -class InputMethodUtilTest : public testing::Test {
|
| - public:
|
| - InputMethodUtilTest()
|
| - : util_(&delegate_, whitelist_.GetSupportedInputMethods()) {
|
| - delegate_.set_get_localized_string_callback(
|
| - base::Bind(&l10n_util::GetStringUTF16));
|
| - delegate_.set_get_display_language_name_callback(
|
| - base::Bind(&InputMethodUtilTest::GetDisplayLanguageName));
|
| - }
|
| -
|
| - void SetUp() override {
|
| - InputMethodDescriptors input_methods;
|
| -
|
| - std::vector<std::string> layouts;
|
| - std::vector<std::string> languages;
|
| - layouts.push_back("us");
|
| - languages.push_back("zh-CN");
|
| -
|
| - InputMethodDescriptor pinyin_ime(Id(pinyin_ime_id),
|
| - "Pinyin input for testing",
|
| - "CN",
|
| - layouts,
|
| - languages,
|
| - false,
|
| - GURL(""),
|
| - GURL(""));
|
| - input_methods.push_back(pinyin_ime);
|
| -
|
| - languages.clear();
|
| - languages.push_back("zh-TW");
|
| - InputMethodDescriptor zhuyin_ime(zhuyin_ime_id,
|
| - "Zhuyin input for testing",
|
| - "TW",
|
| - layouts,
|
| - languages,
|
| - false,
|
| - GURL(""),
|
| - GURL(""));
|
| - input_methods.push_back(zhuyin_ime);
|
| -
|
| - util_.InitXkbInputMethodsForTesting(*whitelist_.GetSupportedInputMethods());
|
| - util_.AppendInputMethods(input_methods);
|
| - }
|
| -
|
| - std::string Id(const std::string& id) {
|
| - return extension_ime_util::GetInputMethodIDByEngineID(id);
|
| - }
|
| -
|
| - InputMethodDescriptor GetDesc(const std::string& id,
|
| - const std::string& raw_layout,
|
| - const std::string& language_code,
|
| - const std::string& indicator) {
|
| - std::vector<std::string> layouts;
|
| - layouts.push_back(raw_layout);
|
| - std::vector<std::string> languages;
|
| - languages.push_back(language_code);
|
| - return InputMethodDescriptor(Id(id),
|
| - "", // Description.
|
| - indicator, // Short name used for indicator.
|
| - layouts,
|
| - languages,
|
| - true,
|
| - GURL(), // options page url
|
| - GURL()); // input view page url
|
| - }
|
| -
|
| - static base::string16 GetDisplayLanguageName(
|
| - const std::string& language_code) {
|
| - return l10n_util::GetDisplayNameForLocale(language_code, "en", true);
|
| - }
|
| -
|
| - FakeInputMethodDelegate delegate_;
|
| - InputMethodWhitelist whitelist_;
|
| - TestableInputMethodUtil util_;
|
| -};
|
| -
|
| -TEST_F(InputMethodUtilTest, GetInputMethodShortNameTest) {
|
| - // Test invalid cases. Two-letter language code should be returned.
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("invalid-id", "us", "xx", "");
|
| - // Upper-case string of the unknown language code, "xx", should be returned.
|
| - EXPECT_EQ(ASCIIToUTF16("XX"), util_.GetInputMethodShortName(desc));
|
| - }
|
| -
|
| - // Test special cases.
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:us:dvorak:eng", "us", "en-US", "DV");
|
| - EXPECT_EQ(ASCIIToUTF16("DV"), util_.GetInputMethodShortName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:us:colemak:eng", "us", "en-US", "CO");
|
| - EXPECT_EQ(ASCIIToUTF16("CO"), util_.GetInputMethodShortName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:us:altgr-intl:eng", "us", "en-US", "EXTD");
|
| - EXPECT_EQ(ASCIIToUTF16("EXTD"), util_.GetInputMethodShortName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:us:intl:eng", "us", "en-US", "INTL");
|
| - EXPECT_EQ(ASCIIToUTF16("INTL"), util_.GetInputMethodShortName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:de:neo:ger", "de(neo)", "de", "NEO");
|
| - EXPECT_EQ(ASCIIToUTF16("NEO"), util_.GetInputMethodShortName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:es:cat:cat", "es(cat)", "ca", "CAS");
|
| - EXPECT_EQ(ASCIIToUTF16("CAS"), util_.GetInputMethodShortName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc(pinyin_ime_id, "us", "zh-CN", "\xe6\x8b\xbc");
|
| - EXPECT_EQ(base::UTF8ToUTF16("\xe6\x8b\xbc"),
|
| - util_.GetInputMethodShortName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc(zhuyin_ime_id, "us", "zh-TW", "\xE6\xB3\xA8");
|
| - EXPECT_EQ(base::UTF8ToUTF16("\xE6\xB3\xA8"),
|
| - util_.GetInputMethodShortName(desc));
|
| - }
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, GetInputMethodMediumNameTest) {
|
| - {
|
| - // input methods with medium name equal to short name
|
| - const char* const input_method_id[] = {
|
| - "xkb:us:altgr-intl:eng", "xkb:us:dvorak:eng", "xkb:us:intl:eng",
|
| - "xkb:us:colemak:eng", "xkb:de:neo:ger", "xkb:es:cat:cat",
|
| - "xkb:gb:dvorak:eng",
|
| - };
|
| - const int len = arraysize(input_method_id);
|
| - for (int i = 0; i < len; ++i) {
|
| - InputMethodDescriptor desc = GetDesc(input_method_id[i], "", "", "");
|
| - base::string16 medium_name = util_.GetInputMethodMediumName(desc);
|
| - base::string16 short_name = util_.GetInputMethodShortName(desc);
|
| - EXPECT_EQ(medium_name, short_name);
|
| - }
|
| - }
|
| - {
|
| - // input methods with medium name not equal to short name
|
| - const char* const input_method_id[] = {
|
| - pinyin_ime_id, zhuyin_ime_id,
|
| - };
|
| - const int len = arraysize(input_method_id);
|
| - for (int i = 0; i < len; ++i) {
|
| - InputMethodDescriptor desc = GetDesc(input_method_id[i], "", "", "");
|
| - base::string16 medium_name = util_.GetInputMethodMediumName(desc);
|
| - base::string16 short_name = util_.GetInputMethodShortName(desc);
|
| - EXPECT_NE(medium_name, short_name);
|
| - }
|
| - }
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, GetInputMethodLongNameTest) {
|
| - // For most languages input method or keyboard layout name is returned.
|
| - // See below for exceptions.
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("xkb:jp::jpn", "jp", "ja", "");
|
| - EXPECT_EQ(ASCIIToUTF16("Japanese"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:us:dvorak:eng", "us(dvorak)", "en-US", "");
|
| - EXPECT_EQ(ASCIIToUTF16("US Dvorak"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc =
|
| - GetDesc("xkb:gb:dvorak:eng", "gb(dvorak)", "en-US", "");
|
| - EXPECT_EQ(ASCIIToUTF16("UK Dvorak"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| -
|
| - // For Dutch, French, German and Hindi,
|
| - // "language - keyboard layout" pair is returned.
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("xkb:be::nld", "be", "nl", "");
|
| - EXPECT_EQ(ASCIIToUTF16("Dutch - Belgian"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("xkb:fr::fra", "fr", "fr", "");
|
| - EXPECT_EQ(ASCIIToUTF16("French - French"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("xkb:be::fra", "be", "fr", "");
|
| - EXPECT_EQ(ASCIIToUTF16("French - Belgian"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("xkb:de::ger", "de", "de", "");
|
| - EXPECT_EQ(ASCIIToUTF16("German - German"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("xkb:be::ger", "be", "de", "");
|
| - EXPECT_EQ(ASCIIToUTF16("German - Belgian"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| -
|
| - {
|
| - InputMethodDescriptor desc = GetDesc("invalid-id", "us", "xx", "");
|
| - // You can safely ignore the "Resouce ID is not found for: invalid-id"
|
| - // error.
|
| - EXPECT_EQ(ASCIIToUTF16("invalid-id"),
|
| - util_.GetInputMethodLongName(desc));
|
| - }
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, TestIsValidInputMethodId) {
|
| - EXPECT_TRUE(util_.IsValidInputMethodId(Id("xkb:us:colemak:eng")));
|
| - EXPECT_TRUE(util_.IsValidInputMethodId(Id(pinyin_ime_id)));
|
| - EXPECT_FALSE(util_.IsValidInputMethodId("unsupported-input-method"));
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, TestIsKeyboardLayout) {
|
| - EXPECT_TRUE(InputMethodUtil::IsKeyboardLayout("xkb:us::eng"));
|
| - EXPECT_FALSE(InputMethodUtil::IsKeyboardLayout(Id(pinyin_ime_id)));
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, TestGetKeyboardLayoutName) {
|
| - // Unsupported case.
|
| - EXPECT_EQ("", util_.GetKeyboardLayoutName("UNSUPPORTED_ID"));
|
| -
|
| - // Supported cases (samples).
|
| - EXPECT_EQ("us", util_.GetKeyboardLayoutName(Id(pinyin_ime_id)));
|
| - EXPECT_EQ("es", util_.GetKeyboardLayoutName(Id("xkb:es::spa")));
|
| - EXPECT_EQ("es(cat)", util_.GetKeyboardLayoutName(Id("xkb:es:cat:cat")));
|
| - EXPECT_EQ("gb(extd)", util_.GetKeyboardLayoutName(Id("xkb:gb:extd:eng")));
|
| - EXPECT_EQ("us", util_.GetKeyboardLayoutName(Id("xkb:us::eng")));
|
| - EXPECT_EQ("us(dvorak)", util_.GetKeyboardLayoutName(Id("xkb:us:dvorak:eng")));
|
| - EXPECT_EQ("us(colemak)",
|
| - util_.GetKeyboardLayoutName(Id("xkb:us:colemak:eng")));
|
| - EXPECT_EQ("de(neo)", util_.GetKeyboardLayoutName(Id("xkb:de:neo:ger")));
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, TestGetInputMethodDisplayNameFromId) {
|
| - EXPECT_EQ("US",
|
| - util_.GetInputMethodDisplayNameFromId("xkb:us::eng"));
|
| - EXPECT_EQ("", util_.GetInputMethodDisplayNameFromId("nonexistent"));
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, TestGetInputMethodDescriptorFromId) {
|
| - EXPECT_EQ(NULL, util_.GetInputMethodDescriptorFromId("non_existent"));
|
| -
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id(pinyin_ime_id));
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - EXPECT_EQ(Id(pinyin_ime_id), descriptor->id());
|
| - EXPECT_EQ("us", descriptor->GetPreferredKeyboardLayout());
|
| - // This used to be "zh" but now we have "zh-CN" in input_methods.h,
|
| - // hence this should be zh-CN now.
|
| - ASSERT_TRUE(!descriptor->language_codes().empty());
|
| - EXPECT_EQ("zh-CN", descriptor->language_codes().at(0));
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, TestGetInputMethodIdsForLanguageCode) {
|
| - std::multimap<std::string, std::string> language_code_to_ids_map;
|
| - language_code_to_ids_map.insert(std::make_pair("ja", pinyin_ime_id));
|
| - language_code_to_ids_map.insert(std::make_pair("ja", pinyin_ime_id));
|
| - language_code_to_ids_map.insert(std::make_pair("ja", "xkb:jp:jpn"));
|
| - language_code_to_ids_map.insert(std::make_pair("fr", "xkb:fr:fra"));
|
| -
|
| - std::vector<std::string> result;
|
| - EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal(
|
| - language_code_to_ids_map, "ja", kAllInputMethods, &result));
|
| - EXPECT_EQ(3U, result.size());
|
| - EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal(
|
| - language_code_to_ids_map, "ja", kKeyboardLayoutsOnly, &result));
|
| - ASSERT_EQ(1U, result.size());
|
| - EXPECT_EQ("xkb:jp:jpn", result[0]);
|
| -
|
| - EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal(
|
| - language_code_to_ids_map, "fr", kAllInputMethods, &result));
|
| - ASSERT_EQ(1U, result.size());
|
| - EXPECT_EQ("xkb:fr:fra", result[0]);
|
| - EXPECT_TRUE(util_.GetInputMethodIdsFromLanguageCodeInternal(
|
| - language_code_to_ids_map, "fr", kKeyboardLayoutsOnly, &result));
|
| - ASSERT_EQ(1U, result.size());
|
| - EXPECT_EQ("xkb:fr:fra", result[0]);
|
| -
|
| - EXPECT_FALSE(util_.GetInputMethodIdsFromLanguageCodeInternal(
|
| - language_code_to_ids_map, "invalid_lang", kAllInputMethods, &result));
|
| - EXPECT_FALSE(util_.GetInputMethodIdsFromLanguageCodeInternal(
|
| - language_code_to_ids_map, "invalid_lang", kKeyboardLayoutsOnly, &result));
|
| -}
|
| -
|
| -// US keyboard + English US UI = US keyboard only.
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_EnUs) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("en-US", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(1U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| -}
|
| -
|
| -// US keyboard + Chinese UI = US keyboard + Pinyin IME.
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Zh) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("zh-CN", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| - EXPECT_EQ(Id(pinyin_ime_id), input_method_ids[1]); // Pinyin for US keybaord.
|
| -}
|
| -
|
| -// US keyboard + Russian UI = US keyboard + Russsian keyboard
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Ru) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("ru", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| - EXPECT_EQ(Id("xkb:ru::rus"), input_method_ids[1]); // Russian keyboard.
|
| -}
|
| -
|
| -// US keyboard + Traditional Chinese = US keyboard + chewing.
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_ZhTw) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("zh-TW", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| - EXPECT_EQ(Id(zhuyin_ime_id), input_method_ids[1]); // Chewing.
|
| -}
|
| -
|
| -// US keyboard + Thai = US keyboard + kesmanee.
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Th) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("th", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| - EXPECT_EQ(Id("vkd_th"), input_method_ids[1]); // Kesmanee.
|
| -}
|
| -
|
| -// US keyboard + Vietnamese = US keyboard + TCVN6064.
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Vi) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("vi", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| - EXPECT_EQ(Id("vkd_vi_tcvn"), input_method_ids[1]); // TCVN6064.
|
| -}
|
| -
|
| -// US keyboard + Japanese = US keyboard + mozc(us).
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Jp) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("ja", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| - EXPECT_EQ(Id("nacl_mozc_us"), input_method_ids[1]);
|
| -}
|
| -
|
| -// JP keyboard + Japanese = JP keyboard + mozc(jp).
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Jp_And_Jp) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:jp::jpn")); // JP keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("ja", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:jp::jpn"), input_method_ids[0]);
|
| - EXPECT_EQ(Id("nacl_mozc_jp"), input_method_ids[1]);
|
| -}
|
| -
|
| -// US keyboard + Hebrew = US keyboard + Hebrew keyboard.
|
| -TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_He) {
|
| - const InputMethodDescriptor* descriptor =
|
| - util_.GetInputMethodDescriptorFromId(Id("xkb:us::eng")); // US keyboard.
|
| - ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
|
| - std::vector<std::string> input_method_ids;
|
| - util_.GetFirstLoginInputMethodIds("he", *descriptor, &input_method_ids);
|
| - ASSERT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
|
| - EXPECT_EQ(Id("xkb:il::heb"), input_method_ids[1]);
|
| -}
|
| -
|
| -TEST_F(InputMethodUtilTest, TestGetLanguageCodesFromInputMethodIds) {
|
| - std::vector<std::string> input_method_ids;
|
| - input_method_ids.push_back(Id("xkb:us::eng")); // English US.
|
| - input_method_ids.push_back(Id("xkb:us:dvorak:eng")); // English US Dvorak.
|
| - input_method_ids.push_back(Id(pinyin_ime_id)); // Pinyin
|
| - input_method_ids.push_back(Id("xkb:fr::fra")); // French France.
|
| - std::vector<std::string> language_codes;
|
| - util_.GetLanguageCodesFromInputMethodIds(input_method_ids, &language_codes);
|
| - ASSERT_EQ(3U, language_codes.size());
|
| - EXPECT_EQ("en", language_codes[0]);
|
| - EXPECT_EQ("zh-CN", language_codes[1]);
|
| - EXPECT_EQ("fr", language_codes[2]);
|
| -}
|
| -
|
| -// Test all supported descriptors to detect a typo in input_methods.txt.
|
| -TEST_F(InputMethodUtilTest, TestIBusInputMethodText) {
|
| - const std::map<std::string, InputMethodDescriptor>& id_to_descriptor =
|
| - util_.GetIdToDesciptorMapForTesting();
|
| - for (std::map<std::string, InputMethodDescriptor>::const_iterator it =
|
| - id_to_descriptor.begin(); it != id_to_descriptor.end(); ++it) {
|
| - const std::string language_code = it->second.language_codes().at(0);
|
| - const base::string16 display_name =
|
| - l10n_util::GetDisplayNameForLocale(language_code, "en", false);
|
| - // Only two formats, like "fr" (lower case) and "en-US" (lower-upper), are
|
| - // allowed. See the text file for details.
|
| - EXPECT_TRUE(language_code == "fil" || language_code.length() == 2 ||
|
| - (language_code.length() == 5 && language_code[2] == '-'))
|
| - << "Invalid language code " << language_code;
|
| - EXPECT_TRUE(l10n_util::IsValidLocaleSyntax(language_code))
|
| - << "Invalid language code " << language_code;
|
| - EXPECT_FALSE(display_name.empty())
|
| - << "Invalid language code " << language_code;
|
| - // On error, GetDisplayNameForLocale() returns the |language_code| as-is.
|
| - EXPECT_NE(language_code, base::UTF16ToUTF8(display_name))
|
| - << "Invalid language code " << language_code;
|
| - }
|
| -}
|
| -
|
| -// Test the input method ID migration.
|
| -TEST_F(InputMethodUtilTest, TestInputMethodIDMigration) {
|
| - const char* const migration_cases[][2] = {
|
| - {"ime:zh:pinyin", "zh-t-i0-pinyin"},
|
| - {"ime:zh-t:zhuyin", "zh-hant-t-i0-und"},
|
| - {"ime:zh-t:quick", "zh-hant-t-i0-cangjie-1987-x-m0-simplified"},
|
| - {"ime:jp:mozc_us", "nacl_mozc_us"},
|
| - {"ime:ko:hangul", "ko-t-i0-und"},
|
| - {"m17n:deva_phone", "vkd_deva_phone"},
|
| - {"m17n:ar", "vkd_ar"},
|
| - {"t13n:hi", "hi-t-i0-und"},
|
| - {"unknown", "unknown"},
|
| - };
|
| - std::vector<std::string> input_method_ids;
|
| - for (size_t i = 0; i < arraysize(migration_cases); ++i)
|
| - input_method_ids.push_back(migration_cases[i][0]);
|
| - // Duplicated hangul_2set.
|
| - input_method_ids.push_back("ime:ko:hangul_2set");
|
| -
|
| - util_.MigrateInputMethods(&input_method_ids);
|
| -
|
| - EXPECT_EQ(arraysize(migration_cases), input_method_ids.size());
|
| - for (size_t i = 0; i < arraysize(migration_cases); ++i) {
|
| - EXPECT_EQ(
|
| - extension_ime_util::GetInputMethodIDByEngineID(migration_cases[i][1]),
|
| - input_method_ids[i]);
|
| - }
|
| -}
|
| -
|
| -// Test getting hardware input method IDs.
|
| -TEST_F(InputMethodUtilTest, TestHardwareInputMethodIDs) {
|
| - util_.SetHardwareKeyboardLayoutForTesting("xkb:ru::rus");
|
| - std::vector<std::string> input_method_ids = util_.GetHardwareInputMethodIds();
|
| - std::vector<std::string> login_input_method_ids =
|
| - util_.GetHardwareLoginInputMethodIds();
|
| -
|
| - EXPECT_EQ(2U, input_method_ids.size());
|
| - EXPECT_EQ(1U, login_input_method_ids.size());
|
| -
|
| - EXPECT_EQ("xkb:us::eng", extension_ime_util::GetComponentIDByInputMethodID(
|
| - input_method_ids[0]));
|
| - EXPECT_EQ("xkb:ru::rus", extension_ime_util::GetComponentIDByInputMethodID(
|
| - input_method_ids[1]));
|
| - EXPECT_EQ("xkb:us::eng", extension_ime_util::GetComponentIDByInputMethodID(
|
| - login_input_method_ids[0]));
|
| -}
|
| -
|
| -} // namespace input_method
|
| -} // namespace chromeos
|
|
|