| 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 "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 Loading... |
| 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 ReleaseAccelerator : public ui::Accelerator { | |
| 55 public: | |
| 56 ReleaseAccelerator(ui::KeyboardCode keycode, int modifiers) | |
| 57 : ui::Accelerator(keycode, modifiers) { | |
| 58 set_type(ui::ET_KEY_RELEASED); | |
| 59 } | |
| 60 }; | |
| 61 | |
| 62 class DummyScreenshotDelegate : public ScreenshotDelegate { | 54 class DummyScreenshotDelegate : public ScreenshotDelegate { |
| 63 public: | 55 public: |
| 64 DummyScreenshotDelegate() | 56 DummyScreenshotDelegate() |
| 65 : handle_take_screenshot_count_(0), | 57 : handle_take_screenshot_count_(0), |
| 66 handle_take_partial_screenshot_count_(0) { | 58 handle_take_partial_screenshot_count_(0) { |
| 67 } | 59 } |
| 68 virtual ~DummyScreenshotDelegate() {} | 60 virtual ~DummyScreenshotDelegate() {} |
| 69 | 61 |
| 70 // Overridden from ScreenshotDelegate: | 62 // Overridden from ScreenshotDelegate: |
| 71 virtual void HandleTakeScreenshot(aura::Window* window) OVERRIDE { | 63 virtual void HandleTakeScreenshot(aura::Window* window) OVERRIDE { |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 virtual ~AcceleratorControllerTest() {}; | 269 virtual ~AcceleratorControllerTest() {}; |
| 278 | 270 |
| 279 static AcceleratorController* GetController(); | 271 static AcceleratorController* GetController(); |
| 280 }; | 272 }; |
| 281 | 273 |
| 282 AcceleratorController* AcceleratorControllerTest::GetController() { | 274 AcceleratorController* AcceleratorControllerTest::GetController() { |
| 283 return Shell::GetInstance()->accelerator_controller(); | 275 return Shell::GetInstance()->accelerator_controller(); |
| 284 } | 276 } |
| 285 | 277 |
| 286 TEST_F(AcceleratorControllerTest, Register) { | 278 TEST_F(AcceleratorControllerTest, Register) { |
| 287 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 279 const ui::Accelerator accelerator_a(ui::VKEY_A, |
| 280 ui::EF_NONE, |
| 281 ui::ET_KEY_PRESSED); |
| 288 TestTarget target; | 282 TestTarget target; |
| 289 GetController()->Register(accelerator_a, &target); | 283 GetController()->Register(accelerator_a, &target); |
| 290 | 284 |
| 291 // The registered accelerator is processed. | 285 // The registered accelerator is processed. |
| 292 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 286 EXPECT_TRUE(GetController()->Process(accelerator_a)); |
| 293 EXPECT_EQ(1, target.accelerator_pressed_count()); | 287 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 294 } | 288 } |
| 295 | 289 |
| 296 TEST_F(AcceleratorControllerTest, RegisterMultipleTarget) { | 290 TEST_F(AcceleratorControllerTest, RegisterMultipleTarget) { |
| 297 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 291 const ui::Accelerator accelerator_a(ui::VKEY_A, |
| 292 ui::EF_NONE, |
| 293 ui::ET_KEY_PRESSED); |
| 298 TestTarget target1; | 294 TestTarget target1; |
| 299 GetController()->Register(accelerator_a, &target1); | 295 GetController()->Register(accelerator_a, &target1); |
| 300 TestTarget target2; | 296 TestTarget target2; |
| 301 GetController()->Register(accelerator_a, &target2); | 297 GetController()->Register(accelerator_a, &target2); |
| 302 | 298 |
| 303 // If multiple targets are registered with the same accelerator, the target | 299 // If multiple targets are registered with the same accelerator, the target |
| 304 // registered later processes the accelerator. | 300 // registered later processes the accelerator. |
| 305 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 301 EXPECT_TRUE(GetController()->Process(accelerator_a)); |
| 306 EXPECT_EQ(0, target1.accelerator_pressed_count()); | 302 EXPECT_EQ(0, target1.accelerator_pressed_count()); |
| 307 EXPECT_EQ(1, target2.accelerator_pressed_count()); | 303 EXPECT_EQ(1, target2.accelerator_pressed_count()); |
| 308 } | 304 } |
| 309 | 305 |
| 310 TEST_F(AcceleratorControllerTest, Unregister) { | 306 TEST_F(AcceleratorControllerTest, Unregister) { |
| 311 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 307 const ui::Accelerator accelerator_a(ui::VKEY_A, |
| 308 ui::EF_NONE, |
| 309 ui::ET_KEY_PRESSED); |
| 312 TestTarget target; | 310 TestTarget target; |
| 313 GetController()->Register(accelerator_a, &target); | 311 GetController()->Register(accelerator_a, &target); |
| 314 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 312 const ui::Accelerator accelerator_b(ui::VKEY_B, |
| 313 ui::EF_NONE, |
| 314 ui::ET_KEY_PRESSED); |
| 315 GetController()->Register(accelerator_b, &target); | 315 GetController()->Register(accelerator_b, &target); |
| 316 | 316 |
| 317 // Unregistering a different accelerator does not affect the other | 317 // Unregistering a different accelerator does not affect the other |
| 318 // accelerator. | 318 // accelerator. |
| 319 GetController()->Unregister(accelerator_b, &target); | 319 GetController()->Unregister(accelerator_b, &target); |
| 320 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 320 EXPECT_TRUE(GetController()->Process(accelerator_a)); |
| 321 EXPECT_EQ(1, target.accelerator_pressed_count()); | 321 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 322 | 322 |
| 323 // The unregistered accelerator is no longer processed. | 323 // The unregistered accelerator is no longer processed. |
| 324 target.set_accelerator_pressed_count(0); | 324 target.set_accelerator_pressed_count(0); |
| 325 GetController()->Unregister(accelerator_a, &target); | 325 GetController()->Unregister(accelerator_a, &target); |
| 326 EXPECT_FALSE(GetController()->Process(accelerator_a)); | 326 EXPECT_FALSE(GetController()->Process(accelerator_a)); |
| 327 EXPECT_EQ(0, target.accelerator_pressed_count()); | 327 EXPECT_EQ(0, target.accelerator_pressed_count()); |
| 328 } | 328 } |
| 329 | 329 |
| 330 TEST_F(AcceleratorControllerTest, UnregisterAll) { | 330 TEST_F(AcceleratorControllerTest, UnregisterAll) { |
| 331 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 331 const ui::Accelerator accelerator_a(ui::VKEY_A, |
| 332 ui::EF_NONE, |
| 333 ui::ET_KEY_PRESSED); |
| 332 TestTarget target1; | 334 TestTarget target1; |
| 333 GetController()->Register(accelerator_a, &target1); | 335 GetController()->Register(accelerator_a, &target1); |
| 334 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 336 const ui::Accelerator accelerator_b(ui::VKEY_B, |
| 337 ui::EF_NONE, |
| 338 ui::ET_KEY_PRESSED); |
| 335 GetController()->Register(accelerator_b, &target1); | 339 GetController()->Register(accelerator_b, &target1); |
| 336 const ui::Accelerator accelerator_c(ui::VKEY_C, ui::EF_NONE); | 340 const ui::Accelerator accelerator_c(ui::VKEY_C, |
| 341 ui::EF_NONE, |
| 342 ui::ET_KEY_PRESSED); |
| 337 TestTarget target2; | 343 TestTarget target2; |
| 338 GetController()->Register(accelerator_c, &target2); | 344 GetController()->Register(accelerator_c, &target2); |
| 339 GetController()->UnregisterAll(&target1); | 345 GetController()->UnregisterAll(&target1); |
| 340 | 346 |
| 341 // All the accelerators registered for |target1| are no longer processed. | 347 // All the accelerators registered for |target1| are no longer processed. |
| 342 EXPECT_FALSE(GetController()->Process(accelerator_a)); | 348 EXPECT_FALSE(GetController()->Process(accelerator_a)); |
| 343 EXPECT_FALSE(GetController()->Process(accelerator_b)); | 349 EXPECT_FALSE(GetController()->Process(accelerator_b)); |
| 344 EXPECT_EQ(0, target1.accelerator_pressed_count()); | 350 EXPECT_EQ(0, target1.accelerator_pressed_count()); |
| 345 | 351 |
| 346 // UnregisterAll with a different target does not affect the other target. | 352 // UnregisterAll with a different target does not affect the other target. |
| 347 EXPECT_TRUE(GetController()->Process(accelerator_c)); | 353 EXPECT_TRUE(GetController()->Process(accelerator_c)); |
| 348 EXPECT_EQ(1, target2.accelerator_pressed_count()); | 354 EXPECT_EQ(1, target2.accelerator_pressed_count()); |
| 349 } | 355 } |
| 350 | 356 |
| 351 TEST_F(AcceleratorControllerTest, Process) { | 357 TEST_F(AcceleratorControllerTest, Process) { |
| 352 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 358 const ui::Accelerator accelerator_a(ui::VKEY_A, |
| 359 ui::EF_NONE, |
| 360 ui::ET_KEY_PRESSED); |
| 353 TestTarget target1; | 361 TestTarget target1; |
| 354 GetController()->Register(accelerator_a, &target1); | 362 GetController()->Register(accelerator_a, &target1); |
| 355 | 363 |
| 356 // The registered accelerator is processed. | 364 // The registered accelerator is processed. |
| 357 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 365 EXPECT_TRUE(GetController()->Process(accelerator_a)); |
| 358 EXPECT_EQ(1, target1.accelerator_pressed_count()); | 366 EXPECT_EQ(1, target1.accelerator_pressed_count()); |
| 359 | 367 |
| 360 // The non-registered accelerator is not processed. | 368 // The non-registered accelerator is not processed. |
| 361 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 369 const ui::Accelerator accelerator_b(ui::VKEY_B, |
| 370 ui::EF_NONE, |
| 371 ui::ET_KEY_PRESSED); |
| 362 EXPECT_FALSE(GetController()->Process(accelerator_b)); | 372 EXPECT_FALSE(GetController()->Process(accelerator_b)); |
| 363 } | 373 } |
| 364 | 374 |
| 365 TEST_F(AcceleratorControllerTest, IsRegistered) { | 375 TEST_F(AcceleratorControllerTest, IsRegistered) { |
| 366 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 376 const ui::Accelerator accelerator_a(ui::VKEY_A, |
| 367 const ui::Accelerator accelerator_shift_a(ui::VKEY_A, ui::EF_SHIFT_DOWN); | 377 ui::EF_NONE, |
| 378 ui::ET_KEY_PRESSED); |
| 379 const ui::Accelerator accelerator_shift_a(ui::VKEY_A, |
| 380 ui::EF_SHIFT_DOWN, |
| 381 ui::ET_KEY_PRESSED); |
| 368 TestTarget target; | 382 TestTarget target; |
| 369 GetController()->Register(accelerator_a, &target); | 383 GetController()->Register(accelerator_a, &target); |
| 370 EXPECT_TRUE(GetController()->IsRegistered(accelerator_a)); | 384 EXPECT_TRUE(GetController()->IsRegistered(accelerator_a)); |
| 371 EXPECT_FALSE(GetController()->IsRegistered(accelerator_shift_a)); | 385 EXPECT_FALSE(GetController()->IsRegistered(accelerator_shift_a)); |
| 372 GetController()->UnregisterAll(&target); | 386 GetController()->UnregisterAll(&target); |
| 373 EXPECT_FALSE(GetController()->IsRegistered(accelerator_a)); | 387 EXPECT_FALSE(GetController()->IsRegistered(accelerator_a)); |
| 374 } | 388 } |
| 375 | 389 |
| 376 #if defined(OS_WIN) || defined(USE_X11) | 390 #if defined(OS_WIN) || defined(USE_X11) |
| 377 TEST_F(AcceleratorControllerTest, ProcessOnce) { | 391 TEST_F(AcceleratorControllerTest, ProcessOnce) { |
| 378 ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 392 ui::Accelerator accelerator_a(ui::VKEY_A, |
| 393 ui::EF_NONE, |
| 394 ui::ET_KEY_PRESSED); |
| 379 TestTarget target; | 395 TestTarget target; |
| 380 GetController()->Register(accelerator_a, &target); | 396 GetController()->Register(accelerator_a, &target); |
| 381 | 397 |
| 382 // The accelerator is processed only once. | 398 // The accelerator is processed only once. |
| 383 #if defined(OS_WIN) | 399 #if defined(OS_WIN) |
| 384 MSG msg1 = { NULL, WM_KEYDOWN, ui::VKEY_A, 0 }; | 400 MSG msg1 = { NULL, WM_KEYDOWN, ui::VKEY_A, 0 }; |
| 385 aura::TranslatedKeyEvent key_event1(msg1, false); | 401 aura::TranslatedKeyEvent key_event1(msg1, false); |
| 386 EXPECT_TRUE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event1)); | 402 EXPECT_TRUE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event1)); |
| 387 | 403 |
| 388 MSG msg2 = { NULL, WM_CHAR, L'A', 0 }; | 404 MSG msg2 = { NULL, WM_CHAR, L'A', 0 }; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 412 EXPECT_FALSE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event3)); | 428 EXPECT_FALSE(Shell::GetRootWindow()->DispatchKeyEvent(&key_event3)); |
| 413 #endif | 429 #endif |
| 414 EXPECT_EQ(1, target.accelerator_pressed_count()); | 430 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 415 } | 431 } |
| 416 #endif | 432 #endif |
| 417 | 433 |
| 418 // Disabled due to a real bug, see http://crbug.com/127538. | 434 // Disabled due to a real bug, see http://crbug.com/127538. |
| 419 TEST_F(AcceleratorControllerTest, DISABLED_GlobalAccelerators) { | 435 TEST_F(AcceleratorControllerTest, DISABLED_GlobalAccelerators) { |
| 420 // CycleBackward | 436 // CycleBackward |
| 421 EXPECT_TRUE(GetController()->Process( | 437 EXPECT_TRUE(GetController()->Process( |
| 422 ui::Accelerator(ui::VKEY_F5, ui::EF_CONTROL_DOWN))); | 438 ui::Accelerator(ui::VKEY_F5, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED))); |
| 423 EXPECT_TRUE(GetController()->Process( | 439 EXPECT_TRUE(GetController()->Process( |
| 424 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); | 440 ui::Accelerator(ui::VKEY_TAB, |
| 441 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 442 ui::ET_KEY_PRESSED))); |
| 425 // CycleForward | 443 // CycleForward |
| 426 EXPECT_TRUE(GetController()->Process( | 444 EXPECT_TRUE(GetController()->Process( |
| 427 ui::Accelerator(ui::VKEY_F5, ui::EF_NONE))); | 445 ui::Accelerator(ui::VKEY_F5, ui::EF_NONE, ui::ET_KEY_PRESSED))); |
| 428 EXPECT_TRUE(GetController()->Process( | 446 EXPECT_TRUE(GetController()->Process( |
| 429 ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN))); | 447 ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN, ui::ET_KEY_PRESSED))); |
| 430 // Take screenshot / partial screenshot | 448 // Take screenshot / partial screenshot |
| 431 // True should always be returned regardless of the existence of the delegate. | 449 // True should always be returned regardless of the existence of the delegate. |
| 432 { | 450 { |
| 433 EXPECT_TRUE(GetController()->Process( | 451 EXPECT_TRUE(GetController()->Process( |
| 434 ui::Accelerator(ui::VKEY_F5, ui::EF_CONTROL_DOWN))); | 452 ui::Accelerator(ui::VKEY_F5, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED))); |
| 435 EXPECT_TRUE(GetController()->Process( | 453 EXPECT_TRUE(GetController()->Process( |
| 436 ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 454 ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE, ui::ET_KEY_PRESSED))); |
| 437 EXPECT_TRUE(GetController()->Process( | 455 EXPECT_TRUE(GetController()->Process( |
| 438 ui::Accelerator(ui::VKEY_F5, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 456 ui::Accelerator(ui::VKEY_F5, |
| 457 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 458 ui::ET_KEY_PRESSED))); |
| 439 DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; | 459 DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; |
| 440 GetController()->SetScreenshotDelegate( | 460 GetController()->SetScreenshotDelegate( |
| 441 scoped_ptr<ScreenshotDelegate>(delegate).Pass()); | 461 scoped_ptr<ScreenshotDelegate>(delegate).Pass()); |
| 442 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); | 462 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
| 443 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); | 463 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); |
| 444 EXPECT_TRUE(GetController()->Process( | 464 EXPECT_TRUE(GetController()->Process( |
| 445 ui::Accelerator(ui::VKEY_F5, ui::EF_CONTROL_DOWN))); | 465 ui::Accelerator(ui::VKEY_F5, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED))); |
| 446 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); | 466 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); |
| 447 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); | 467 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); |
| 448 EXPECT_TRUE(GetController()->Process( | 468 EXPECT_TRUE(GetController()->Process( |
| 449 ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 469 ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE, ui::ET_KEY_PRESSED))); |
| 450 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 470 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 451 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); | 471 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); |
| 452 EXPECT_TRUE(GetController()->Process( | 472 EXPECT_TRUE(GetController()->Process( |
| 453 ui::Accelerator(ui::VKEY_F5, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 473 ui::Accelerator(ui::VKEY_F5, |
| 474 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 475 ui::ET_KEY_PRESSED))); |
| 454 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 476 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 455 EXPECT_EQ(1, delegate->handle_take_partial_screenshot_count()); | 477 EXPECT_EQ(1, delegate->handle_take_partial_screenshot_count()); |
| 456 } | 478 } |
| 457 // ToggleAppList | 479 // ToggleAppList |
| 458 { | 480 { |
| 459 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 481 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 460 EXPECT_TRUE(GetController()->Process( | 482 EXPECT_TRUE(GetController()->Process( |
| 461 ui::Accelerator(ui::VKEY_LWIN, ui::EF_CONTROL_DOWN))); | 483 ui::Accelerator(ui::VKEY_LWIN, |
| 484 ui::EF_CONTROL_DOWN, |
| 485 ui::ET_KEY_PRESSED))); |
| 462 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 486 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 463 EXPECT_TRUE(GetController()->Process( | 487 EXPECT_TRUE(GetController()->Process( |
| 464 ui::Accelerator(ui::VKEY_LWIN, ui::EF_CONTROL_DOWN))); | 488 ui::Accelerator(ui::VKEY_LWIN, |
| 489 ui::EF_CONTROL_DOWN, |
| 490 ui::ET_KEY_PRESSED))); |
| 465 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 491 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 466 } | 492 } |
| 467 // ToggleCapsLock | 493 // ToggleCapsLock |
| 468 { | 494 { |
| 469 EXPECT_FALSE(GetController()->Process( | 495 EXPECT_FALSE(GetController()->Process( |
| 470 ui::Accelerator(ui::VKEY_LWIN, ui::EF_SHIFT_DOWN))); | 496 ui::Accelerator(ui::VKEY_LWIN, ui::EF_SHIFT_DOWN, ui::ET_KEY_PRESSED))); |
| 471 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(false); | 497 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(false); |
| 472 GetController()->SetCapsLockDelegate( | 498 GetController()->SetCapsLockDelegate( |
| 473 scoped_ptr<CapsLockDelegate>(delegate).Pass()); | 499 scoped_ptr<CapsLockDelegate>(delegate).Pass()); |
| 474 EXPECT_EQ(0, delegate->handle_caps_lock_count()); | 500 EXPECT_EQ(0, delegate->handle_caps_lock_count()); |
| 475 EXPECT_FALSE(GetController()->Process( | 501 EXPECT_FALSE(GetController()->Process( |
| 476 ui::Accelerator(ui::VKEY_LWIN, ui::EF_SHIFT_DOWN))); | 502 ui::Accelerator(ui::VKEY_LWIN, ui::EF_SHIFT_DOWN, ui::ET_KEY_PRESSED))); |
| 477 EXPECT_EQ(1, delegate->handle_caps_lock_count()); | 503 EXPECT_EQ(1, delegate->handle_caps_lock_count()); |
| 478 } | 504 } |
| 479 { | 505 { |
| 480 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(true); | 506 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(true); |
| 481 GetController()->SetCapsLockDelegate( | 507 GetController()->SetCapsLockDelegate( |
| 482 scoped_ptr<CapsLockDelegate>(delegate).Pass()); | 508 scoped_ptr<CapsLockDelegate>(delegate).Pass()); |
| 483 EXPECT_EQ(0, delegate->handle_caps_lock_count()); | 509 EXPECT_EQ(0, delegate->handle_caps_lock_count()); |
| 484 EXPECT_TRUE(GetController()->Process( | 510 EXPECT_TRUE(GetController()->Process( |
| 485 ui::Accelerator(ui::VKEY_LWIN, ui::EF_SHIFT_DOWN))); | 511 ui::Accelerator(ui::VKEY_LWIN, ui::EF_SHIFT_DOWN, ui::ET_KEY_PRESSED))); |
| 486 EXPECT_EQ(1, delegate->handle_caps_lock_count()); | 512 EXPECT_EQ(1, delegate->handle_caps_lock_count()); |
| 487 } | 513 } |
| 488 // Volume | 514 // Volume |
| 489 const ui::Accelerator f8(ui::VKEY_F8, ui::EF_NONE); | 515 const ui::Accelerator f8(ui::VKEY_F8, ui::EF_NONE, ui::ET_KEY_PRESSED); |
| 490 const ui::Accelerator f9(ui::VKEY_F9, ui::EF_NONE); | 516 const ui::Accelerator f9(ui::VKEY_F9, ui::EF_NONE, ui::ET_KEY_PRESSED); |
| 491 const ui::Accelerator f10(ui::VKEY_F10, ui::EF_NONE); | 517 const ui::Accelerator f10(ui::VKEY_F10, ui::EF_NONE, ui::ET_KEY_PRESSED); |
| 492 { | 518 { |
| 493 EXPECT_FALSE(GetController()->Process(f8)); | 519 EXPECT_FALSE(GetController()->Process(f8)); |
| 494 EXPECT_FALSE(GetController()->Process(f9)); | 520 EXPECT_FALSE(GetController()->Process(f9)); |
| 495 EXPECT_FALSE(GetController()->Process(f10)); | 521 EXPECT_FALSE(GetController()->Process(f10)); |
| 496 DummyVolumeControlDelegate* delegate = | 522 DummyVolumeControlDelegate* delegate = |
| 497 new DummyVolumeControlDelegate(false); | 523 new DummyVolumeControlDelegate(false); |
| 498 GetController()->SetVolumeControlDelegate( | 524 GetController()->SetVolumeControlDelegate( |
| 499 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 525 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
| 500 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 526 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 501 EXPECT_FALSE(GetController()->Process(f8)); | 527 EXPECT_FALSE(GetController()->Process(f8)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 520 EXPECT_EQ(f8, delegate->last_accelerator()); | 546 EXPECT_EQ(f8, delegate->last_accelerator()); |
| 521 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 547 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 522 EXPECT_TRUE(GetController()->Process(f9)); | 548 EXPECT_TRUE(GetController()->Process(f9)); |
| 523 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 549 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 524 EXPECT_EQ(f9, delegate->last_accelerator()); | 550 EXPECT_EQ(f9, delegate->last_accelerator()); |
| 525 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 551 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| 526 EXPECT_TRUE(GetController()->Process(f10)); | 552 EXPECT_TRUE(GetController()->Process(f10)); |
| 527 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 553 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
| 528 EXPECT_EQ(f10, delegate->last_accelerator()); | 554 EXPECT_EQ(f10, delegate->last_accelerator()); |
| 529 } | 555 } |
| 530 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 556 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, |
| 531 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 557 ui::EF_NONE, |
| 532 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 558 ui::ET_KEY_PRESSED); |
| 559 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, |
| 560 ui::EF_NONE, |
| 561 ui::ET_KEY_PRESSED); |
| 562 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, |
| 563 ui::EF_NONE, |
| 564 ui::ET_KEY_PRESSED); |
| 533 { | 565 { |
| 534 DummyVolumeControlDelegate* delegate = | 566 DummyVolumeControlDelegate* delegate = |
| 535 new DummyVolumeControlDelegate(false); | 567 new DummyVolumeControlDelegate(false); |
| 536 GetController()->SetVolumeControlDelegate( | 568 GetController()->SetVolumeControlDelegate( |
| 537 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 569 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
| 538 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 570 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 539 EXPECT_FALSE(GetController()->Process(volume_mute)); | 571 EXPECT_FALSE(GetController()->Process(volume_mute)); |
| 540 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 572 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
| 541 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 573 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
| 542 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 574 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 559 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 591 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 560 EXPECT_TRUE(GetController()->Process(volume_down)); | 592 EXPECT_TRUE(GetController()->Process(volume_down)); |
| 561 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 593 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 562 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 594 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
| 563 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 595 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| 564 EXPECT_TRUE(GetController()->Process(volume_up)); | 596 EXPECT_TRUE(GetController()->Process(volume_up)); |
| 565 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 597 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
| 566 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 598 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
| 567 } | 599 } |
| 568 // Brightness | 600 // Brightness |
| 569 const ui::Accelerator f6(ui::VKEY_F6, ui::EF_NONE); | 601 const ui::Accelerator f6(ui::VKEY_F6, ui::EF_NONE, ui::ET_KEY_PRESSED); |
| 570 const ui::Accelerator f7(ui::VKEY_F7, ui::EF_NONE); | 602 const ui::Accelerator f7(ui::VKEY_F7, ui::EF_NONE, ui::ET_KEY_PRESSED); |
| 571 { | 603 { |
| 572 EXPECT_FALSE(GetController()->Process(f6)); | 604 EXPECT_FALSE(GetController()->Process(f6)); |
| 573 EXPECT_FALSE(GetController()->Process(f7)); | 605 EXPECT_FALSE(GetController()->Process(f7)); |
| 574 DummyBrightnessControlDelegate* delegate = | 606 DummyBrightnessControlDelegate* delegate = |
| 575 new DummyBrightnessControlDelegate(false); | 607 new DummyBrightnessControlDelegate(false); |
| 576 GetController()->SetBrightnessControlDelegate( | 608 GetController()->SetBrightnessControlDelegate( |
| 577 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 609 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
| 578 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 610 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
| 579 EXPECT_FALSE(GetController()->Process(f6)); | 611 EXPECT_FALSE(GetController()->Process(f6)); |
| 580 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 612 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 593 EXPECT_TRUE(GetController()->Process(f6)); | 625 EXPECT_TRUE(GetController()->Process(f6)); |
| 594 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 626 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| 595 EXPECT_EQ(f6, delegate->last_accelerator()); | 627 EXPECT_EQ(f6, delegate->last_accelerator()); |
| 596 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 628 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| 597 EXPECT_TRUE(GetController()->Process(f7)); | 629 EXPECT_TRUE(GetController()->Process(f7)); |
| 598 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 630 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
| 599 EXPECT_EQ(f7, delegate->last_accelerator()); | 631 EXPECT_EQ(f7, delegate->last_accelerator()); |
| 600 } | 632 } |
| 601 #if defined(OS_CHROMEOS) | 633 #if defined(OS_CHROMEOS) |
| 602 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. | 634 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. |
| 603 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); | 635 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, |
| 604 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); | 636 ui::EF_NONE, |
| 637 ui::ET_KEY_PRESSED); |
| 638 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, |
| 639 ui::EF_NONE, |
| 640 ui::ET_KEY_PRESSED); |
| 605 { | 641 { |
| 606 DummyBrightnessControlDelegate* delegate = | 642 DummyBrightnessControlDelegate* delegate = |
| 607 new DummyBrightnessControlDelegate(false); | 643 new DummyBrightnessControlDelegate(false); |
| 608 GetController()->SetBrightnessControlDelegate( | 644 GetController()->SetBrightnessControlDelegate( |
| 609 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 645 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
| 610 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 646 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
| 611 EXPECT_FALSE(GetController()->Process(brightness_down)); | 647 EXPECT_FALSE(GetController()->Process(brightness_down)); |
| 612 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 648 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| 613 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 649 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
| 614 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 650 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 627 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 663 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
| 628 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 664 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| 629 EXPECT_TRUE(GetController()->Process(brightness_up)); | 665 EXPECT_TRUE(GetController()->Process(brightness_up)); |
| 630 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 666 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
| 631 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 667 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
| 632 } | 668 } |
| 633 #endif | 669 #endif |
| 634 #if !defined(NDEBUG) | 670 #if !defined(NDEBUG) |
| 635 // RotateScreen | 671 // RotateScreen |
| 636 EXPECT_TRUE(GetController()->Process( | 672 EXPECT_TRUE(GetController()->Process( |
| 637 ui::Accelerator(ui::VKEY_HOME, ui::EF_CONTROL_DOWN))); | 673 ui::Accelerator(ui::VKEY_HOME, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED))); |
| 638 // ToggleDesktopBackgroundMode | 674 // ToggleDesktopBackgroundMode |
| 639 EXPECT_TRUE(GetController()->Process( | 675 EXPECT_TRUE(GetController()->Process( |
| 640 ui::Accelerator(ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN))); | 676 ui::Accelerator(ui::VKEY_B, |
| 677 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
| 678 ui::ET_KEY_PRESSED))); |
| 641 #if !defined(OS_LINUX) | 679 #if !defined(OS_LINUX) |
| 642 // ToggleDesktopFullScreen (not implemented yet on Linux) | 680 // ToggleDesktopFullScreen (not implemented yet on Linux) |
| 643 EXPECT_TRUE(GetController()->Process( | 681 EXPECT_TRUE(GetController()->Process( |
| 644 ui::Accelerator(ui::VKEY_F11, ui::EF_CONTROL_DOWN))); | 682 ui::Accelerator(ui::VKEY_F11, ui::EF_CONTROL_DOWN, ui::ET_KEY_PRESSED))); |
| 645 #endif // OS_LINUX | 683 #endif // OS_LINUX |
| 646 #endif // !NDEBUG | 684 #endif // !NDEBUG |
| 647 | 685 |
| 648 // Exit | 686 // Exit |
| 649 EXPECT_TRUE(GetController()->Process( | 687 EXPECT_TRUE(GetController()->Process( |
| 650 ui::Accelerator(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 688 ui::Accelerator(ui::VKEY_Q, |
| 689 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 690 ui::ET_KEY_PRESSED))); |
| 651 | 691 |
| 652 // New incognito window | 692 // New incognito window |
| 653 EXPECT_TRUE(GetController()->Process( | 693 EXPECT_TRUE(GetController()->Process( |
| 654 ui::Accelerator(ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 694 ui::Accelerator(ui::VKEY_N, |
| 695 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 696 ui::ET_KEY_PRESSED))); |
| 655 | 697 |
| 656 // New window | 698 // New window |
| 657 EXPECT_TRUE(GetController()->Process( | 699 EXPECT_TRUE(GetController()->Process( |
| 658 ui::Accelerator(ui::VKEY_N, ui::EF_CONTROL_DOWN))); | 700 ui::Accelerator(ui::VKEY_N, |
| 701 ui::EF_CONTROL_DOWN, |
| 702 ui::ET_KEY_PRESSED))); |
| 659 | 703 |
| 660 #if defined(OS_CHROMEOS) | 704 #if defined(OS_CHROMEOS) |
| 661 EXPECT_TRUE(GetController()->Process( | 705 EXPECT_TRUE(GetController()->Process( |
| 662 ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 706 ui::Accelerator(ui::VKEY_L, |
| 707 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 708 ui::ET_KEY_PRESSED))); |
| 663 #endif | 709 #endif |
| 664 } | 710 } |
| 665 | 711 |
| 666 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { | 712 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { |
| 667 // Test IME shortcuts. | 713 // Test IME shortcuts. |
| 668 { | 714 { |
| 669 const ui::Accelerator control_space(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 715 const ui::Accelerator control_space(ui::VKEY_SPACE, |
| 670 const ui::Accelerator convert(ui::VKEY_CONVERT, ui::EF_NONE); | 716 ui::EF_CONTROL_DOWN, |
| 671 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, ui::EF_NONE); | 717 ui::ET_KEY_PRESSED); |
| 672 const ui::Accelerator wide_half_1(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE); | 718 const ui::Accelerator convert(ui::VKEY_CONVERT, |
| 673 const ui::Accelerator wide_half_2(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE); | 719 ui::EF_NONE, |
| 674 const ui::Accelerator hangul(ui::VKEY_HANGUL, ui::EF_NONE); | 720 ui::ET_KEY_PRESSED); |
| 675 const ui::Accelerator shift_space(ui::VKEY_SPACE, ui::EF_SHIFT_DOWN); | 721 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, |
| 722 ui::EF_NONE, |
| 723 ui::ET_KEY_PRESSED); |
| 724 const ui::Accelerator wide_half_1(ui::VKEY_DBE_SBCSCHAR, |
| 725 ui::EF_NONE, |
| 726 ui::ET_KEY_PRESSED); |
| 727 const ui::Accelerator wide_half_2(ui::VKEY_DBE_DBCSCHAR, |
| 728 ui::EF_NONE, |
| 729 ui::ET_KEY_PRESSED); |
| 730 const ui::Accelerator hangul(ui::VKEY_HANGUL, |
| 731 ui::EF_NONE, |
| 732 ui::ET_KEY_PRESSED); |
| 733 const ui::Accelerator shift_space(ui::VKEY_SPACE, |
| 734 ui::EF_SHIFT_DOWN, |
| 735 ui::ET_KEY_PRESSED); |
| 676 EXPECT_FALSE(GetController()->Process(control_space)); | 736 EXPECT_FALSE(GetController()->Process(control_space)); |
| 677 EXPECT_FALSE(GetController()->Process(convert)); | 737 EXPECT_FALSE(GetController()->Process(convert)); |
| 678 EXPECT_FALSE(GetController()->Process(non_convert)); | 738 EXPECT_FALSE(GetController()->Process(non_convert)); |
| 679 EXPECT_FALSE(GetController()->Process(wide_half_1)); | 739 EXPECT_FALSE(GetController()->Process(wide_half_1)); |
| 680 EXPECT_FALSE(GetController()->Process(wide_half_2)); | 740 EXPECT_FALSE(GetController()->Process(wide_half_2)); |
| 681 EXPECT_FALSE(GetController()->Process(hangul)); | 741 EXPECT_FALSE(GetController()->Process(hangul)); |
| 682 EXPECT_FALSE(GetController()->Process(shift_space)); | 742 EXPECT_FALSE(GetController()->Process(shift_space)); |
| 683 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); | 743 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); |
| 684 GetController()->SetImeControlDelegate( | 744 GetController()->SetImeControlDelegate( |
| 685 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 745 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 697 EXPECT_EQ(4, delegate->handle_switch_ime_count()); | 757 EXPECT_EQ(4, delegate->handle_switch_ime_count()); |
| 698 EXPECT_TRUE(GetController()->Process(hangul)); | 758 EXPECT_TRUE(GetController()->Process(hangul)); |
| 699 EXPECT_EQ(5, delegate->handle_switch_ime_count()); | 759 EXPECT_EQ(5, delegate->handle_switch_ime_count()); |
| 700 EXPECT_TRUE(GetController()->Process(shift_space)); | 760 EXPECT_TRUE(GetController()->Process(shift_space)); |
| 701 EXPECT_EQ(6, delegate->handle_switch_ime_count()); | 761 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 702 } | 762 } |
| 703 | 763 |
| 704 // Test IME shortcuts that are triggered on key release. | 764 // Test IME shortcuts that are triggered on key release. |
| 705 { | 765 { |
| 706 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, | 766 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, |
| 707 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 767 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 708 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, | 768 ui::ET_KEY_PRESSED); |
| 709 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 769 const ui::Accelerator shift_alt(ui::VKEY_MENU, |
| 770 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 771 ui::ET_KEY_RELEASED); |
| 710 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, | 772 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, |
| 711 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 773 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 712 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, | 774 ui::ET_KEY_PRESSED); |
| 713 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 775 const ui::Accelerator alt_shift(ui::VKEY_SHIFT, |
| 776 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 777 ui::ET_KEY_RELEASED); |
| 714 | 778 |
| 715 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); | 779 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); |
| 716 GetController()->SetImeControlDelegate( | 780 GetController()->SetImeControlDelegate( |
| 717 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 781 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
| 718 EXPECT_EQ(0, delegate->handle_next_ime_count()); | 782 EXPECT_EQ(0, delegate->handle_next_ime_count()); |
| 719 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 783 EXPECT_FALSE(GetController()->Process(shift_alt_press)); |
| 720 EXPECT_TRUE(GetController()->Process(shift_alt)); | 784 EXPECT_TRUE(GetController()->Process(shift_alt)); |
| 721 EXPECT_EQ(1, delegate->handle_next_ime_count()); | 785 EXPECT_EQ(1, delegate->handle_next_ime_count()); |
| 722 EXPECT_FALSE(GetController()->Process(alt_shift_press)); | 786 EXPECT_FALSE(GetController()->Process(alt_shift_press)); |
| 723 EXPECT_TRUE(GetController()->Process(alt_shift)); | 787 EXPECT_TRUE(GetController()->Process(alt_shift)); |
| 724 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 788 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
| 725 | 789 |
| 726 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is | 790 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is |
| 727 // released. | 791 // released. |
| 728 const ui::Accelerator shift_alt_x_press(ui::VKEY_X, | 792 const ui::Accelerator shift_alt_x_press( |
| 729 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 793 ui::VKEY_X, |
| 730 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, | 794 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 731 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 795 ui::ET_KEY_PRESSED); |
| 796 const ui::Accelerator shift_alt_x(ui::VKEY_X, |
| 797 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, |
| 798 ui::ET_KEY_RELEASED); |
| 732 | 799 |
| 733 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 800 EXPECT_FALSE(GetController()->Process(shift_alt_press)); |
| 734 EXPECT_FALSE(GetController()->Process(shift_alt_x_press)); | 801 EXPECT_FALSE(GetController()->Process(shift_alt_x_press)); |
| 735 EXPECT_FALSE(GetController()->Process(shift_alt_x)); | 802 EXPECT_FALSE(GetController()->Process(shift_alt_x)); |
| 736 EXPECT_FALSE(GetController()->Process(shift_alt)); | 803 EXPECT_FALSE(GetController()->Process(shift_alt)); |
| 737 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 804 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
| 738 } | 805 } |
| 739 } | 806 } |
| 740 | 807 |
| 741 } // namespace test | 808 } // namespace test |
| 742 } // namespace ash | 809 } // namespace ash |
| OLD | NEW |