blob: d71a814b798b90ea44ec69b2ca4fd7e969b8fde1 [file] [log] [blame]
// 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 "ui/base/ime/chromeos/extension_ime_util.h"
#include <string>
#include "base/strings/strcat.h"
#include "build/branding_buildflags.h"
#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, GetArcInputMethodIDTest) {
EXPECT_EQ("_arc_ime_ABCDE12345",
extension_ime_util::GetArcInputMethodID("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_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(extension_ime_util::IsExtensionIME(
extension_ime_util::GetComponentInputMethodID(
"abcde_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(extension_ime_util::IsExtensionIME(
extension_ime_util::GetArcInputMethodID(
"abcde_xxxxxxxxxxxxxxxxxxxxxxxxxx", "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_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(extension_ime_util::IsComponentExtensionIME(
extension_ime_util::GetInputMethodID(
"abcde_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(extension_ime_util::IsComponentExtensionIME(
extension_ime_util::GetArcInputMethodID(
"abcde_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(extension_ime_util::IsComponentExtensionIME(""));
EXPECT_FALSE(extension_ime_util::IsComponentExtensionIME("mozc"));
}
TEST(ExtensionIMEUtilTest, IsArcIMETest) {
EXPECT_TRUE(
extension_ime_util::IsArcIME(extension_ime_util::GetArcInputMethodID(
"abcde_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(
extension_ime_util::IsArcIME(extension_ime_util::GetInputMethodID(
"abcde_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(extension_ime_util::IsArcIME(
extension_ime_util::GetComponentInputMethodID(
"abcde_xxxxxxxxxxxxxxxxxxxxxxxxxx", "12345")));
EXPECT_FALSE(extension_ime_util::IsArcIME(""));
EXPECT_FALSE(extension_ime_util::IsArcIME("mozc"));
}
TEST(ExtensionIMEUtilTest, IsExperimentalMultilingualTest) {
// TODO(crbug.com/1162211): Input method IDs are tuples of extension type,
// extension ID, and extension-local input method ID. However, currently
// they're just concats of the three constituent pieces of info, hence StrCat
// here. Replace StrCat once they're no longer unstructured string concats.
EXPECT_FALSE(extension_ime_util::IsExperimentalMultilingual(
base::StrCat({"some_extension_type", "some_extension_id",
"experimental_hello_world"})));
EXPECT_FALSE(extension_ime_util::IsExperimentalMultilingual(base::StrCat(
{"_comp_ime_", "some_extension_id", "experimental_hello_world"})));
EXPECT_FALSE(extension_ime_util::IsExperimentalMultilingual(base::StrCat(
{"_comp_ime_", "jkghodnilhceideoidjikpgommlajknk", "hello_world"})));
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
EXPECT_TRUE(
#else
EXPECT_FALSE(
#endif
extension_ime_util::IsExperimentalMultilingual(
base::StrCat({"_comp_ime_", "jkghodnilhceideoidjikpgommlajknk",
"experimental_hello_world"})));
}
} // namespace chromeos