// Copyright 2013 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 "chromeos/ime/extension_ime_util.h"
#include <string>
#include "testing/gtest/include/gtest/gtest.h"
namespace chromeos {
TEST(ExtensionIMEUtilTest, GetInputMethodIDTest) {
EXPECT_EQ("_ext_ime_ABCDE12345",
extension_ime_util::GetInputMethodID("ABCDE", "12345"));
}
TEST(ExtensionIMEUtilTest, GetComponentInputMethodID) {
EXPECT_EQ("_comp_ime_ABCDE12345",
extension_ime_util::GetComponentInputMethodID("ABCDE", "12345"));
}
TEST(ExtensionIMEUtilTest, GetExtensionIDFromInputMethodIDTest) {
EXPECT_EQ("",
extension_ime_util::GetExtensionIDFromInputMethodID("mozc"));
EXPECT_EQ("12345678901234567890123456789012",
extension_ime_util::GetExtensionIDFromInputMethodID(
extension_ime_util::GetInputMethodID(
"12345678901234567890123456789012",
"mozc")));
EXPECT_EQ("12345678901234567890123456789012",
extension_ime_util::GetExtensionIDFromInputMethodID(
extension_ime_util::GetComponentInputMethodID(
"12345678901234567890123456789012",
"mozc")));
}
TEST(ExtensionIMEUtilTest, IsExtensionIMETest) {
EXPECT_TRUE(extension_ime_util::IsExtensionIME(
extension_ime_util::GetInputMethodID("abcde", "12345")));
EXPECT_FALSE(extension_ime_util::IsExtensionIME(
extension_ime_util::GetComponentInputMethodID("abcde", "12345")));
EXPECT_FALSE(extension_ime_util::IsExtensionIME(""));
EXPECT_FALSE(extension_ime_util::IsExtensionIME("mozc"));
}
TEST(ExtensionIMEUtilTest, IsComponentExtensionIMETest) {
EXPECT_TRUE(extension_ime_util::IsComponentExtensionIME(
extension_ime_util::GetComponentInputMethodID("abcde", "12345")));
EXPECT_FALSE(extension_ime_util::IsComponentExtensionIME(
extension_ime_util::GetInputMethodID("abcde", "12345")));
EXPECT_FALSE(extension_ime_util::IsComponentExtensionIME(""));
EXPECT_FALSE(extension_ime_util::IsComponentExtensionIME("mozc"));
}
TEST(ExtensionIMEUtilTest, IsMemberOfExtension) {
const char* extention1 = "abcdefg";
const char* extention2 = "hijklmn";
const char* extention3 = "opqrstu";
const char* engine_id1 = "12345";
const char* engine_id2 = "67890";
const char* engine_id3 = "31415";
const std::string extention_1_engine_1 =
extension_ime_util::GetInputMethodID(extention1, engine_id1);
const std::string extention_1_engine_2 =
extension_ime_util::GetInputMethodID(extention1, engine_id2);
const std::string component_3_engine_3 =
extension_ime_util::GetComponentInputMethodID(extention3, engine_id3);
EXPECT_TRUE(extension_ime_util::IsMemberOfExtension(extention_1_engine_1,
extention1));
EXPECT_TRUE(extension_ime_util::IsMemberOfExtension(extention_1_engine_2,
extention1));
EXPECT_FALSE(extension_ime_util::IsMemberOfExtension(extention_1_engine_1,
extention2));
EXPECT_FALSE(extension_ime_util::IsMemberOfExtension(extention_1_engine_2,
extention2));
EXPECT_FALSE(extension_ime_util::IsMemberOfExtension(component_3_engine_3,
extention3));
}
} // namespace chromeos