普通文本  |  84行  |  3.44 KB

// 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