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

Side by Side Diff: ash/accelerators/accelerator_controller_unittest.cc

Issue 10155015: Process all global shortcuts for Ash after InputMethodEventFilter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, address comments Created 8 years, 8 months 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 | Annotate | Revision Log
« no previous file with comments | « ash/accelerators/accelerator_controller.cc ('k') | ash/accelerators/accelerator_dispatcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "ash/accelerators/accelerator_controller.h" 5 #include "ash/accelerators/accelerator_controller.h"
6 #include "ash/caps_lock_delegate.h" 6 #include "ash/caps_lock_delegate.h"
7 #include "ash/ime_control_delegate.h" 7 #include "ash/ime_control_delegate.h"
8 #include "ash/screenshot_delegate.h" 8 #include "ash/screenshot_delegate.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell_window_ids.h" 10 #include "ash/shell_window_ids.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 // Overridden from ui::AcceleratorTarget: 44 // Overridden from ui::AcceleratorTarget:
45 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; 45 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE;
46 virtual bool CanHandleAccelerators() const OVERRIDE; 46 virtual bool CanHandleAccelerators() const OVERRIDE;
47 47
48 private: 48 private:
49 int accelerator_pressed_count_; 49 int accelerator_pressed_count_;
50 50
51 DISALLOW_COPY_AND_ASSIGN(TestTarget); 51 DISALLOW_COPY_AND_ASSIGN(TestTarget);
52 }; 52 };
53 53
54 class PostImeAccelerator : public ui::Accelerator { 54 class ReleaseAccelerator : public ui::Accelerator {
55 public: 55 public:
56 PostImeAccelerator(ui::KeyboardCode keycode, 56 ReleaseAccelerator(ui::KeyboardCode keycode,
57 bool shift_pressed, bool ctrl_pressed, bool alt_pressed) 57 bool shift_pressed,
58 : ui::Accelerator(keycode, shift_pressed, ctrl_pressed, alt_pressed) { 58 bool ctrl_pressed,
59 set_type(ui::ET_TRANSLATED_KEY_PRESS); 59 bool alt_pressed)
60 }
61 };
62 typedef ui::Accelerator PreImeAccelerator;
63
64 class PostImeReleaseAccelerator : public ui::Accelerator {
65 public:
66 PostImeReleaseAccelerator(ui::KeyboardCode keycode,
67 bool shift_pressed,
68 bool ctrl_pressed,
69 bool alt_pressed)
70 : ui::Accelerator(keycode, shift_pressed, ctrl_pressed, alt_pressed) {
71 set_type(ui::ET_TRANSLATED_KEY_RELEASE);
72 }
73 };
74 class PreImeReleaseAccelerator : public ui::Accelerator {
75 public:
76 PreImeReleaseAccelerator(ui::KeyboardCode keycode,
77 bool shift_pressed,
78 bool ctrl_pressed,
79 bool alt_pressed)
80 : ui::Accelerator(keycode, shift_pressed, ctrl_pressed, alt_pressed) { 60 : ui::Accelerator(keycode, shift_pressed, ctrl_pressed, alt_pressed) {
81 set_type(ui::ET_KEY_RELEASED); 61 set_type(ui::ET_KEY_RELEASED);
82 } 62 }
83 }; 63 };
84 64
85 class DummyScreenshotDelegate : public ScreenshotDelegate { 65 class DummyScreenshotDelegate : public ScreenshotDelegate {
86 public: 66 public:
87 DummyScreenshotDelegate() 67 DummyScreenshotDelegate()
88 : handle_take_screenshot_count_(0), 68 : handle_take_screenshot_count_(0),
89 handle_take_partial_screenshot_count_(0) { 69 handle_take_partial_screenshot_count_(0) {
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 EXPECT_TRUE(GetController()->Process(accelerator_a)); 358 EXPECT_TRUE(GetController()->Process(accelerator_a));
379 EXPECT_EQ(1, target1.accelerator_pressed_count()); 359 EXPECT_EQ(1, target1.accelerator_pressed_count());
380 360
381 // The non-registered accelerator is not processed. 361 // The non-registered accelerator is not processed.
382 const ui::Accelerator accelerator_b(ui::VKEY_B, false, false, false); 362 const ui::Accelerator accelerator_b(ui::VKEY_B, false, false, false);
383 EXPECT_FALSE(GetController()->Process(accelerator_b)); 363 EXPECT_FALSE(GetController()->Process(accelerator_b));
384 } 364 }
385 365
386 #if defined(OS_WIN) || defined(USE_X11) 366 #if defined(OS_WIN) || defined(USE_X11)
387 TEST_F(AcceleratorControllerTest, ProcessOnce) { 367 TEST_F(AcceleratorControllerTest, ProcessOnce) {
388 PostImeAccelerator accelerator_a(ui::VKEY_A, false, false, false); 368 ui::Accelerator accelerator_a(ui::VKEY_A, false, false, false);
389 TestTarget target; 369 TestTarget target;
390 GetController()->Register(accelerator_a, &target); 370 GetController()->Register(accelerator_a, &target);
391 371
392 // The accelerator is processed only once. 372 // The accelerator is processed only once.
393 #if defined(OS_WIN) 373 #if defined(OS_WIN)
394 MSG msg1 = { NULL, WM_KEYDOWN, ui::VKEY_A, 0 }; 374 MSG msg1 = { NULL, WM_KEYDOWN, ui::VKEY_A, 0 };
395 aura::TranslatedKeyEvent key_event1(msg1, false); 375 aura::TranslatedKeyEvent key_event1(msg1, false);
396 EXPECT_TRUE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event1)); 376 EXPECT_TRUE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event1));
397 377
398 MSG msg2 = { NULL, WM_CHAR, L'A', 0 }; 378 MSG msg2 = { NULL, WM_CHAR, L'A', 0 };
(...skipping 22 matching lines...) Expand all
421 aura::TranslatedKeyEvent key_event3(&key_event, false); 401 aura::TranslatedKeyEvent key_event3(&key_event, false);
422 EXPECT_FALSE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event3)); 402 EXPECT_FALSE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event3));
423 #endif 403 #endif
424 EXPECT_EQ(1, target.accelerator_pressed_count()); 404 EXPECT_EQ(1, target.accelerator_pressed_count());
425 } 405 }
426 #endif 406 #endif
427 407
428 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { 408 TEST_F(AcceleratorControllerTest, GlobalAccelerators) {
429 // CycleBackward 409 // CycleBackward
430 EXPECT_TRUE(GetController()->Process( 410 EXPECT_TRUE(GetController()->Process(
431 PostImeAccelerator(ui::VKEY_F5, true, false, false))); 411 ui::Accelerator(ui::VKEY_F5, true, false, false)));
432 EXPECT_TRUE(GetController()->Process( 412 EXPECT_TRUE(GetController()->Process(
433 PostImeAccelerator(ui::VKEY_TAB, true, false, true))); 413 ui::Accelerator(ui::VKEY_TAB, true, false, true)));
434 // CycleForward 414 // CycleForward
435 EXPECT_TRUE(GetController()->Process( 415 EXPECT_TRUE(GetController()->Process(
436 PostImeAccelerator(ui::VKEY_F5, false, false, false))); 416 ui::Accelerator(ui::VKEY_F5, false, false, false)));
437 EXPECT_TRUE(GetController()->Process( 417 EXPECT_TRUE(GetController()->Process(
438 PostImeAccelerator(ui::VKEY_TAB, false, false, true))); 418 ui::Accelerator(ui::VKEY_TAB, false, false, true)));
439 // Take screenshot / partial screenshot 419 // Take screenshot / partial screenshot
440 // True should always be returned regardless of the existence of the delegate. 420 // True should always be returned regardless of the existence of the delegate.
441 { 421 {
442 EXPECT_TRUE(GetController()->Process( 422 EXPECT_TRUE(GetController()->Process(
443 PostImeAccelerator(ui::VKEY_F5, false, true, false))); 423 ui::Accelerator(ui::VKEY_F5, false, true, false)));
444 EXPECT_TRUE(GetController()->Process( 424 EXPECT_TRUE(GetController()->Process(
445 PostImeAccelerator(ui::VKEY_PRINT, false, false, false))); 425 ui::Accelerator(ui::VKEY_PRINT, false, false, false)));
446 EXPECT_TRUE(GetController()->Process( 426 EXPECT_TRUE(GetController()->Process(
447 PostImeAccelerator(ui::VKEY_F5, true, true, false))); 427 ui::Accelerator(ui::VKEY_F5, true, true, false)));
448 DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; 428 DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate;
449 GetController()->SetScreenshotDelegate( 429 GetController()->SetScreenshotDelegate(
450 scoped_ptr<ScreenshotDelegate>(delegate).Pass()); 430 scoped_ptr<ScreenshotDelegate>(delegate).Pass());
451 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); 431 EXPECT_EQ(0, delegate->handle_take_screenshot_count());
452 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); 432 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count());
453 EXPECT_TRUE(GetController()->Process( 433 EXPECT_TRUE(GetController()->Process(
454 PostImeAccelerator(ui::VKEY_F5, false, true, false))); 434 ui::Accelerator(ui::VKEY_F5, false, true, false)));
455 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); 435 EXPECT_EQ(1, delegate->handle_take_screenshot_count());
456 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); 436 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count());
457 EXPECT_TRUE(GetController()->Process( 437 EXPECT_TRUE(GetController()->Process(
458 PostImeAccelerator(ui::VKEY_PRINT, false, false, false))); 438 ui::Accelerator(ui::VKEY_PRINT, false, false, false)));
459 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); 439 EXPECT_EQ(2, delegate->handle_take_screenshot_count());
460 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); 440 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count());
461 EXPECT_TRUE(GetController()->Process( 441 EXPECT_TRUE(GetController()->Process(
462 PostImeAccelerator(ui::VKEY_F5, true, true, false))); 442 ui::Accelerator(ui::VKEY_F5, true, true, false)));
463 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); 443 EXPECT_EQ(2, delegate->handle_take_screenshot_count());
464 EXPECT_EQ(1, delegate->handle_take_partial_screenshot_count()); 444 EXPECT_EQ(1, delegate->handle_take_partial_screenshot_count());
465 } 445 }
466 // ToggleCapsLock 446 // ToggleCapsLock
467 { 447 {
468 EXPECT_FALSE(GetController()->Process( 448 EXPECT_FALSE(GetController()->Process(
469 PostImeAccelerator(ui::VKEY_LWIN, true, false, false))); 449 ui::Accelerator(ui::VKEY_LWIN, true, false, false)));
470 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(false); 450 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(false);
471 GetController()->SetCapsLockDelegate( 451 GetController()->SetCapsLockDelegate(
472 scoped_ptr<CapsLockDelegate>(delegate).Pass()); 452 scoped_ptr<CapsLockDelegate>(delegate).Pass());
473 EXPECT_EQ(0, delegate->handle_caps_lock_count()); 453 EXPECT_EQ(0, delegate->handle_caps_lock_count());
474 EXPECT_FALSE(GetController()->Process( 454 EXPECT_FALSE(GetController()->Process(
475 PostImeAccelerator(ui::VKEY_LWIN, true, false, false))); 455 ui::Accelerator(ui::VKEY_LWIN, true, false, false)));
476 EXPECT_EQ(1, delegate->handle_caps_lock_count()); 456 EXPECT_EQ(1, delegate->handle_caps_lock_count());
477 } 457 }
478 { 458 {
479 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(true); 459 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(true);
480 GetController()->SetCapsLockDelegate( 460 GetController()->SetCapsLockDelegate(
481 scoped_ptr<CapsLockDelegate>(delegate).Pass()); 461 scoped_ptr<CapsLockDelegate>(delegate).Pass());
482 EXPECT_EQ(0, delegate->handle_caps_lock_count()); 462 EXPECT_EQ(0, delegate->handle_caps_lock_count());
483 EXPECT_TRUE(GetController()->Process( 463 EXPECT_TRUE(GetController()->Process(
484 PostImeAccelerator(ui::VKEY_LWIN, true, false, false))); 464 ui::Accelerator(ui::VKEY_LWIN, true, false, false)));
485 EXPECT_EQ(1, delegate->handle_caps_lock_count()); 465 EXPECT_EQ(1, delegate->handle_caps_lock_count());
486 } 466 }
487 // Volume 467 // Volume
488 const PostImeAccelerator f8(ui::VKEY_F8, false, false, false); 468 const ui::Accelerator f8(ui::VKEY_F8, false, false, false);
489 const PostImeAccelerator f9(ui::VKEY_F9, false, false, false); 469 const ui::Accelerator f9(ui::VKEY_F9, false, false, false);
490 const PostImeAccelerator f10(ui::VKEY_F10, false, false, false); 470 const ui::Accelerator f10(ui::VKEY_F10, false, false, false);
491 { 471 {
492 EXPECT_FALSE(GetController()->Process(f8)); 472 EXPECT_FALSE(GetController()->Process(f8));
493 EXPECT_FALSE(GetController()->Process(f9)); 473 EXPECT_FALSE(GetController()->Process(f9));
494 EXPECT_FALSE(GetController()->Process(f10)); 474 EXPECT_FALSE(GetController()->Process(f10));
495 DummyVolumeControlDelegate* delegate = 475 DummyVolumeControlDelegate* delegate =
496 new DummyVolumeControlDelegate(false); 476 new DummyVolumeControlDelegate(false);
497 GetController()->SetVolumeControlDelegate( 477 GetController()->SetVolumeControlDelegate(
498 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); 478 scoped_ptr<VolumeControlDelegate>(delegate).Pass());
499 EXPECT_EQ(0, delegate->handle_volume_mute_count()); 479 EXPECT_EQ(0, delegate->handle_volume_mute_count());
500 EXPECT_FALSE(GetController()->Process(f8)); 480 EXPECT_FALSE(GetController()->Process(f8));
(...skipping 18 matching lines...) Expand all
519 EXPECT_EQ(f8, delegate->last_accelerator()); 499 EXPECT_EQ(f8, delegate->last_accelerator());
520 EXPECT_EQ(0, delegate->handle_volume_down_count()); 500 EXPECT_EQ(0, delegate->handle_volume_down_count());
521 EXPECT_TRUE(GetController()->Process(f9)); 501 EXPECT_TRUE(GetController()->Process(f9));
522 EXPECT_EQ(1, delegate->handle_volume_down_count()); 502 EXPECT_EQ(1, delegate->handle_volume_down_count());
523 EXPECT_EQ(f9, delegate->last_accelerator()); 503 EXPECT_EQ(f9, delegate->last_accelerator());
524 EXPECT_EQ(0, delegate->handle_volume_up_count()); 504 EXPECT_EQ(0, delegate->handle_volume_up_count());
525 EXPECT_TRUE(GetController()->Process(f10)); 505 EXPECT_TRUE(GetController()->Process(f10));
526 EXPECT_EQ(1, delegate->handle_volume_up_count()); 506 EXPECT_EQ(1, delegate->handle_volume_up_count());
527 EXPECT_EQ(f10, delegate->last_accelerator()); 507 EXPECT_EQ(f10, delegate->last_accelerator());
528 } 508 }
529 const PostImeAccelerator volume_mute( 509 const ui::Accelerator volume_mute(
530 ui::VKEY_VOLUME_MUTE, false, false, false); 510 ui::VKEY_VOLUME_MUTE, false, false, false);
531 const PostImeAccelerator volume_down( 511 const ui::Accelerator volume_down(
532 ui::VKEY_VOLUME_DOWN, false, false, false); 512 ui::VKEY_VOLUME_DOWN, false, false, false);
533 const PostImeAccelerator volume_up(ui::VKEY_VOLUME_UP, false, false, false); 513 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, false, false, false);
534 { 514 {
535 DummyVolumeControlDelegate* delegate = 515 DummyVolumeControlDelegate* delegate =
536 new DummyVolumeControlDelegate(false); 516 new DummyVolumeControlDelegate(false);
537 GetController()->SetVolumeControlDelegate( 517 GetController()->SetVolumeControlDelegate(
538 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); 518 scoped_ptr<VolumeControlDelegate>(delegate).Pass());
539 EXPECT_EQ(0, delegate->handle_volume_mute_count()); 519 EXPECT_EQ(0, delegate->handle_volume_mute_count());
540 EXPECT_FALSE(GetController()->Process(volume_mute)); 520 EXPECT_FALSE(GetController()->Process(volume_mute));
541 EXPECT_EQ(1, delegate->handle_volume_mute_count()); 521 EXPECT_EQ(1, delegate->handle_volume_mute_count());
542 EXPECT_EQ(volume_mute, delegate->last_accelerator()); 522 EXPECT_EQ(volume_mute, delegate->last_accelerator());
543 EXPECT_EQ(0, delegate->handle_volume_down_count()); 523 EXPECT_EQ(0, delegate->handle_volume_down_count());
(...skipping 16 matching lines...) Expand all
560 EXPECT_EQ(0, delegate->handle_volume_down_count()); 540 EXPECT_EQ(0, delegate->handle_volume_down_count());
561 EXPECT_TRUE(GetController()->Process(volume_down)); 541 EXPECT_TRUE(GetController()->Process(volume_down));
562 EXPECT_EQ(1, delegate->handle_volume_down_count()); 542 EXPECT_EQ(1, delegate->handle_volume_down_count());
563 EXPECT_EQ(volume_down, delegate->last_accelerator()); 543 EXPECT_EQ(volume_down, delegate->last_accelerator());
564 EXPECT_EQ(0, delegate->handle_volume_up_count()); 544 EXPECT_EQ(0, delegate->handle_volume_up_count());
565 EXPECT_TRUE(GetController()->Process(volume_up)); 545 EXPECT_TRUE(GetController()->Process(volume_up));
566 EXPECT_EQ(1, delegate->handle_volume_up_count()); 546 EXPECT_EQ(1, delegate->handle_volume_up_count());
567 EXPECT_EQ(volume_up, delegate->last_accelerator()); 547 EXPECT_EQ(volume_up, delegate->last_accelerator());
568 } 548 }
569 // Brightness 549 // Brightness
570 const PostImeAccelerator f6(ui::VKEY_F6, false, false, false); 550 const ui::Accelerator f6(ui::VKEY_F6, false, false, false);
571 const PostImeAccelerator f7(ui::VKEY_F7, false, false, false); 551 const ui::Accelerator f7(ui::VKEY_F7, false, false, false);
572 { 552 {
573 EXPECT_FALSE(GetController()->Process(f6)); 553 EXPECT_FALSE(GetController()->Process(f6));
574 EXPECT_FALSE(GetController()->Process(f7)); 554 EXPECT_FALSE(GetController()->Process(f7));
575 DummyBrightnessControlDelegate* delegate = 555 DummyBrightnessControlDelegate* delegate =
576 new DummyBrightnessControlDelegate(false); 556 new DummyBrightnessControlDelegate(false);
577 GetController()->SetBrightnessControlDelegate( 557 GetController()->SetBrightnessControlDelegate(
578 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); 558 scoped_ptr<BrightnessControlDelegate>(delegate).Pass());
579 EXPECT_EQ(0, delegate->handle_brightness_down_count()); 559 EXPECT_EQ(0, delegate->handle_brightness_down_count());
580 EXPECT_FALSE(GetController()->Process(f6)); 560 EXPECT_FALSE(GetController()->Process(f6));
581 EXPECT_EQ(1, delegate->handle_brightness_down_count()); 561 EXPECT_EQ(1, delegate->handle_brightness_down_count());
(...skipping 12 matching lines...) Expand all
594 EXPECT_TRUE(GetController()->Process(f6)); 574 EXPECT_TRUE(GetController()->Process(f6));
595 EXPECT_EQ(1, delegate->handle_brightness_down_count()); 575 EXPECT_EQ(1, delegate->handle_brightness_down_count());
596 EXPECT_EQ(f6, delegate->last_accelerator()); 576 EXPECT_EQ(f6, delegate->last_accelerator());
597 EXPECT_EQ(0, delegate->handle_brightness_up_count()); 577 EXPECT_EQ(0, delegate->handle_brightness_up_count());
598 EXPECT_TRUE(GetController()->Process(f7)); 578 EXPECT_TRUE(GetController()->Process(f7));
599 EXPECT_EQ(1, delegate->handle_brightness_up_count()); 579 EXPECT_EQ(1, delegate->handle_brightness_up_count());
600 EXPECT_EQ(f7, delegate->last_accelerator()); 580 EXPECT_EQ(f7, delegate->last_accelerator());
601 } 581 }
602 #if defined(OS_CHROMEOS) 582 #if defined(OS_CHROMEOS)
603 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. 583 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows.
604 const PostImeAccelerator brightness_down( 584 const ui::Accelerator brightness_down(
605 ui::VKEY_BRIGHTNESS_DOWN, false, false, false); 585 ui::VKEY_BRIGHTNESS_DOWN, false, false, false);
606 const PostImeAccelerator brightness_up( 586 const ui::Accelerator brightness_up(
607 ui::VKEY_BRIGHTNESS_UP, false, false, false); 587 ui::VKEY_BRIGHTNESS_UP, false, false, false);
608 { 588 {
609 DummyBrightnessControlDelegate* delegate = 589 DummyBrightnessControlDelegate* delegate =
610 new DummyBrightnessControlDelegate(false); 590 new DummyBrightnessControlDelegate(false);
611 GetController()->SetBrightnessControlDelegate( 591 GetController()->SetBrightnessControlDelegate(
612 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); 592 scoped_ptr<BrightnessControlDelegate>(delegate).Pass());
613 EXPECT_EQ(0, delegate->handle_brightness_down_count()); 593 EXPECT_EQ(0, delegate->handle_brightness_down_count());
614 EXPECT_FALSE(GetController()->Process(brightness_down)); 594 EXPECT_FALSE(GetController()->Process(brightness_down));
615 EXPECT_EQ(1, delegate->handle_brightness_down_count()); 595 EXPECT_EQ(1, delegate->handle_brightness_down_count());
616 EXPECT_EQ(brightness_down, delegate->last_accelerator()); 596 EXPECT_EQ(brightness_down, delegate->last_accelerator());
(...skipping 13 matching lines...) Expand all
630 EXPECT_EQ(brightness_down, delegate->last_accelerator()); 610 EXPECT_EQ(brightness_down, delegate->last_accelerator());
631 EXPECT_EQ(0, delegate->handle_brightness_up_count()); 611 EXPECT_EQ(0, delegate->handle_brightness_up_count());
632 EXPECT_TRUE(GetController()->Process(brightness_up)); 612 EXPECT_TRUE(GetController()->Process(brightness_up));
633 EXPECT_EQ(1, delegate->handle_brightness_up_count()); 613 EXPECT_EQ(1, delegate->handle_brightness_up_count());
634 EXPECT_EQ(brightness_up, delegate->last_accelerator()); 614 EXPECT_EQ(brightness_up, delegate->last_accelerator());
635 } 615 }
636 #endif 616 #endif
637 #if !defined(NDEBUG) 617 #if !defined(NDEBUG)
638 // RotateScreen 618 // RotateScreen
639 EXPECT_TRUE(GetController()->Process( 619 EXPECT_TRUE(GetController()->Process(
640 PostImeAccelerator(ui::VKEY_HOME, false, true, false))); 620 ui::Accelerator(ui::VKEY_HOME, false, true, false)));
641 // ToggleDesktopBackgroundMode 621 // ToggleDesktopBackgroundMode
642 EXPECT_TRUE(GetController()->Process( 622 EXPECT_TRUE(GetController()->Process(
643 PostImeAccelerator(ui::VKEY_B, false, true, true))); 623 ui::Accelerator(ui::VKEY_B, false, true, true)));
644 #if !defined(OS_LINUX) 624 #if !defined(OS_LINUX)
645 // ToggleDesktopFullScreen (not implemented yet on Linux) 625 // ToggleDesktopFullScreen (not implemented yet on Linux)
646 EXPECT_TRUE(GetController()->Process( 626 EXPECT_TRUE(GetController()->Process(
647 PostImeAccelerator(ui::VKEY_F11, false, true, false))); 627 ui::Accelerator(ui::VKEY_F11, false, true, false)));
648 #endif // OS_LINUX 628 #endif // OS_LINUX
649 #endif // !NDEBUG 629 #endif // !NDEBUG
650 630
651 // Exit 631 // Exit
652 EXPECT_TRUE(GetController()->Process( 632 EXPECT_TRUE(GetController()->Process(
653 PostImeAccelerator(ui::VKEY_Q, true, true ,false))); 633 ui::Accelerator(ui::VKEY_Q, true, true ,false)));
654 634
655 // New incognito window 635 // New incognito window
656 EXPECT_TRUE(GetController()->Process( 636 EXPECT_TRUE(GetController()->Process(
657 PostImeAccelerator(ui::VKEY_N, true, true, false))); 637 ui::Accelerator(ui::VKEY_N, true, true, false)));
658 638
659 // New window 639 // New window
660 EXPECT_TRUE(GetController()->Process( 640 EXPECT_TRUE(GetController()->Process(
661 PostImeAccelerator(ui::VKEY_N, false, true, false))); 641 ui::Accelerator(ui::VKEY_N, false, true, false)));
662 642
663 #if defined(OS_CHROMEOS) 643 #if defined(OS_CHROMEOS)
664 EXPECT_TRUE(GetController()->Process( 644 EXPECT_TRUE(GetController()->Process(
665 PostImeAccelerator(ui::VKEY_L, true, true, false))); 645 ui::Accelerator(ui::VKEY_L, true, true, false)));
666 #endif 646 #endif
667 } 647 }
668 648
669 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsPreIme) { 649 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) {
670 // Make sure post-IME shortcuts are ignored in the pre-IME phase.
671 {
672 const PreImeAccelerator f8(ui::VKEY_F8, false, false, false);
673 const PostImeAccelerator f8_post(ui::VKEY_F8, false, false, false);
674 DummyVolumeControlDelegate* delegate = new DummyVolumeControlDelegate(true);
675 GetController()->SetVolumeControlDelegate(
676 scoped_ptr<VolumeControlDelegate>(delegate).Pass());
677 EXPECT_EQ(0, delegate->handle_volume_mute_count());
678 EXPECT_FALSE(GetController()->Process(f8));
679 EXPECT_EQ(0, delegate->handle_volume_mute_count());
680 EXPECT_TRUE(GetController()->Process(f8_post));
681 EXPECT_EQ(1, delegate->handle_volume_mute_count());
682 }
683
684 // Test IME shortcuts. 650 // Test IME shortcuts.
685 { 651 {
686 const ui::Accelerator control_space(ui::VKEY_SPACE, false, true, false); 652 const ui::Accelerator control_space(ui::VKEY_SPACE, false, true, false);
687 const ui::Accelerator convert(ui::VKEY_CONVERT, false, false, false); 653 const ui::Accelerator convert(ui::VKEY_CONVERT, false, false, false);
688 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, false, false, false); 654 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, false, false, false);
689 const ui::Accelerator wide_half_1( 655 const ui::Accelerator wide_half_1(
690 ui::VKEY_DBE_SBCSCHAR, false, false, false); 656 ui::VKEY_DBE_SBCSCHAR, false, false, false);
691 const ui::Accelerator wide_half_2( 657 const ui::Accelerator wide_half_2(
692 ui::VKEY_DBE_DBCSCHAR, false, false, false); 658 ui::VKEY_DBE_DBCSCHAR, false, false, false);
693 const ui::Accelerator hangul(ui::VKEY_HANGUL, false, false, false); 659 const ui::Accelerator hangul(ui::VKEY_HANGUL, false, false, false);
(...skipping 17 matching lines...) Expand all
711 EXPECT_TRUE(GetController()->Process(non_convert)); 677 EXPECT_TRUE(GetController()->Process(non_convert));
712 EXPECT_EQ(2, delegate->handle_switch_ime_count()); 678 EXPECT_EQ(2, delegate->handle_switch_ime_count());
713 EXPECT_TRUE(GetController()->Process(wide_half_1)); 679 EXPECT_TRUE(GetController()->Process(wide_half_1));
714 EXPECT_EQ(3, delegate->handle_switch_ime_count()); 680 EXPECT_EQ(3, delegate->handle_switch_ime_count());
715 EXPECT_TRUE(GetController()->Process(wide_half_2)); 681 EXPECT_TRUE(GetController()->Process(wide_half_2));
716 EXPECT_EQ(4, delegate->handle_switch_ime_count()); 682 EXPECT_EQ(4, delegate->handle_switch_ime_count());
717 EXPECT_TRUE(GetController()->Process(hangul)); 683 EXPECT_TRUE(GetController()->Process(hangul));
718 EXPECT_EQ(5, delegate->handle_switch_ime_count()); 684 EXPECT_EQ(5, delegate->handle_switch_ime_count());
719 EXPECT_TRUE(GetController()->Process(shift_space)); 685 EXPECT_TRUE(GetController()->Process(shift_space));
720 EXPECT_EQ(6, delegate->handle_switch_ime_count()); 686 EXPECT_EQ(6, delegate->handle_switch_ime_count());
721
722 // Make sure pre-IME shortcuts are ignored in the post-IME phase.
723 const PostImeAccelerator control_space_post(
724 ui::VKEY_SPACE, false, true, false);
725 const PostImeAccelerator convert_post(
726 ui::VKEY_CONVERT, false, false, false);
727 const PostImeAccelerator non_convert_post(
728 ui::VKEY_NONCONVERT, false, false, false);
729 const PostImeAccelerator wide_half_1_post(
730 ui::VKEY_DBE_SBCSCHAR, false, false, false);
731 const PostImeAccelerator wide_half_2_post(
732 ui::VKEY_DBE_DBCSCHAR, false, false, false);
733 const PostImeAccelerator hangul_post(ui::VKEY_HANGUL, false, false, false);
734 const PostImeAccelerator shift_space_post(
735 ui::VKEY_SPACE, true, false, false);
736 EXPECT_EQ(1, delegate->handle_previous_ime_count());
737 EXPECT_FALSE(GetController()->Process(control_space_post));
738 EXPECT_EQ(1, delegate->handle_previous_ime_count());
739 EXPECT_EQ(6, delegate->handle_switch_ime_count());
740 EXPECT_FALSE(GetController()->Process(convert_post));
741 EXPECT_EQ(6, delegate->handle_switch_ime_count());
742 EXPECT_FALSE(GetController()->Process(non_convert_post));
743 EXPECT_EQ(6, delegate->handle_switch_ime_count());
744 EXPECT_FALSE(GetController()->Process(wide_half_1_post));
745 EXPECT_EQ(6, delegate->handle_switch_ime_count());
746 EXPECT_FALSE(GetController()->Process(wide_half_2_post));
747 EXPECT_EQ(6, delegate->handle_switch_ime_count());
748 EXPECT_FALSE(GetController()->Process(hangul_post));
749 EXPECT_EQ(6, delegate->handle_switch_ime_count());
750 EXPECT_FALSE(GetController()->Process(shift_space_post));
751 EXPECT_EQ(6, delegate->handle_switch_ime_count());
752 } 687 }
753 688
754 // Test IME shortcuts that are triggered on key release. 689 // Test IME shortcuts that are triggered on key release.
755 { 690 {
756 const PreImeAccelerator shift_alt_press(ui::VKEY_MENU, true, false, true); 691 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, true, false, true);
757 const PostImeAccelerator shift_alt_press_post( 692 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, true, false, true);
758 ui::VKEY_MENU, true, false, true); 693 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, true, false, true);
759 const PreImeReleaseAccelerator shift_alt(ui::VKEY_MENU, true, false, true); 694 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, true, false, true);
760
761 const PreImeAccelerator alt_shift_press(ui::VKEY_SHIFT, true, false, true);
762 const PostImeAccelerator alt_shift_press_post(
763 ui::VKEY_SHIFT, true, false, true);
764 const PreImeReleaseAccelerator alt_shift(ui::VKEY_SHIFT, true, false, true);
765 695
766 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); 696 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true);
767 GetController()->SetImeControlDelegate( 697 GetController()->SetImeControlDelegate(
768 scoped_ptr<ImeControlDelegate>(delegate).Pass()); 698 scoped_ptr<ImeControlDelegate>(delegate).Pass());
769 EXPECT_EQ(0, delegate->handle_next_ime_count()); 699 EXPECT_EQ(0, delegate->handle_next_ime_count());
770 EXPECT_FALSE(GetController()->Process(shift_alt_press)); 700 EXPECT_FALSE(GetController()->Process(shift_alt_press));
771 EXPECT_FALSE(GetController()->Process(shift_alt_press_post));
772 EXPECT_FALSE(GetController()->Process(shift_alt)); // crbug.com/123720 701 EXPECT_FALSE(GetController()->Process(shift_alt)); // crbug.com/123720
773 EXPECT_EQ(1, delegate->handle_next_ime_count()); 702 EXPECT_EQ(1, delegate->handle_next_ime_count());
774 EXPECT_FALSE(GetController()->Process(alt_shift_press)); 703 EXPECT_FALSE(GetController()->Process(alt_shift_press));
775 EXPECT_FALSE(GetController()->Process(alt_shift_press_post));
776 EXPECT_FALSE(GetController()->Process(alt_shift)); // crbug.com/123720 704 EXPECT_FALSE(GetController()->Process(alt_shift)); // crbug.com/123720
777 EXPECT_EQ(2, delegate->handle_next_ime_count()); 705 EXPECT_EQ(2, delegate->handle_next_ime_count());
778 706
779 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is 707 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is
780 // released. 708 // released.
781 const PreImeAccelerator shift_alt_x_press(ui::VKEY_X, true, false, true); 709 const ui::Accelerator shift_alt_x_press(ui::VKEY_X, true, false, true);
782 const PostImeAccelerator shift_alt_x_press_post( 710 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, true, false, true);
783 ui::VKEY_X, true, false, true);
784 const PreImeReleaseAccelerator shift_alt_x(ui::VKEY_X, true, false, true);
785 const PostImeReleaseAccelerator shift_alt_x_post(
786 ui::VKEY_X, true, false, true);
787 711
788 EXPECT_FALSE(GetController()->Process(shift_alt_press)); 712 EXPECT_FALSE(GetController()->Process(shift_alt_press));
789 EXPECT_FALSE(GetController()->Process(shift_alt_press_post));
790 EXPECT_FALSE(GetController()->Process(shift_alt_x_press)); 713 EXPECT_FALSE(GetController()->Process(shift_alt_x_press));
791 EXPECT_FALSE(GetController()->Process(shift_alt_x_press_post));
792 EXPECT_FALSE(GetController()->Process(shift_alt_x)); 714 EXPECT_FALSE(GetController()->Process(shift_alt_x));
793 EXPECT_FALSE(GetController()->Process(shift_alt_x_post));
794 EXPECT_FALSE(GetController()->Process(shift_alt)); 715 EXPECT_FALSE(GetController()->Process(shift_alt));
795 EXPECT_EQ(2, delegate->handle_next_ime_count()); 716 EXPECT_EQ(2, delegate->handle_next_ime_count());
796 } 717 }
797 } 718 }
798 719
799 } // namespace test 720 } // namespace test
800 } // namespace ash 721 } // namespace ash
OLDNEW
« no previous file with comments | « ash/accelerators/accelerator_controller.cc ('k') | ash/accelerators/accelerator_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698