| 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 "ash/ime/input_method_menu_item.h" | 5 #include "ash/ime/input_method_menu_item.h" |
| 6 #include "ash/ime/input_method_menu_manager.h" | 6 #include "ash/ime/input_method_menu_manager.h" |
| 7 #include "base/bind_helpers.h" | 7 #include "base/bind_helpers.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/extensions/extension_browsertest.h" | 9 #include "chrome/browser/extensions/extension_browsertest.h" |
| 10 #include "chrome/browser/extensions/extension_test_message_listener.h" | 10 #include "chrome/browser/extensions/extension_test_message_listener.h" |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 ExtensionTestMessageListener focus_listener("onFocus:text", false); | 179 ExtensionTestMessageListener focus_listener("onFocus:text", false); |
| 180 IMEEngineHandlerInterface::InputContext context(ui::TEXT_INPUT_TYPE_TEXT, | 180 IMEEngineHandlerInterface::InputContext context(ui::TEXT_INPUT_TYPE_TEXT, |
| 181 ui::TEXT_INPUT_MODE_DEFAULT); | 181 ui::TEXT_INPUT_MODE_DEFAULT); |
| 182 engine_handler->FocusIn(context); | 182 engine_handler->FocusIn(context); |
| 183 ASSERT_TRUE(focus_listener.WaitUntilSatisfied()); | 183 ASSERT_TRUE(focus_listener.WaitUntilSatisfied()); |
| 184 ASSERT_TRUE(focus_listener.was_satisfied()); | 184 ASSERT_TRUE(focus_listener.was_satisfied()); |
| 185 | 185 |
| 186 // onKeyEvent should be fired if ProcessKeyEvent is called. | 186 // onKeyEvent should be fired if ProcessKeyEvent is called. |
| 187 KeyEventDoneCallback callback(false); // EchoBackIME doesn't consume keys. | 187 KeyEventDoneCallback callback(false); // EchoBackIME doesn't consume keys. |
| 188 ExtensionTestMessageListener keyevent_listener("onKeyEvent", false); | 188 ExtensionTestMessageListener keyevent_listener("onKeyEvent", false); |
| 189 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE, false); | 189 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE); |
| 190 engine_handler->ProcessKeyEvent(key_event, | 190 engine_handler->ProcessKeyEvent(key_event, |
| 191 base::Bind(&KeyEventDoneCallback::Run, | 191 base::Bind(&KeyEventDoneCallback::Run, |
| 192 base::Unretained(&callback))); | 192 base::Unretained(&callback))); |
| 193 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 193 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 194 ASSERT_TRUE(keyevent_listener.was_satisfied()); | 194 ASSERT_TRUE(keyevent_listener.was_satisfied()); |
| 195 callback.WaitUntilCalled(); | 195 callback.WaitUntilCalled(); |
| 196 | 196 |
| 197 // onSurroundingTextChange should be fired if SetSurroundingText is called. | 197 // onSurroundingTextChange should be fired if SetSurroundingText is called. |
| 198 ExtensionTestMessageListener surrounding_text_listener( | 198 ExtensionTestMessageListener surrounding_text_listener( |
| 199 "onSurroundingTextChanged", false); | 199 "onSurroundingTextChanged", false); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 engine_handler->FocusIn(context); | 260 engine_handler->FocusIn(context); |
| 261 | 261 |
| 262 { | 262 { |
| 263 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:No"); | 263 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:No"); |
| 264 KeyEventDoneCallback callback(false); | 264 KeyEventDoneCallback callback(false); |
| 265 const std::string expected_value = | 265 const std::string expected_value = |
| 266 "onKeyEvent::keydown:a:KeyA:false:false:false:false"; | 266 "onKeyEvent::keydown:a:KeyA:false:false:false:false"; |
| 267 ExtensionTestMessageListener keyevent_listener(expected_value, false); | 267 ExtensionTestMessageListener keyevent_listener(expected_value, false); |
| 268 | 268 |
| 269 ui::KeyEvent key_event( | 269 ui::KeyEvent key_event( |
| 270 ui::ET_KEY_PRESSED, ui::VKEY_A, "KeyA", ui::EF_NONE, false); | 270 ui::ET_KEY_PRESSED, ui::VKEY_A, "KeyA", ui::EF_NONE); |
| 271 engine_handler->ProcessKeyEvent(key_event, | 271 engine_handler->ProcessKeyEvent(key_event, |
| 272 base::Bind(&KeyEventDoneCallback::Run, | 272 base::Bind(&KeyEventDoneCallback::Run, |
| 273 base::Unretained(&callback))); | 273 base::Unretained(&callback))); |
| 274 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 274 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 275 EXPECT_TRUE(keyevent_listener.was_satisfied()); | 275 EXPECT_TRUE(keyevent_listener.was_satisfied()); |
| 276 callback.WaitUntilCalled(); | 276 callback.WaitUntilCalled(); |
| 277 } | 277 } |
| 278 { | 278 { |
| 279 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:No, Shift:No, Caps:No"); | 279 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:No, Shift:No, Caps:No"); |
| 280 KeyEventDoneCallback callback(false); | 280 KeyEventDoneCallback callback(false); |
| 281 const std::string expected_value = | 281 const std::string expected_value = |
| 282 "onKeyEvent::keydown:a:KeyA:true:false:false:false"; | 282 "onKeyEvent::keydown:a:KeyA:true:false:false:false"; |
| 283 ExtensionTestMessageListener keyevent_listener(expected_value, false); | 283 ExtensionTestMessageListener keyevent_listener(expected_value, false); |
| 284 | 284 |
| 285 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, | 285 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, |
| 286 ui::VKEY_A, | 286 ui::VKEY_A, |
| 287 "KeyA", | 287 "KeyA", |
| 288 ui::EF_CONTROL_DOWN, | 288 ui::EF_CONTROL_DOWN); |
| 289 false); | |
| 290 engine_handler->ProcessKeyEvent(key_event, | 289 engine_handler->ProcessKeyEvent(key_event, |
| 291 base::Bind(&KeyEventDoneCallback::Run, | 290 base::Bind(&KeyEventDoneCallback::Run, |
| 292 base::Unretained(&callback))); | 291 base::Unretained(&callback))); |
| 293 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 292 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 294 EXPECT_TRUE(keyevent_listener.was_satisfied()); | 293 EXPECT_TRUE(keyevent_listener.was_satisfied()); |
| 295 callback.WaitUntilCalled(); | 294 callback.WaitUntilCalled(); |
| 296 } | 295 } |
| 297 { | 296 { |
| 298 SCOPED_TRACE("KeyDown, Ctrl:No, alt:Yes, Shift:No, Caps:No"); | 297 SCOPED_TRACE("KeyDown, Ctrl:No, alt:Yes, Shift:No, Caps:No"); |
| 299 KeyEventDoneCallback callback(false); | 298 KeyEventDoneCallback callback(false); |
| 300 const std::string expected_value = | 299 const std::string expected_value = |
| 301 "onKeyEvent::keydown:a:KeyA:false:true:false:false"; | 300 "onKeyEvent::keydown:a:KeyA:false:true:false:false"; |
| 302 ExtensionTestMessageListener keyevent_listener(expected_value, false); | 301 ExtensionTestMessageListener keyevent_listener(expected_value, false); |
| 303 | 302 |
| 304 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, | 303 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, |
| 305 ui::VKEY_A, | 304 ui::VKEY_A, |
| 306 "KeyA", | 305 "KeyA", |
| 307 ui::EF_ALT_DOWN, | 306 ui::EF_ALT_DOWN); |
| 308 false); | |
| 309 engine_handler->ProcessKeyEvent(key_event, | 307 engine_handler->ProcessKeyEvent(key_event, |
| 310 base::Bind(&KeyEventDoneCallback::Run, | 308 base::Bind(&KeyEventDoneCallback::Run, |
| 311 base::Unretained(&callback))); | 309 base::Unretained(&callback))); |
| 312 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 310 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 313 EXPECT_TRUE(keyevent_listener.was_satisfied()); | 311 EXPECT_TRUE(keyevent_listener.was_satisfied()); |
| 314 callback.WaitUntilCalled(); | 312 callback.WaitUntilCalled(); |
| 315 } | 313 } |
| 316 { | 314 { |
| 317 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:No"); | 315 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:No"); |
| 318 KeyEventDoneCallback callback(false); | 316 KeyEventDoneCallback callback(false); |
| 319 const std::string expected_value = | 317 const std::string expected_value = |
| 320 "onKeyEvent::keydown:A:KeyA:false:false:true:false"; | 318 "onKeyEvent::keydown:A:KeyA:false:false:true:false"; |
| 321 ExtensionTestMessageListener keyevent_listener(expected_value, false); | 319 ExtensionTestMessageListener keyevent_listener(expected_value, false); |
| 322 | 320 |
| 323 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, | 321 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, |
| 324 ui::VKEY_A, | 322 ui::VKEY_A, |
| 325 "KeyA", | 323 "KeyA", |
| 326 ui::EF_SHIFT_DOWN, | 324 ui::EF_SHIFT_DOWN); |
| 327 false); | |
| 328 engine_handler->ProcessKeyEvent(key_event, | 325 engine_handler->ProcessKeyEvent(key_event, |
| 329 base::Bind(&KeyEventDoneCallback::Run, | 326 base::Bind(&KeyEventDoneCallback::Run, |
| 330 base::Unretained(&callback))); | 327 base::Unretained(&callback))); |
| 331 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 328 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 332 EXPECT_TRUE(keyevent_listener.was_satisfied()); | 329 EXPECT_TRUE(keyevent_listener.was_satisfied()); |
| 333 callback.WaitUntilCalled(); | 330 callback.WaitUntilCalled(); |
| 334 } | 331 } |
| 335 { | 332 { |
| 336 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:Yes"); | 333 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:Yes"); |
| 337 KeyEventDoneCallback callback(false); | 334 KeyEventDoneCallback callback(false); |
| 338 const std::string expected_value = | 335 const std::string expected_value = |
| 339 "onKeyEvent::keydown:A:KeyA:false:false:false:true"; | 336 "onKeyEvent::keydown:A:KeyA:false:false:false:true"; |
| 340 ExtensionTestMessageListener keyevent_listener(expected_value, false); | 337 ExtensionTestMessageListener keyevent_listener(expected_value, false); |
| 341 | 338 |
| 342 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, | 339 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, |
| 343 ui::VKEY_A, | 340 ui::VKEY_A, |
| 344 "KeyA", | 341 "KeyA", |
| 345 ui::EF_CAPS_LOCK_DOWN, | 342 ui::EF_CAPS_LOCK_DOWN); |
| 346 false); | |
| 347 engine_handler->ProcessKeyEvent(key_event, | 343 engine_handler->ProcessKeyEvent(key_event, |
| 348 base::Bind(&KeyEventDoneCallback::Run, | 344 base::Bind(&KeyEventDoneCallback::Run, |
| 349 base::Unretained(&callback))); | 345 base::Unretained(&callback))); |
| 350 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 346 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 351 EXPECT_TRUE(keyevent_listener.was_satisfied()); | 347 EXPECT_TRUE(keyevent_listener.was_satisfied()); |
| 352 callback.WaitUntilCalled(); | 348 callback.WaitUntilCalled(); |
| 353 } | 349 } |
| 354 { | 350 { |
| 355 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:Yes, Shift:No, Caps:No"); | 351 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:Yes, Shift:No, Caps:No"); |
| 356 KeyEventDoneCallback callback(false); | 352 KeyEventDoneCallback callback(false); |
| 357 const std::string expected_value = | 353 const std::string expected_value = |
| 358 "onKeyEvent::keydown:a:KeyA:true:true:false:false"; | 354 "onKeyEvent::keydown:a:KeyA:true:true:false:false"; |
| 359 ExtensionTestMessageListener keyevent_listener(expected_value, false); | 355 ExtensionTestMessageListener keyevent_listener(expected_value, false); |
| 360 | 356 |
| 361 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, | 357 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, |
| 362 ui::VKEY_A, | 358 ui::VKEY_A, |
| 363 "KeyA", | 359 "KeyA", |
| 364 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, | 360 ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN); |
| 365 false); | |
| 366 engine_handler->ProcessKeyEvent(key_event, | 361 engine_handler->ProcessKeyEvent(key_event, |
| 367 base::Bind(&KeyEventDoneCallback::Run, | 362 base::Bind(&KeyEventDoneCallback::Run, |
| 368 base::Unretained(&callback))); | 363 base::Unretained(&callback))); |
| 369 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 364 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 370 EXPECT_TRUE(keyevent_listener.was_satisfied()); | 365 EXPECT_TRUE(keyevent_listener.was_satisfied()); |
| 371 callback.WaitUntilCalled(); | 366 callback.WaitUntilCalled(); |
| 372 } | 367 } |
| 373 { | 368 { |
| 374 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:Yes"); | 369 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:Yes"); |
| 375 KeyEventDoneCallback callback(false); | 370 KeyEventDoneCallback callback(false); |
| 376 const std::string expected_value = | 371 const std::string expected_value = |
| 377 "onKeyEvent::keydown:a:KeyA:false:false:true:true"; | 372 "onKeyEvent::keydown:a:KeyA:false:false:true:true"; |
| 378 ExtensionTestMessageListener keyevent_listener(expected_value, false); | 373 ExtensionTestMessageListener keyevent_listener(expected_value, false); |
| 379 | 374 |
| 380 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, | 375 ui::KeyEvent key_event(ui::ET_KEY_PRESSED, |
| 381 ui::VKEY_A, | 376 ui::VKEY_A, |
| 382 "KeyA", | 377 "KeyA", |
| 383 ui::EF_SHIFT_DOWN | ui::EF_CAPS_LOCK_DOWN, | 378 ui::EF_SHIFT_DOWN | ui::EF_CAPS_LOCK_DOWN); |
| 384 false); | |
| 385 engine_handler->ProcessKeyEvent(key_event, | 379 engine_handler->ProcessKeyEvent(key_event, |
| 386 base::Bind(&KeyEventDoneCallback::Run, | 380 base::Bind(&KeyEventDoneCallback::Run, |
| 387 base::Unretained(&callback))); | 381 base::Unretained(&callback))); |
| 388 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); | 382 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); |
| 389 EXPECT_TRUE(keyevent_listener.was_satisfied()); | 383 EXPECT_TRUE(keyevent_listener.was_satisfied()); |
| 390 callback.WaitUntilCalled(); | 384 callback.WaitUntilCalled(); |
| 391 } | 385 } |
| 392 // TODO(nona): Add browser tests for other API as well. | 386 // TODO(nona): Add browser tests for other API as well. |
| 393 { | 387 { |
| 394 SCOPED_TRACE("commitText test"); | 388 SCOPED_TRACE("commitText test"); |
| (...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 } | 933 } |
| 940 } | 934 } |
| 941 | 935 |
| 942 IMEBridge::Get()->SetInputContextHandler(NULL); | 936 IMEBridge::Get()->SetInputContextHandler(NULL); |
| 943 IMEBridge::Get()->SetCandidateWindowHandler(NULL); | 937 IMEBridge::Get()->SetCandidateWindowHandler(NULL); |
| 944 } | 938 } |
| 945 | 939 |
| 946 } // namespace | 940 } // namespace |
| 947 } // namespace input_method | 941 } // namespace input_method |
| 948 } // namespace chromeos | 942 } // namespace chromeos |
| OLD | NEW |