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 |