| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/input_method/input_method_manager_impl.h" | 5 #include "chrome/browser/chromeos/input_method/input_method_manager_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
| 25 #include "ui/base/accelerators/accelerator.h" | 25 #include "ui/base/accelerators/accelerator.h" |
| 26 #include "ui/base/ime/text_input_test_support.h" | 26 #include "ui/base/ime/text_input_test_support.h" |
| 27 #include "ui/base/keycodes/keyboard_codes.h" | 27 #include "ui/base/keycodes/keyboard_codes.h" |
| 28 | 28 |
| 29 namespace chromeos { | 29 namespace chromeos { |
| 30 | 30 |
| 31 namespace input_method { | 31 namespace input_method { |
| 32 namespace { | 32 namespace { |
| 33 | 33 |
| 34 // Returns true if |descriptors| contain |target|. |
| 35 bool Contain(const InputMethodDescriptors& descriptors, |
| 36 const InputMethodDescriptor& target) { |
| 37 for (size_t i = 0; i < descriptors.size(); ++i) { |
| 38 if (descriptors[i].id() == target.id()) |
| 39 return true; |
| 40 } |
| 41 return false; |
| 42 } |
| 43 |
| 34 class InputMethodManagerImplTest : public testing::Test { | 44 class InputMethodManagerImplTest : public testing::Test { |
| 35 public: | 45 public: |
| 36 InputMethodManagerImplTest() | 46 InputMethodManagerImplTest() |
| 37 : delegate_(NULL), | 47 : delegate_(NULL), |
| 38 controller_(NULL), | 48 controller_(NULL), |
| 39 candidate_window_controller_(NULL), | 49 candidate_window_controller_(NULL), |
| 40 xkeyboard_(NULL) { | 50 xkeyboard_(NULL) { |
| 41 } | 51 } |
| 42 virtual ~InputMethodManagerImplTest() {} | 52 virtual ~InputMethodManagerImplTest() {} |
| 43 | 53 |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 } | 247 } |
| 238 | 248 |
| 239 TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) { | 249 TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) { |
| 240 scoped_ptr<InputMethodDescriptors> methods( | 250 scoped_ptr<InputMethodDescriptors> methods( |
| 241 manager_->GetSupportedInputMethods()); | 251 manager_->GetSupportedInputMethods()); |
| 242 ASSERT_TRUE(methods.get()); | 252 ASSERT_TRUE(methods.get()); |
| 243 // Try to find random 4-5 layuts and IMEs to make sure the returned list is | 253 // Try to find random 4-5 layuts and IMEs to make sure the returned list is |
| 244 // correct. | 254 // correct. |
| 245 const InputMethodDescriptor* id_to_find = | 255 const InputMethodDescriptor* id_to_find = |
| 246 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId("mozc"); | 256 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId("mozc"); |
| 247 EXPECT_NE(methods->end(), | |
| 248 std::find(methods->begin(), methods->end(), *id_to_find)); | |
| 249 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 257 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 250 "mozc-chewing"); | 258 "mozc-chewing"); |
| 259 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); |
| 251 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 260 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 252 "xkb:us::eng"); | 261 "xkb:us::eng"); |
| 253 EXPECT_NE(methods->end(), | 262 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); |
| 254 std::find(methods->begin(), methods->end(), *id_to_find)); | |
| 255 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 263 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 256 "xkb:us:dvorak:eng"); | 264 "xkb:us:dvorak:eng"); |
| 257 EXPECT_NE(methods->end(), | 265 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); |
| 258 std::find(methods->begin(), methods->end(), *id_to_find)); | |
| 259 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 266 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 260 "xkb:fr::fra"); | 267 "xkb:fr::fra"); |
| 261 EXPECT_NE(methods->end(), | 268 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); |
| 262 std::find(methods->begin(), methods->end(), *id_to_find)); | |
| 263 } | 269 } |
| 264 | 270 |
| 265 TEST_F(InputMethodManagerImplTest, TestEnableLayouts) { | 271 TEST_F(InputMethodManagerImplTest, TestEnableLayouts) { |
| 266 // Currently 5 keyboard layouts are supported for en-US, and 1 for ja. See | 272 // Currently 5 keyboard layouts are supported for en-US, and 1 for ja. See |
| 267 // ibus_input_method.txt. | 273 // ibus_input_method.txt. |
| 268 ComponentExtensionInitialize(); | 274 ComponentExtensionInitialize(); |
| 269 manager_->EnableLayouts("en-US", ""); | 275 manager_->EnableLayouts("en-US", ""); |
| 270 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 276 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
| 271 { | 277 { |
| 272 // For http://crbug.com/19655#c11 - (1) | 278 // For http://crbug.com/19655#c11 - (1) |
| 273 scoped_ptr<InputMethodDescriptors> methods( | 279 scoped_ptr<InputMethodDescriptors> methods( |
| 274 manager_->GetActiveInputMethods()); | 280 manager_->GetActiveInputMethods()); |
| 275 const InputMethodDescriptor* id_to_find = | 281 const InputMethodDescriptor* id_to_find = |
| 276 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 282 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 277 "english-m"); // The "English Mystery" IME. | 283 "english-m"); // The "English Mystery" IME. |
| 278 EXPECT_EQ(methods->end(), | 284 EXPECT_FALSE(Contain(*methods.get(), *id_to_find)); |
| 279 std::find(methods->begin(), methods->end(), *id_to_find)); | |
| 280 } | 285 } |
| 281 // For http://crbug.com/19655#c11 - (2) | 286 // For http://crbug.com/19655#c11 - (2) |
| 282 EXPECT_EQ(0, mock_ibus_daemon_controller_->start_count()); | 287 EXPECT_EQ(0, mock_ibus_daemon_controller_->start_count()); |
| 283 | 288 |
| 284 // For http://crbug.com/19655#c11 - (5) | 289 // For http://crbug.com/19655#c11 - (5) |
| 285 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. | 290 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. |
| 286 manager_->EnableLayouts("ja", ""); // Japanese | 291 manager_->EnableLayouts("ja", ""); // Japanese |
| 287 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 292 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 288 EXPECT_EQ(0, mock_ibus_daemon_controller_->start_count()); | 293 EXPECT_EQ(0, mock_ibus_daemon_controller_->start_count()); |
| 289 } | 294 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 303 TEST_F(InputMethodManagerImplTest, TestActiveInputMethods) { | 308 TEST_F(InputMethodManagerImplTest, TestActiveInputMethods) { |
| 304 manager_->EnableLayouts("ko", ""); // Korean | 309 manager_->EnableLayouts("ko", ""); // Korean |
| 305 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 310 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 306 scoped_ptr<InputMethodDescriptors> methods( | 311 scoped_ptr<InputMethodDescriptors> methods( |
| 307 manager_->GetActiveInputMethods()); | 312 manager_->GetActiveInputMethods()); |
| 308 ASSERT_TRUE(methods.get()); | 313 ASSERT_TRUE(methods.get()); |
| 309 EXPECT_EQ(2U, methods->size()); | 314 EXPECT_EQ(2U, methods->size()); |
| 310 const InputMethodDescriptor* id_to_find = | 315 const InputMethodDescriptor* id_to_find = |
| 311 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 316 manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 312 "xkb:us::eng"); | 317 "xkb:us::eng"); |
| 313 EXPECT_NE(methods->end(), | 318 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); |
| 314 std::find(methods->begin(), methods->end(), *id_to_find)); | |
| 315 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( | 319 id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId( |
| 316 "xkb:kr:kr104:kor"); | 320 "xkb:kr:kr104:kor"); |
| 317 EXPECT_NE(methods->end(), | 321 EXPECT_TRUE(Contain(*methods.get(), *id_to_find)); |
| 318 std::find(methods->begin(), methods->end(), *id_to_find)); | |
| 319 } | 322 } |
| 320 | 323 |
| 321 TEST_F(InputMethodManagerImplTest, TestSetInputMethodConfig) { | 324 TEST_F(InputMethodManagerImplTest, TestSetInputMethodConfig) { |
| 322 InputMethodConfigValue config; | 325 InputMethodConfigValue config; |
| 323 config.type = InputMethodConfigValue::kValueTypeString; | 326 config.type = InputMethodConfigValue::kValueTypeString; |
| 324 config.string_value = "string"; | 327 config.string_value = "string"; |
| 325 EXPECT_EQ(0, controller_->set_input_method_config_internal_count_); | 328 EXPECT_EQ(0, controller_->set_input_method_config_internal_count_); |
| 326 EXPECT_TRUE(manager_->SetInputMethodConfig("section", "name", config)); | 329 EXPECT_TRUE(manager_->SetInputMethodConfig("section", "name", config)); |
| 327 EXPECT_EQ(1, controller_->set_input_method_config_internal_count_); | 330 EXPECT_EQ(1, controller_->set_input_method_config_internal_count_); |
| 328 EXPECT_EQ("section", | 331 EXPECT_EQ("section", |
| (...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1194 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 1197 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
| 1195 EXPECT_EQ(1, controller_->change_input_method_count_); | 1198 EXPECT_EQ(1, controller_->change_input_method_count_); |
| 1196 EXPECT_EQ(ext_id1, controller_->change_input_method_id_); | 1199 EXPECT_EQ(ext_id1, controller_->change_input_method_id_); |
| 1197 manager_->ChangeInputMethod(ext_id2); | 1200 manager_->ChangeInputMethod(ext_id2); |
| 1198 EXPECT_EQ(2, controller_->change_input_method_count_); | 1201 EXPECT_EQ(2, controller_->change_input_method_count_); |
| 1199 EXPECT_EQ(ext_id2, controller_->change_input_method_id_); | 1202 EXPECT_EQ(ext_id2, controller_->change_input_method_id_); |
| 1200 } | 1203 } |
| 1201 | 1204 |
| 1202 } // namespace input_method | 1205 } // namespace input_method |
| 1203 } // namespace chromeos | 1206 } // namespace chromeos |
| OLD | NEW |