Commit c02f22ea authored by shuchen's avatar shuchen Committed by Commit bot

Update the input method ID migration map for new VPD design.

BUG=393889
TEST=Verified by unit_tests.

Review URL: https://codereview.chromium.org/560623003

Cr-Commit-Position: refs/heads/master@{#294133}
parent 8c48428a
...@@ -170,11 +170,39 @@ const char* const kExtensionIdMigrationMap[][2] = { ...@@ -170,11 +170,39 @@ const char* const kExtensionIdMigrationMap[][2] = {
// The engine ID map for migration. This migration is for input method IDs from // The engine ID map for migration. This migration is for input method IDs from
// VPD so it's NOT a temporary migration. // VPD so it's NOT a temporary migration.
const char* const kEngineIdMigrationMap[][2] = { const char* const kEngineIdMigrationMap[][2] = {
{"m17n:", "vkd_"}, {"ime:jp:mozc_jp", "nacl_mozc_jp"},
{"ime:zh-t:quick", "zh-hant-t-i0-cangjie-1987-x-m0-simplified"}, {"ime:jp:mozc_us", "nacl_mozc_us"},
{"ime:zh-t:zhuyin", "zh-hant-t-i0-und"}, {"ime:ko:hangul_2set", "hangul_2set"},
{"ime:ko:hangul", "hangul_2set"}, {"ime:ko:hangul", "hangul_2set"},
{"ime:ko:hangul_2set", "hangul_2set"}, {"ime:zh-t:array", "zh-hant-t-i0-array-1992"},
{"ime:zh-t:cangjie", "zh-hant-t-i0-cangjie-1987"},
{"ime:zh-t:dayi", "zh-hant-t-i0-dayi-1988"},
{"ime:zh-t:pinyin", "zh-hant-t-i0-pinyin"},
{"ime:zh-t:quick", "zh-hant-t-i0-cangjie-1987-x-m0-simplified"},
{"ime:zh-t:zhuyin", "zh-hant-t-i0-und"},
{"ime:zh:pinyin", "zh-t-i0-pinyin"},
{"ime:zh:wubi", "zh-t-i0-wubi-1986"},
{"m17n:", "vkd_"},
{"t13n:am", "am-t-i0-und"},
{"t13n:ar", "ar-t-i0-und"},
{"t13n:bn", "bn-t-i0-und"},
{"t13n:el", "el-t-i0-und"},
{"t13n:fa", "fa-t-i0-und"},
{"t13n:gu", "gu-t-i0-und"},
{"t13n:he", "he-t-i0-und"},
{"t13n:hi", "hi-t-i0-und"},
{"t13n:kn", "kn-t-i0-und"},
{"t13n:ml", "ml-t-i0-und"},
{"t13n:mr", "mr-t-i0-und"},
{"t13n:ne", "ne-t-i0-und"},
{"t13n:or", "or-t-i0-und"},
{"t13n:pa", "pa-t-i0-und"},
{"t13n:sa", "sa-t-i0-und"},
{"t13n:sr", "sr-t-i0-und"},
{"t13n:ta", "ta-t-i0-und"},
{"t13n:te", "te-t-i0-und"},
{"t13n:ti", "ti-t-i0-und"},
{"t13n:ur", "ur-t-i0-und"},
}; };
const size_t kExtensionIdLen = 32; const size_t kExtensionIdLen = 32;
...@@ -586,9 +614,12 @@ bool InputMethodUtil::MigrateInputMethods( ...@@ -586,9 +614,12 @@ bool InputMethodUtil::MigrateInputMethods(
// Migrates some Engine IDs from VPD. // Migrates some Engine IDs from VPD.
for (size_t j = 0; j < arraysize(kEngineIdMigrationMap); ++j) { for (size_t j = 0; j < arraysize(kEngineIdMigrationMap); ++j) {
size_t pos = engine_id.find(kEngineIdMigrationMap[j][0]); size_t pos = engine_id.find(kEngineIdMigrationMap[j][0]);
if (pos == 0) if (pos == 0) {
engine_id.replace(pos, strlen(kEngineIdMigrationMap[j][0]), engine_id.replace(0,
kExtensionIdMigrationMap[j][1]); strlen(kEngineIdMigrationMap[j][0]),
kEngineIdMigrationMap[j][1]);
break;
}
} }
std::string id = std::string id =
extension_ime_util::GetInputMethodIDByEngineID(engine_id); extension_ime_util::GetInputMethodIDByEngineID(engine_id);
......
...@@ -451,5 +451,34 @@ TEST_F(InputMethodUtilTest, TestIBusInputMethodText) { ...@@ -451,5 +451,34 @@ TEST_F(InputMethodUtilTest, TestIBusInputMethodText) {
} }
} }
// 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", "hangul_2set"},
{"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]);
}
}
} // namespace input_method } // namespace input_method
} // namespace chromeos } // namespace chromeos
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment