Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_engine_ibus_browserttests.cc

Issue 45733008: sk6_charactercomposer: Merged DispatchKeyEvent and its fabricated version. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "base/bind_helpers.h" 5 #include "base/bind_helpers.h"
6 #include "chrome/browser/extensions/extension_browsertest.h" 6 #include "chrome/browser/extensions/extension_browsertest.h"
7 #include "chrome/browser/extensions/extension_test_message_listener.h" 7 #include "chrome/browser/extensions/extension_test_message_listener.h"
8 #include "chrome/common/extensions/background_info.h" 8 #include "chrome/common/extensions/background_info.h"
9 #include "chromeos/dbus/ibus/ibus_text.h" 9 #include "chromeos/dbus/ibus/ibus_text.h"
10 #include "chromeos/ime/component_extension_ime_manager.h" 10 #include "chromeos/ime/component_extension_ime_manager.h"
(...skipping 11 matching lines...) Expand all
22 namespace input_method { 22 namespace input_method {
23 namespace { 23 namespace {
24 24
25 const char kIdentityIMEID[] = 25 const char kIdentityIMEID[] =
26 "_ext_ime_iafoklpfplgfnoimmaejoeondnjnlcfpIdentityIME"; 26 "_ext_ime_iafoklpfplgfnoimmaejoeondnjnlcfpIdentityIME";
27 const char kToUpperIMEID[] = 27 const char kToUpperIMEID[] =
28 "_ext_ime_iafoklpfplgfnoimmaejoeondnjnlcfpToUpperIME"; 28 "_ext_ime_iafoklpfplgfnoimmaejoeondnjnlcfpToUpperIME";
29 const char kAPIArgumentIMEID[] = 29 const char kAPIArgumentIMEID[] =
30 "_ext_ime_iafoklpfplgfnoimmaejoeondnjnlcfpAPIArgumentIME"; 30 "_ext_ime_iafoklpfplgfnoimmaejoeondnjnlcfpAPIArgumentIME";
31 31
32 const uint32 kAltKeyMask = 1 << 3;
33 const uint32 kCtrlKeyMask = 1 << 2;
34 const uint32 kShiftKeyMask = 1 << 0;
35 const uint32 kCapsLockMask = 1 << 1;
36
37 // InputMethod extension should work on 1)normal extension, 2)normal extension 32 // InputMethod extension should work on 1)normal extension, 2)normal extension
38 // in incognito mode 3)component extension. 33 // in incognito mode 3)component extension.
39 enum TestType { 34 enum TestType {
40 kTestTypeNormal = 0, 35 kTestTypeNormal = 0,
41 kTestTypeIncognito = 1, 36 kTestTypeIncognito = 1,
42 kTestTypeComponent = 2, 37 kTestTypeComponent = 2,
43 }; 38 };
44 39
45 class InputMethodEngineIBusBrowserTest 40 class InputMethodEngineIBusBrowserTest
46 : public ExtensionBrowserTest, 41 : public ExtensionBrowserTest,
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 177
183 // onFocus event should be fired if FocusIn function is called. 178 // onFocus event should be fired if FocusIn function is called.
184 ExtensionTestMessageListener focus_listener("onFocus", false);; 179 ExtensionTestMessageListener focus_listener("onFocus", false);;
185 engine_handler->FocusIn(ibus::TEXT_INPUT_TYPE_TEXT); 180 engine_handler->FocusIn(ibus::TEXT_INPUT_TYPE_TEXT);
186 ASSERT_TRUE(focus_listener.WaitUntilSatisfied()); 181 ASSERT_TRUE(focus_listener.WaitUntilSatisfied());
187 ASSERT_TRUE(focus_listener.was_satisfied()); 182 ASSERT_TRUE(focus_listener.was_satisfied());
188 183
189 // onKeyEvent should be fired if ProcessKeyEvent is called. 184 // onKeyEvent should be fired if ProcessKeyEvent is called.
190 KeyEventDoneCallback callback(false); // EchoBackIME doesn't consume keys. 185 KeyEventDoneCallback callback(false); // EchoBackIME doesn't consume keys.
191 ExtensionTestMessageListener keyevent_listener("onKeyEvent", false); 186 ExtensionTestMessageListener keyevent_listener("onKeyEvent", false);
187 /*
192 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 188 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'.
193 0x26, // KeyCode for 'a'. 189 0x26, // KeyCode for 'a'.
194 0, // No modifiers. 190 0, // No modifiers.
195 base::Bind(&KeyEventDoneCallback::Run, 191 base::Bind(&KeyEventDoneCallback::Run,
196 base::Unretained(&callback))); 192 base::Unretained(&callback)));
193 */
194 engine_handler->ProcessKeyEvent("a", // KeySym
195 "KeyA", // KeyCode for 'a'
196 true, // is_key_down
197 false, // is_alt_down
198 false, // is_ctrl_down
199 false, // is_shift_down
200 false, // is_caps_lock_down
201 base::Bind(&KeyEventDoneCallback::Run,
202 base::Unretained(&callback)));
203
197 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 204 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
198 ASSERT_TRUE(keyevent_listener.was_satisfied()); 205 ASSERT_TRUE(keyevent_listener.was_satisfied());
199 callback.WaitUntilCalled(); 206 callback.WaitUntilCalled();
200 207
201 // onSurroundingTextChange should be fired if SetSurroundingText is called. 208 // onSurroundingTextChange should be fired if SetSurroundingText is called.
202 ExtensionTestMessageListener surrounding_text_listener( 209 ExtensionTestMessageListener surrounding_text_listener(
203 "onSurroundingTextChanged", false); 210 "onSurroundingTextChanged", false);
204 engine_handler->SetSurroundingText("text", // Surrounding text. 211 engine_handler->SetSurroundingText("text", // Surrounding text.
205 0, // focused position. 212 0, // focused position.
206 1); // anchor position. 213 1); // anchor position.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 engine_handler->Enable(); 272 engine_handler->Enable();
266 engine_handler->FocusIn(ibus::TEXT_INPUT_TYPE_TEXT); 273 engine_handler->FocusIn(ibus::TEXT_INPUT_TYPE_TEXT);
267 274
268 { 275 {
269 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:No"); 276 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:No");
270 KeyEventDoneCallback callback(false); 277 KeyEventDoneCallback callback(false);
271 const std::string expected_value = 278 const std::string expected_value =
272 "onKeyEvent:keydown:a:KeyA:false:false:false:false"; 279 "onKeyEvent:keydown:a:KeyA:false:false:false:false";
273 ExtensionTestMessageListener keyevent_listener(expected_value, false); 280 ExtensionTestMessageListener keyevent_listener(expected_value, false);
274 281
275 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 282 engine_handler->ProcessKeyEvent("a", // KeySym
276 0x26, // KeyCode for 'a'. 283 "KeyA", // KeyCode for 'a'
277 0, // No modifiers. 284 true, // is_key_down
285 false, // is_alt_down
286 false, // is_ctrl_down
287 false, // is_shift_down
288 false, // is_caps_lock_down
278 base::Bind(&KeyEventDoneCallback::Run, 289 base::Bind(&KeyEventDoneCallback::Run,
279 base::Unretained(&callback))); 290 base::Unretained(&callback)));
280 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 291 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
281 EXPECT_TRUE(keyevent_listener.was_satisfied()); 292 EXPECT_TRUE(keyevent_listener.was_satisfied());
282 callback.WaitUntilCalled(); 293 callback.WaitUntilCalled();
283 } 294 }
284 { 295 {
285 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:No, Shift:No, Caps:No"); 296 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:No, Shift:No, Caps:No");
286 KeyEventDoneCallback callback(false); 297 KeyEventDoneCallback callback(false);
287 const std::string expected_value = 298 const std::string expected_value =
288 "onKeyEvent:keydown:a:KeyA:true:false:false:false"; 299 "onKeyEvent:keydown:a:KeyA:true:false:false:false";
289 ExtensionTestMessageListener keyevent_listener(expected_value, false); 300 ExtensionTestMessageListener keyevent_listener(expected_value, false);
290 301
291 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 302 engine_handler->ProcessKeyEvent("a", // KeySym
292 0x26, // KeyCode for 'a'. 303 "KeyA", // KeyCode for 'a'
293 kCtrlKeyMask, 304 true, // is_key_down
305 false, // is_alt_down
306 true, // is_ctrl_down
307 false, // is_shift_down
308 false, // is_caps_lock_down
294 base::Bind(&KeyEventDoneCallback::Run, 309 base::Bind(&KeyEventDoneCallback::Run,
295 base::Unretained(&callback))); 310 base::Unretained(&callback)));
296 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 311 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
297 EXPECT_TRUE(keyevent_listener.was_satisfied()); 312 EXPECT_TRUE(keyevent_listener.was_satisfied());
298 callback.WaitUntilCalled(); 313 callback.WaitUntilCalled();
299 } 314 }
300 { 315 {
301 SCOPED_TRACE("KeyDown, Ctrl:No, alt:Yes, Shift:No, Caps:No"); 316 SCOPED_TRACE("KeyDown, Ctrl:No, alt:Yes, Shift:No, Caps:No");
302 KeyEventDoneCallback callback(false); 317 KeyEventDoneCallback callback(false);
303 const std::string expected_value = 318 const std::string expected_value =
304 "onKeyEvent:keydown:a:KeyA:false:true:false:false"; 319 "onKeyEvent:keydown:a:KeyA:false:true:false:false";
305 ExtensionTestMessageListener keyevent_listener(expected_value, false); 320 ExtensionTestMessageListener keyevent_listener(expected_value, false);
306 321
307 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 322 engine_handler->ProcessKeyEvent("a", // KeySym
308 0x26, // KeyCode for 'a'. 323 "KeyA", // KeyCode for 'a'
309 kAltKeyMask, 324 true, // is_key_down
325 true, // is_alt_down
326 false, // is_ctrl_down
327 false, // is_shift_down
328 false, // is_caps_lock_down
310 base::Bind(&KeyEventDoneCallback::Run, 329 base::Bind(&KeyEventDoneCallback::Run,
311 base::Unretained(&callback))); 330 base::Unretained(&callback)));
312 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 331 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
313 EXPECT_TRUE(keyevent_listener.was_satisfied()); 332 EXPECT_TRUE(keyevent_listener.was_satisfied());
314 callback.WaitUntilCalled(); 333 callback.WaitUntilCalled();
315 } 334 }
316 { 335 {
317 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:No"); 336 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:No");
318 KeyEventDoneCallback callback(false); 337 KeyEventDoneCallback callback(false);
319 const std::string expected_value = 338 const std::string expected_value =
320 "onKeyEvent:keydown:a:KeyA:false:false:true:false"; 339 "onKeyEvent:keydown:a:KeyA:false:false:true:false";
321 ExtensionTestMessageListener keyevent_listener(expected_value, false); 340 ExtensionTestMessageListener keyevent_listener(expected_value, false);
322 341
323 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 342 engine_handler->ProcessKeyEvent("a", // KeySym
324 0x26, // KeyCode for 'a'. 343 "KeyA", // KeyCode for 'a'
325 kShiftKeyMask, 344 true, // is_key_down
345 false, // is_alt_down
346 false, // is_ctrl_down
347 true, // is_shift_down
348 false, // is_caps_lock_down
326 base::Bind(&KeyEventDoneCallback::Run, 349 base::Bind(&KeyEventDoneCallback::Run,
327 base::Unretained(&callback))); 350 base::Unretained(&callback)));
328 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 351 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
329 EXPECT_TRUE(keyevent_listener.was_satisfied()); 352 EXPECT_TRUE(keyevent_listener.was_satisfied());
330 callback.WaitUntilCalled(); 353 callback.WaitUntilCalled();
331 } 354 }
332 { 355 {
333 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:Yes"); 356 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:No, Caps:Yes");
334 KeyEventDoneCallback callback(false); 357 KeyEventDoneCallback callback(false);
335 const std::string expected_value = 358 const std::string expected_value =
336 "onKeyEvent:keydown:a:KeyA:false:false:false:true"; 359 "onKeyEvent:keydown:a:KeyA:false:false:false:true";
337 ExtensionTestMessageListener keyevent_listener(expected_value, false); 360 ExtensionTestMessageListener keyevent_listener(expected_value, false);
338 361
339 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 362 engine_handler->ProcessKeyEvent("a", // KeySym
340 0x26, // KeyCode for 'a'. 363 "KeyA", // KeyCode for 'a'
341 kCapsLockMask, 364 true, // is_key_down
365 false, // is_alt_down
366 false, // is_ctrl_down
367 false, // is_shift_down
368 true, // is_caps_lock_down
342 base::Bind(&KeyEventDoneCallback::Run, 369 base::Bind(&KeyEventDoneCallback::Run,
343 base::Unretained(&callback))); 370 base::Unretained(&callback)));
344 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 371 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
345 EXPECT_TRUE(keyevent_listener.was_satisfied()); 372 EXPECT_TRUE(keyevent_listener.was_satisfied());
346 callback.WaitUntilCalled(); 373 callback.WaitUntilCalled();
347 } 374 }
348 { 375 {
349 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:Yes, Shift:No, Caps:No"); 376 SCOPED_TRACE("KeyDown, Ctrl:Yes, alt:Yes, Shift:No, Caps:No");
350 KeyEventDoneCallback callback(false); 377 KeyEventDoneCallback callback(false);
351 const std::string expected_value = 378 const std::string expected_value =
352 "onKeyEvent:keydown:a:KeyA:true:true:false:false"; 379 "onKeyEvent:keydown:a:KeyA:true:true:false:false";
353 ExtensionTestMessageListener keyevent_listener(expected_value, false); 380 ExtensionTestMessageListener keyevent_listener(expected_value, false);
354 381
355 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 382 engine_handler->ProcessKeyEvent("a", // KeySym
356 0x26, // KeyCode for 'a'. 383 "KeyA", // KeyCode for 'a'
357 kAltKeyMask | kCtrlKeyMask, 384 true, // is_key_down
385 true, // is_alt_down
386 true, // is_ctrl_down
387 false, // is_shift_down
388 false, // is_caps_lock_down
358 base::Bind(&KeyEventDoneCallback::Run, 389 base::Bind(&KeyEventDoneCallback::Run,
359 base::Unretained(&callback))); 390 base::Unretained(&callback)));
360 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 391 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
361 EXPECT_TRUE(keyevent_listener.was_satisfied()); 392 EXPECT_TRUE(keyevent_listener.was_satisfied());
362 callback.WaitUntilCalled(); 393 callback.WaitUntilCalled();
363 } 394 }
364 { 395 {
365 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:Yes"); 396 SCOPED_TRACE("KeyDown, Ctrl:No, alt:No, Shift:Yes, Caps:Yes");
366 KeyEventDoneCallback callback(false); 397 KeyEventDoneCallback callback(false);
367 const std::string expected_value = 398 const std::string expected_value =
368 "onKeyEvent:keydown:a:KeyA:false:false:true:true"; 399 "onKeyEvent:keydown:a:KeyA:false:false:true:true";
369 ExtensionTestMessageListener keyevent_listener(expected_value, false); 400 ExtensionTestMessageListener keyevent_listener(expected_value, false);
370 401
371 engine_handler->ProcessKeyEvent(0x61, // KeySym for 'a'. 402 engine_handler->ProcessKeyEvent("a", // KeySym
372 0x26, // KeyCode for 'a'. 403 "KeyA", // KeyCode for 'a'
373 kShiftKeyMask | kCapsLockMask, 404 true, // is_key_down
405 false, // is_alt_down
406 false, // is_ctrl_down
407 true, // is_shift_down
408 true, // is_caps_lock_down
374 base::Bind(&KeyEventDoneCallback::Run, 409 base::Bind(&KeyEventDoneCallback::Run,
375 base::Unretained(&callback))); 410 base::Unretained(&callback)));
376 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied()); 411 ASSERT_TRUE(keyevent_listener.WaitUntilSatisfied());
377 EXPECT_TRUE(keyevent_listener.was_satisfied()); 412 EXPECT_TRUE(keyevent_listener.was_satisfied());
378 callback.WaitUntilCalled(); 413 callback.WaitUntilCalled();
379 } 414 }
380 // TODO(nona): Add browser tests for other API as well. 415 // TODO(nona): Add browser tests for other API as well.
381 { 416 {
382 SCOPED_TRACE("commitText test"); 417 SCOPED_TRACE("commitText test");
383 mock_input_context->Reset(); 418 mock_input_context->Reset();
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 mock_input_context->last_delete_surrounding_text_arg().length); 830 mock_input_context->last_delete_surrounding_text_arg().length);
796 } 831 }
797 IBusBridge::Get()->SetInputContextHandler(NULL); 832 IBusBridge::Get()->SetInputContextHandler(NULL);
798 IBusBridge::Get()->SetCandidateWindowHandler(NULL); 833 IBusBridge::Get()->SetCandidateWindowHandler(NULL);
799 IBusBridge::Get()->SetPropertyHandler(NULL); 834 IBusBridge::Get()->SetPropertyHandler(NULL);
800 } 835 }
801 836
802 } // namespace 837 } // namespace
803 } // namespace input_method 838 } // namespace input_method
804 } // namespace chromeos 839 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/input_method/input_method_engine_ibus.cc ('k') | chromeos/ime/ibus_bridge.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698