| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/logging.h" | 5 #include "base/logging.h" |
| 6 #include "chromeos/ime/component_extension_ime_manager.h" | 6 #include "chromeos/ime/component_extension_ime_manager.h" |
| 7 #include "chromeos/ime/extension_ime_util.h" | 7 #include "chromeos/ime/extension_ime_util.h" |
| 8 #include "chromeos/ime/mock_component_extension_ime_manager_delegate.h" | 8 #include "chromeos/ime/mock_component_extension_ime_manager_delegate.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 namespace chromeos { | 11 namespace chromeos { |
| 12 namespace input_method { | 12 namespace input_method { |
| 13 | 13 |
| 14 namespace { | 14 namespace { |
| 15 | 15 |
| 16 class ComponentExtensionIMEManagerTest : public testing::Test { | 16 class ComponentExtensionIMEManagerTest : public testing::Test { |
| 17 public: | 17 public: |
| 18 ComponentExtensionIMEManagerTest() : mock_delegate_(NULL) {} | 18 ComponentExtensionIMEManagerTest() : mock_delegate_(NULL) {} |
| 19 | 19 |
| 20 virtual void SetUp() { | 20 virtual void SetUp() { |
| 21 ime_list_.clear(); | 21 ime_list_.clear(); |
| 22 | 22 |
| 23 ComponentExtensionIME ext1; | 23 ComponentExtensionIME ext1; |
| 24 ext1.id = "ext1_id"; | 24 ext1.id = "ext1_id_xxxxxxxxxxxxxxxxxxxxxxxx"; |
| 25 ext1.description = "ext1_description"; | 25 ext1.description = "ext1_description"; |
| 26 ext1.options_page_url = | 26 ext1.options_page_url = |
| 27 GURL("chrome-extension://" + ext1.id + "/options.html"); | 27 GURL("chrome-extension://" + ext1.id + "/options.html"); |
| 28 ext1.path = base::FilePath("ext1_file_path"); | 28 ext1.path = base::FilePath("ext1_file_path"); |
| 29 | 29 |
| 30 ComponentExtensionEngine ext1_engine1; | 30 ComponentExtensionEngine ext1_engine1; |
| 31 ext1_engine1.engine_id = "ext1_engine1_engine_id"; | 31 ext1_engine1.engine_id = "ext1_engine1_engine_id"; |
| 32 ext1_engine1.display_name = "ext1_engine_1_display_name"; | 32 ext1_engine1.display_name = "ext1_engine_1_display_name"; |
| 33 ext1_engine1.language_codes.push_back("en"); | 33 ext1_engine1.language_codes.push_back("en"); |
| 34 ext1_engine1.layouts.push_back("us"); | 34 ext1_engine1.layouts.push_back("us"); |
| 35 ext1.engines.push_back(ext1_engine1); | 35 ext1.engines.push_back(ext1_engine1); |
| 36 | 36 |
| 37 ComponentExtensionEngine ext1_engine2; | 37 ComponentExtensionEngine ext1_engine2; |
| 38 ext1_engine2.engine_id = "ext1_engine2_engine_id"; | 38 ext1_engine2.engine_id = "ext1_engine2_engine_id"; |
| 39 ext1_engine2.display_name = "ext1_engine2_display_name"; | 39 ext1_engine2.display_name = "ext1_engine2_display_name"; |
| 40 ext1_engine2.language_codes.push_back("en"); | 40 ext1_engine2.language_codes.push_back("en"); |
| 41 ext1_engine2.layouts.push_back("us"); | 41 ext1_engine2.layouts.push_back("us"); |
| 42 ext1.engines.push_back(ext1_engine2); | 42 ext1.engines.push_back(ext1_engine2); |
| 43 | 43 |
| 44 ComponentExtensionEngine ext1_engine3; | 44 ComponentExtensionEngine ext1_engine3; |
| 45 ext1_engine3.engine_id = "ext1_engine3_engine_id"; | 45 ext1_engine3.engine_id = "ext1_engine3_engine_id"; |
| 46 ext1_engine3.display_name = "ext1_engine3_display_name"; | 46 ext1_engine3.display_name = "ext1_engine3_display_name"; |
| 47 ext1_engine3.language_codes.push_back("ja"); | 47 ext1_engine3.language_codes.push_back("ja"); |
| 48 ext1_engine3.layouts.push_back("us"); | 48 ext1_engine3.layouts.push_back("us"); |
| 49 ext1.engines.push_back(ext1_engine3); | 49 ext1.engines.push_back(ext1_engine3); |
| 50 | 50 |
| 51 ime_list_.push_back(ext1); | 51 ime_list_.push_back(ext1); |
| 52 | 52 |
| 53 ComponentExtensionIME ext2; | 53 ComponentExtensionIME ext2; |
| 54 ext2.id = "ext2_id"; | 54 ext2.id = "ext2_id_xxxxxxxxxxxxxxxxxxxxxxxx"; |
| 55 ext2.description = "ext2_description"; | 55 ext2.description = "ext2_description"; |
| 56 ext2.path = base::FilePath("ext2_file_path"); | 56 ext2.path = base::FilePath("ext2_file_path"); |
| 57 | 57 |
| 58 ComponentExtensionEngine ext2_engine1; | 58 ComponentExtensionEngine ext2_engine1; |
| 59 ext2_engine1.engine_id = "ext2_engine1_engine_id"; | 59 ext2_engine1.engine_id = "ext2_engine1_engine_id"; |
| 60 ext2_engine1.display_name = "ext2_engine_1_display_name"; | 60 ext2_engine1.display_name = "ext2_engine_1_display_name"; |
| 61 ext2_engine1.language_codes.push_back("en"); | 61 ext2_engine1.language_codes.push_back("en"); |
| 62 ext2_engine1.layouts.push_back("us"); | 62 ext2_engine1.layouts.push_back("us"); |
| 63 ext2.engines.push_back(ext2_engine1); | 63 ext2.engines.push_back(ext2_engine1); |
| 64 | 64 |
| 65 ComponentExtensionEngine ext2_engine2; | 65 ComponentExtensionEngine ext2_engine2; |
| 66 ext2_engine2.engine_id = "ext2_engine2_engine_id"; | 66 ext2_engine2.engine_id = "ext2_engine2_engine_id"; |
| 67 ext2_engine2.display_name = "ext2_engine2_display_name"; | 67 ext2_engine2.display_name = "ext2_engine2_display_name"; |
| 68 ext2_engine2.language_codes.push_back("hi"); | 68 ext2_engine2.language_codes.push_back("hi"); |
| 69 ext2_engine2.layouts.push_back("us"); | 69 ext2_engine2.layouts.push_back("us"); |
| 70 ext2.engines.push_back(ext2_engine2); | 70 ext2.engines.push_back(ext2_engine2); |
| 71 | 71 |
| 72 ComponentExtensionEngine ext2_engine3; | 72 ComponentExtensionEngine ext2_engine3; |
| 73 ext2_engine3.engine_id = "ext2_engine3_engine_id"; | 73 ext2_engine3.engine_id = "ext2_engine3_engine_id"; |
| 74 ext2_engine3.display_name = "ext2_engine3_display_name"; | 74 ext2_engine3.display_name = "ext2_engine3_display_name"; |
| 75 ext2_engine3.language_codes.push_back("ja"); | 75 ext2_engine3.language_codes.push_back("ja"); |
| 76 ext2_engine3.layouts.push_back("jp"); | 76 ext2_engine3.layouts.push_back("jp"); |
| 77 ext2.engines.push_back(ext2_engine3); | 77 ext2.engines.push_back(ext2_engine3); |
| 78 | 78 |
| 79 ime_list_.push_back(ext2); | 79 ime_list_.push_back(ext2); |
| 80 | 80 |
| 81 ComponentExtensionIME ext3; | 81 ComponentExtensionIME ext3; |
| 82 ext3.id = "ext3_id"; | 82 ext3.id = "ext3_id_xxxxxxxxxxxxxxxxxxxxxxxx"; |
| 83 ext3.description = "ext3_description"; | 83 ext3.description = "ext3_description"; |
| 84 ext3.options_page_url = | 84 ext3.options_page_url = |
| 85 GURL("chrome-extension://" + ext3.id + "/options.html"); | 85 GURL("chrome-extension://" + ext3.id + "/options.html"); |
| 86 ext3.path = base::FilePath("ext3_file_path"); | 86 ext3.path = base::FilePath("ext3_file_path"); |
| 87 | 87 |
| 88 ComponentExtensionEngine ext3_engine1; | 88 ComponentExtensionEngine ext3_engine1; |
| 89 ext3_engine1.engine_id = "ext3_engine1_engine_id"; | 89 ext3_engine1.engine_id = "ext3_engine1_engine_id"; |
| 90 ext3_engine1.display_name = "ext3_engine_1_display_name"; | 90 ext3_engine1.display_name = "ext3_engine_1_display_name"; |
| 91 ext3_engine1.language_codes.push_back("hi"); | 91 ext3_engine1.language_codes.push_back("hi"); |
| 92 ext3_engine1.layouts.push_back("us"); | 92 ext3_engine1.layouts.push_back("us"); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 "AAAA", "012345"))); | 174 "AAAA", "012345"))); |
| 175 } | 175 } |
| 176 | 176 |
| 177 TEST_F(ComponentExtensionIMEManagerTest, IsWhitelistedExtensionTest) { | 177 TEST_F(ComponentExtensionIMEManagerTest, IsWhitelistedExtensionTest) { |
| 178 EXPECT_TRUE(component_ext_mgr_->IsWhitelistedExtension(ime_list_[0].id)); | 178 EXPECT_TRUE(component_ext_mgr_->IsWhitelistedExtension(ime_list_[0].id)); |
| 179 EXPECT_TRUE(component_ext_mgr_->IsWhitelistedExtension(ime_list_[1].id)); | 179 EXPECT_TRUE(component_ext_mgr_->IsWhitelistedExtension(ime_list_[1].id)); |
| 180 EXPECT_FALSE(component_ext_mgr_->IsWhitelistedExtension("dummy")); | 180 EXPECT_FALSE(component_ext_mgr_->IsWhitelistedExtension("dummy")); |
| 181 EXPECT_FALSE(component_ext_mgr_->IsWhitelistedExtension("")); | 181 EXPECT_FALSE(component_ext_mgr_->IsWhitelistedExtension("")); |
| 182 } | 182 } |
| 183 | 183 |
| 184 TEST_F(ComponentExtensionIMEManagerTest, GetNameDescriptionTest) { | |
| 185 for (size_t i = 0; i < ime_list_.size(); ++i) { | |
| 186 for (size_t j = 0; j < ime_list_[i].engines.size(); ++j) { | |
| 187 const ComponentExtensionEngine& engine | |
| 188 = ime_list_[i].engines[j]; | |
| 189 | |
| 190 const std::string input_method_id = | |
| 191 extension_ime_util::GetComponentInputMethodID( | |
| 192 ime_list_[i].id, | |
| 193 engine.engine_id); | |
| 194 | |
| 195 EXPECT_EQ(input_method_id, | |
| 196 component_ext_mgr_->GetId(ime_list_[i].id, engine.engine_id)); | |
| 197 EXPECT_EQ(engine.display_name, | |
| 198 component_ext_mgr_->GetName(input_method_id)); | |
| 199 EXPECT_EQ(engine.description, | |
| 200 component_ext_mgr_->GetDescription(input_method_id)); | |
| 201 } | |
| 202 } | |
| 203 } | |
| 204 | |
| 205 TEST_F(ComponentExtensionIMEManagerTest, ListIMEByLanguageTest) { | |
| 206 const std::string hindi_layout1 = | |
| 207 extension_ime_util::GetComponentInputMethodID( | |
| 208 ime_list_[1].id, ime_list_[1].engines[1].engine_id); | |
| 209 const std::string hindi_layout2 = | |
| 210 extension_ime_util::GetComponentInputMethodID( | |
| 211 ime_list_[2].id, ime_list_[2].engines[0].engine_id); | |
| 212 | |
| 213 std::vector<std::string> hindi_list | |
| 214 = component_ext_mgr_->ListIMEByLanguage("hi"); | |
| 215 ASSERT_EQ(2UL, hindi_list.size()); | |
| 216 EXPECT_TRUE(hindi_list[0] == hindi_layout1 || hindi_list[0] == hindi_layout2); | |
| 217 EXPECT_TRUE(hindi_list[1] == hindi_layout1 || hindi_list[1] == hindi_layout2); | |
| 218 | |
| 219 EXPECT_EQ(0UL, component_ext_mgr_->ListIMEByLanguage("ru").size()); | |
| 220 EXPECT_EQ(0UL, component_ext_mgr_->ListIMEByLanguage("").size()); | |
| 221 EXPECT_EQ(0UL, component_ext_mgr_->ListIMEByLanguage("invalid").size()); | |
| 222 EXPECT_EQ(5UL, component_ext_mgr_->ListIMEByLanguage("en").size()); | |
| 223 EXPECT_EQ(2UL, component_ext_mgr_->ListIMEByLanguage("ja").size()); | |
| 224 } | |
| 225 | |
| 226 TEST_F(ComponentExtensionIMEManagerTest, GetAllIMEAsInputMethodDescriptor) { | 184 TEST_F(ComponentExtensionIMEManagerTest, GetAllIMEAsInputMethodDescriptor) { |
| 227 input_method::InputMethodDescriptors descriptors = | 185 input_method::InputMethodDescriptors descriptors = |
| 228 component_ext_mgr_->GetAllIMEAsInputMethodDescriptor(); | 186 component_ext_mgr_->GetAllIMEAsInputMethodDescriptor(); |
| 229 size_t total_ime_size = 0; | 187 size_t total_ime_size = 0; |
| 230 for (size_t i = 0; i < ime_list_.size(); ++i) { | 188 for (size_t i = 0; i < ime_list_.size(); ++i) { |
| 231 total_ime_size += ime_list_[i].engines.size(); | 189 total_ime_size += ime_list_[i].engines.size(); |
| 232 } | 190 } |
| 233 EXPECT_EQ(total_ime_size, descriptors.size()); | 191 EXPECT_EQ(total_ime_size, descriptors.size()); |
| 234 } | 192 } |
| 235 | 193 |
| 236 } // namespace | 194 } // namespace |
| 237 | 195 |
| 238 } // namespace input_method | 196 } // namespace input_method |
| 239 } // namespace chromeos | 197 } // namespace chromeos |
| OLD | NEW |