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 |