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