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 | 6 |
7 #include "ash/accelerators/accelerator_table.h" | 7 #include "ash/accelerators/accelerator_table.h" |
8 #include "ash/accessibility_delegate.h" | 8 #include "ash/accessibility_delegate.h" |
9 #include "ash/ash_switches.h" | 9 #include "ash/ash_switches.h" |
10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
240 ~AcceleratorControllerTest() override {} | 240 ~AcceleratorControllerTest() override {} |
241 | 241 |
242 protected: | 242 protected: |
243 void EnableInternalDisplay() { | 243 void EnableInternalDisplay() { |
244 test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()). | 244 test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()). |
245 SetFirstDisplayAsInternalDisplay(); | 245 SetFirstDisplayAsInternalDisplay(); |
246 } | 246 } |
247 | 247 |
248 static AcceleratorController* GetController(); | 248 static AcceleratorController* GetController(); |
249 | 249 |
250 static bool ProcessInController(const ui::Accelerator& accelerator) { | |
251 GetController()->accelerator_history()-> | |
252 StoreCurrentAccelerator(accelerator); | |
253 return GetController()->Process(accelerator); | |
254 } | |
255 | |
256 static ui::Accelerator GetPreviousAccelerator() { | |
sky
2014/11/18 22:11:48
const ui::Accelerator& here and next one.
afakhry
2014/11/18 23:08:40
Done.
| |
257 return GetController()->accelerator_history()-> | |
258 GetPreviousAccelerator(); | |
259 } | |
260 | |
261 static ui::Accelerator GetCurrentAccelerator() { | |
262 return GetController()->accelerator_history()-> | |
263 GetCurrentAccelerator(); | |
264 } | |
265 | |
250 // Several functions to access ExitWarningHandler (as friend). | 266 // Several functions to access ExitWarningHandler (as friend). |
251 static void StubForTest(ExitWarningHandler* ewh) { | 267 static void StubForTest(ExitWarningHandler* ewh) { |
252 ewh->stub_timer_for_test_ = true; | 268 ewh->stub_timer_for_test_ = true; |
253 } | 269 } |
254 static void Reset(ExitWarningHandler* ewh) { | 270 static void Reset(ExitWarningHandler* ewh) { |
255 ewh->state_ = ExitWarningHandler::IDLE; | 271 ewh->state_ = ExitWarningHandler::IDLE; |
256 } | 272 } |
257 static void SimulateTimerExpired(ExitWarningHandler* ewh) { | 273 static void SimulateTimerExpired(ExitWarningHandler* ewh) { |
258 ewh->TimerAction(); | 274 ewh->TimerAction(); |
259 } | 275 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
292 // Double press of exit shortcut => exiting | 308 // Double press of exit shortcut => exiting |
293 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestDoublePress) { | 309 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestDoublePress) { |
294 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); | 310 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); |
295 ui::Accelerator release(press); | 311 ui::Accelerator release(press); |
296 release.set_type(ui::ET_KEY_RELEASED); | 312 release.set_type(ui::ET_KEY_RELEASED); |
297 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 313 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
298 ASSERT_TRUE(!!ewh); | 314 ASSERT_TRUE(!!ewh); |
299 StubForTest(ewh); | 315 StubForTest(ewh); |
300 EXPECT_TRUE(is_idle(ewh)); | 316 EXPECT_TRUE(is_idle(ewh)); |
301 EXPECT_FALSE(is_ui_shown(ewh)); | 317 EXPECT_FALSE(is_ui_shown(ewh)); |
302 EXPECT_TRUE(GetController()->Process(press)); | 318 EXPECT_TRUE(ProcessInController(press)); |
303 EXPECT_FALSE(GetController()->Process(release)); | 319 EXPECT_FALSE(ProcessInController(release)); |
304 EXPECT_FALSE(is_idle(ewh)); | 320 EXPECT_FALSE(is_idle(ewh)); |
305 EXPECT_TRUE(is_ui_shown(ewh)); | 321 EXPECT_TRUE(is_ui_shown(ewh)); |
306 EXPECT_TRUE(GetController()->Process(press)); // second press before timer. | 322 EXPECT_TRUE(ProcessInController(press)); // second press before timer. |
307 EXPECT_FALSE(GetController()->Process(release)); | 323 EXPECT_FALSE(ProcessInController(release)); |
308 SimulateTimerExpired(ewh); | 324 SimulateTimerExpired(ewh); |
309 EXPECT_TRUE(is_exiting(ewh)); | 325 EXPECT_TRUE(is_exiting(ewh)); |
310 EXPECT_FALSE(is_ui_shown(ewh)); | 326 EXPECT_FALSE(is_ui_shown(ewh)); |
311 Reset(ewh); | 327 Reset(ewh); |
312 } | 328 } |
313 | 329 |
314 // Single press of exit shortcut before timer => idle | 330 // Single press of exit shortcut before timer => idle |
315 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestSinglePress) { | 331 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestSinglePress) { |
316 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); | 332 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); |
317 ui::Accelerator release(press); | 333 ui::Accelerator release(press); |
318 release.set_type(ui::ET_KEY_RELEASED); | 334 release.set_type(ui::ET_KEY_RELEASED); |
319 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 335 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
320 ASSERT_TRUE(!!ewh); | 336 ASSERT_TRUE(!!ewh); |
321 StubForTest(ewh); | 337 StubForTest(ewh); |
322 EXPECT_TRUE(is_idle(ewh)); | 338 EXPECT_TRUE(is_idle(ewh)); |
323 EXPECT_FALSE(is_ui_shown(ewh)); | 339 EXPECT_FALSE(is_ui_shown(ewh)); |
324 EXPECT_TRUE(GetController()->Process(press)); | 340 EXPECT_TRUE(ProcessInController(press)); |
325 EXPECT_FALSE(GetController()->Process(release)); | 341 EXPECT_FALSE(ProcessInController(release)); |
326 EXPECT_FALSE(is_idle(ewh)); | 342 EXPECT_FALSE(is_idle(ewh)); |
327 EXPECT_TRUE(is_ui_shown(ewh)); | 343 EXPECT_TRUE(is_ui_shown(ewh)); |
328 SimulateTimerExpired(ewh); | 344 SimulateTimerExpired(ewh); |
329 EXPECT_TRUE(is_idle(ewh)); | 345 EXPECT_TRUE(is_idle(ewh)); |
330 EXPECT_FALSE(is_ui_shown(ewh)); | 346 EXPECT_FALSE(is_ui_shown(ewh)); |
331 Reset(ewh); | 347 Reset(ewh); |
332 } | 348 } |
333 | 349 |
334 // Shutdown ash with exit warning bubble open should not crash. | 350 // Shutdown ash with exit warning bubble open should not crash. |
335 TEST_F(AcceleratorControllerTest, LingeringExitWarningBubble) { | 351 TEST_F(AcceleratorControllerTest, LingeringExitWarningBubble) { |
336 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 352 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
337 ASSERT_TRUE(!!ewh); | 353 ASSERT_TRUE(!!ewh); |
338 StubForTest(ewh); | 354 StubForTest(ewh); |
339 | 355 |
340 // Trigger once to show the bubble. | 356 // Trigger once to show the bubble. |
341 ewh->HandleAccelerator(); | 357 ewh->HandleAccelerator(); |
342 EXPECT_FALSE(is_idle(ewh)); | 358 EXPECT_FALSE(is_idle(ewh)); |
343 EXPECT_TRUE(is_ui_shown(ewh)); | 359 EXPECT_TRUE(is_ui_shown(ewh)); |
344 | 360 |
345 // Exit ash and there should be no crash | 361 // Exit ash and there should be no crash |
346 } | 362 } |
347 #endif // !defined(OS_WIN) | 363 #endif // !defined(OS_WIN) |
348 | 364 |
349 TEST_F(AcceleratorControllerTest, Register) { | 365 TEST_F(AcceleratorControllerTest, Register) { |
350 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 366 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
351 TestTarget target; | 367 TestTarget target; |
352 GetController()->Register(accelerator_a, &target); | 368 GetController()->Register(accelerator_a, &target); |
353 | 369 |
354 // The registered accelerator is processed. | 370 // The registered accelerator is processed. |
355 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 371 EXPECT_TRUE(ProcessInController(accelerator_a)); |
356 EXPECT_EQ(1, target.accelerator_pressed_count()); | 372 EXPECT_EQ(1, target.accelerator_pressed_count()); |
357 } | 373 } |
358 | 374 |
359 TEST_F(AcceleratorControllerTest, RegisterMultipleTarget) { | 375 TEST_F(AcceleratorControllerTest, RegisterMultipleTarget) { |
360 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 376 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
361 TestTarget target1; | 377 TestTarget target1; |
362 GetController()->Register(accelerator_a, &target1); | 378 GetController()->Register(accelerator_a, &target1); |
363 TestTarget target2; | 379 TestTarget target2; |
364 GetController()->Register(accelerator_a, &target2); | 380 GetController()->Register(accelerator_a, &target2); |
365 | 381 |
366 // If multiple targets are registered with the same accelerator, the target | 382 // If multiple targets are registered with the same accelerator, the target |
367 // registered later processes the accelerator. | 383 // registered later processes the accelerator. |
368 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 384 EXPECT_TRUE(ProcessInController(accelerator_a)); |
369 EXPECT_EQ(0, target1.accelerator_pressed_count()); | 385 EXPECT_EQ(0, target1.accelerator_pressed_count()); |
370 EXPECT_EQ(1, target2.accelerator_pressed_count()); | 386 EXPECT_EQ(1, target2.accelerator_pressed_count()); |
371 } | 387 } |
372 | 388 |
373 TEST_F(AcceleratorControllerTest, Unregister) { | 389 TEST_F(AcceleratorControllerTest, Unregister) { |
374 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 390 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
375 TestTarget target; | 391 TestTarget target; |
376 GetController()->Register(accelerator_a, &target); | 392 GetController()->Register(accelerator_a, &target); |
377 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 393 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); |
378 GetController()->Register(accelerator_b, &target); | 394 GetController()->Register(accelerator_b, &target); |
379 | 395 |
380 // Unregistering a different accelerator does not affect the other | 396 // Unregistering a different accelerator does not affect the other |
381 // accelerator. | 397 // accelerator. |
382 GetController()->Unregister(accelerator_b, &target); | 398 GetController()->Unregister(accelerator_b, &target); |
383 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 399 EXPECT_TRUE(ProcessInController(accelerator_a)); |
384 EXPECT_EQ(1, target.accelerator_pressed_count()); | 400 EXPECT_EQ(1, target.accelerator_pressed_count()); |
385 | 401 |
386 // The unregistered accelerator is no longer processed. | 402 // The unregistered accelerator is no longer processed. |
387 target.reset(); | 403 target.reset(); |
388 GetController()->Unregister(accelerator_a, &target); | 404 GetController()->Unregister(accelerator_a, &target); |
389 EXPECT_FALSE(GetController()->Process(accelerator_a)); | 405 EXPECT_FALSE(ProcessInController(accelerator_a)); |
390 EXPECT_EQ(0, target.accelerator_pressed_count()); | 406 EXPECT_EQ(0, target.accelerator_pressed_count()); |
391 } | 407 } |
392 | 408 |
393 TEST_F(AcceleratorControllerTest, UnregisterAll) { | 409 TEST_F(AcceleratorControllerTest, UnregisterAll) { |
394 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 410 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
395 TestTarget target1; | 411 TestTarget target1; |
396 GetController()->Register(accelerator_a, &target1); | 412 GetController()->Register(accelerator_a, &target1); |
397 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 413 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); |
398 GetController()->Register(accelerator_b, &target1); | 414 GetController()->Register(accelerator_b, &target1); |
399 const ui::Accelerator accelerator_c(ui::VKEY_C, ui::EF_NONE); | 415 const ui::Accelerator accelerator_c(ui::VKEY_C, ui::EF_NONE); |
400 TestTarget target2; | 416 TestTarget target2; |
401 GetController()->Register(accelerator_c, &target2); | 417 GetController()->Register(accelerator_c, &target2); |
402 GetController()->UnregisterAll(&target1); | 418 GetController()->UnregisterAll(&target1); |
403 | 419 |
404 // All the accelerators registered for |target1| are no longer processed. | 420 // All the accelerators registered for |target1| are no longer processed. |
405 EXPECT_FALSE(GetController()->Process(accelerator_a)); | 421 EXPECT_FALSE(ProcessInController(accelerator_a)); |
406 EXPECT_FALSE(GetController()->Process(accelerator_b)); | 422 EXPECT_FALSE(ProcessInController(accelerator_b)); |
407 EXPECT_EQ(0, target1.accelerator_pressed_count()); | 423 EXPECT_EQ(0, target1.accelerator_pressed_count()); |
408 | 424 |
409 // UnregisterAll with a different target does not affect the other target. | 425 // UnregisterAll with a different target does not affect the other target. |
410 EXPECT_TRUE(GetController()->Process(accelerator_c)); | 426 EXPECT_TRUE(ProcessInController(accelerator_c)); |
411 EXPECT_EQ(1, target2.accelerator_pressed_count()); | 427 EXPECT_EQ(1, target2.accelerator_pressed_count()); |
412 } | 428 } |
413 | 429 |
414 TEST_F(AcceleratorControllerTest, Process) { | 430 TEST_F(AcceleratorControllerTest, Process) { |
415 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 431 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
416 TestTarget target1; | 432 TestTarget target1; |
417 GetController()->Register(accelerator_a, &target1); | 433 GetController()->Register(accelerator_a, &target1); |
418 | 434 |
419 // The registered accelerator is processed. | 435 // The registered accelerator is processed. |
420 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 436 EXPECT_TRUE(ProcessInController(accelerator_a)); |
421 EXPECT_EQ(1, target1.accelerator_pressed_count()); | 437 EXPECT_EQ(1, target1.accelerator_pressed_count()); |
422 | 438 |
423 // The non-registered accelerator is not processed. | 439 // The non-registered accelerator is not processed. |
424 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 440 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); |
425 EXPECT_FALSE(GetController()->Process(accelerator_b)); | 441 EXPECT_FALSE(ProcessInController(accelerator_b)); |
426 } | 442 } |
427 | 443 |
428 TEST_F(AcceleratorControllerTest, IsRegistered) { | 444 TEST_F(AcceleratorControllerTest, IsRegistered) { |
429 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 445 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
430 const ui::Accelerator accelerator_shift_a(ui::VKEY_A, ui::EF_SHIFT_DOWN); | 446 const ui::Accelerator accelerator_shift_a(ui::VKEY_A, ui::EF_SHIFT_DOWN); |
431 TestTarget target; | 447 TestTarget target; |
432 GetController()->Register(accelerator_a, &target); | 448 GetController()->Register(accelerator_a, &target); |
433 EXPECT_TRUE(GetController()->IsRegistered(accelerator_a)); | 449 EXPECT_TRUE(GetController()->IsRegistered(accelerator_a)); |
434 EXPECT_FALSE(GetController()->IsRegistered(accelerator_shift_a)); | 450 EXPECT_FALSE(GetController()->IsRegistered(accelerator_shift_a)); |
435 GetController()->UnregisterAll(&target); | 451 GetController()->UnregisterAll(&target); |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
717 EXPECT_EQ(4, target_a.accelerator_pressed_count()); | 733 EXPECT_EQ(4, target_a.accelerator_pressed_count()); |
718 EXPECT_EQ(4, target_a.accelerator_repeat_count()); | 734 EXPECT_EQ(4, target_a.accelerator_repeat_count()); |
719 } | 735 } |
720 | 736 |
721 TEST_F(AcceleratorControllerTest, Previous) { | 737 TEST_F(AcceleratorControllerTest, Previous) { |
722 ui::test::EventGenerator& generator = GetEventGenerator(); | 738 ui::test::EventGenerator& generator = GetEventGenerator(); |
723 generator.PressKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 739 generator.PressKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
724 generator.ReleaseKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 740 generator.ReleaseKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
725 | 741 |
726 EXPECT_EQ(ui::VKEY_VOLUME_MUTE, | 742 EXPECT_EQ(ui::VKEY_VOLUME_MUTE, |
727 GetController()->previous_accelerator_for_test().key_code()); | 743 GetPreviousAccelerator().key_code()); |
728 EXPECT_EQ(ui::EF_NONE, | 744 EXPECT_EQ(ui::EF_NONE, |
729 GetController()->previous_accelerator_for_test().modifiers()); | 745 GetPreviousAccelerator().modifiers()); |
730 | 746 |
731 generator.PressKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); | 747 generator.PressKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); |
732 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); | 748 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); |
733 | 749 |
734 EXPECT_EQ(ui::VKEY_TAB, | 750 EXPECT_EQ(ui::VKEY_TAB, |
735 GetController()->previous_accelerator_for_test().key_code()); | 751 GetPreviousAccelerator().key_code()); |
736 EXPECT_EQ(ui::EF_CONTROL_DOWN, | 752 EXPECT_EQ(ui::EF_CONTROL_DOWN, |
737 GetController()->previous_accelerator_for_test().modifiers()); | 753 GetPreviousAccelerator().modifiers()); |
738 } | 754 } |
739 | 755 |
740 TEST_F(AcceleratorControllerTest, DontRepeatToggleFullscreen) { | 756 TEST_F(AcceleratorControllerTest, DontRepeatToggleFullscreen) { |
741 const AcceleratorData accelerators[] = { | 757 const AcceleratorData accelerators[] = { |
742 {true, ui::VKEY_J, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, | 758 {true, ui::VKEY_J, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, |
743 {true, ui::VKEY_K, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, | 759 {true, ui::VKEY_K, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, |
744 }; | 760 }; |
745 GetController()->RegisterAccelerators(accelerators, arraysize(accelerators)); | 761 GetController()->RegisterAccelerators(accelerators, arraysize(accelerators)); |
746 | 762 |
747 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); | 763 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
822 key_event3.SetTranslated(true); | 838 key_event3.SetTranslated(true); |
823 details = dispatcher->OnEventFromSource(&key_event3); | 839 details = dispatcher->OnEventFromSource(&key_event3); |
824 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed); | 840 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed); |
825 #endif | 841 #endif |
826 EXPECT_EQ(1, target.accelerator_pressed_count()); | 842 EXPECT_EQ(1, target.accelerator_pressed_count()); |
827 } | 843 } |
828 #endif | 844 #endif |
829 | 845 |
830 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { | 846 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { |
831 // CycleBackward | 847 // CycleBackward |
832 EXPECT_TRUE(GetController()->Process( | 848 EXPECT_TRUE(ProcessInController( |
833 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); | 849 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); |
834 // CycleForward | 850 // CycleForward |
835 EXPECT_TRUE( | 851 EXPECT_TRUE( |
836 GetController()->Process(ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN))); | 852 ProcessInController(ui::Accelerator( |
853 ui::VKEY_TAB, ui::EF_ALT_DOWN))); | |
837 // CycleLinear | 854 // CycleLinear |
838 EXPECT_TRUE(GetController()->Process( | 855 EXPECT_TRUE(ProcessInController( |
839 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE))); | 856 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE))); |
840 | 857 |
841 #if defined(OS_CHROMEOS) | 858 #if defined(OS_CHROMEOS) |
842 // Take screenshot / partial screenshot | 859 // Take screenshot / partial screenshot |
843 // True should always be returned regardless of the existence of the delegate. | 860 // True should always be returned regardless of the existence of the delegate. |
844 { | 861 { |
845 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); | 862 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); |
846 delegate->set_can_take_screenshot(false); | 863 delegate->set_can_take_screenshot(false); |
847 EXPECT_TRUE(GetController()->Process( | 864 EXPECT_TRUE(ProcessInController( |
848 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 865 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
849 EXPECT_TRUE( | 866 EXPECT_TRUE( |
850 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 867 ProcessInController(ui::Accelerator( |
851 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 868 ui::VKEY_PRINT, ui::EF_NONE))); |
869 EXPECT_TRUE(ProcessInController(ui::Accelerator( | |
852 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 870 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
853 | 871 |
854 delegate->set_can_take_screenshot(true); | 872 delegate->set_can_take_screenshot(true); |
855 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); | 873 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
856 EXPECT_TRUE(GetController()->Process( | 874 EXPECT_TRUE(ProcessInController( |
857 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 875 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
858 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); | 876 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); |
859 EXPECT_TRUE( | 877 EXPECT_TRUE( |
860 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 878 ProcessInController(ui::Accelerator( |
879 ui::VKEY_PRINT, ui::EF_NONE))); | |
861 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 880 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
862 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 881 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
863 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 882 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
864 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 883 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
865 } | 884 } |
866 #endif | 885 #endif |
867 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 886 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
868 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 887 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
869 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 888 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
870 { | 889 { |
871 TestVolumeControlDelegate* delegate = | 890 TestVolumeControlDelegate* delegate = |
872 new TestVolumeControlDelegate(false); | 891 new TestVolumeControlDelegate(false); |
873 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( | 892 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( |
874 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 893 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
875 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 894 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
876 EXPECT_FALSE(GetController()->Process(volume_mute)); | 895 EXPECT_FALSE(ProcessInController(volume_mute)); |
877 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 896 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
878 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 897 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
879 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 898 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
880 EXPECT_FALSE(GetController()->Process(volume_down)); | 899 EXPECT_FALSE(ProcessInController(volume_down)); |
881 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 900 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
882 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 901 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
883 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 902 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
884 EXPECT_FALSE(GetController()->Process(volume_up)); | 903 EXPECT_FALSE(ProcessInController(volume_up)); |
885 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 904 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
886 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 905 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
887 } | 906 } |
888 { | 907 { |
889 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate(true); | 908 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate(true); |
890 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( | 909 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( |
891 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 910 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
892 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 911 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
893 EXPECT_TRUE(GetController()->Process(volume_mute)); | 912 EXPECT_TRUE(ProcessInController(volume_mute)); |
894 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 913 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
895 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 914 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
896 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 915 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
897 EXPECT_TRUE(GetController()->Process(volume_down)); | 916 EXPECT_TRUE(ProcessInController(volume_down)); |
898 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 917 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
899 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 918 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
900 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 919 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
901 EXPECT_TRUE(GetController()->Process(volume_up)); | 920 EXPECT_TRUE(ProcessInController(volume_up)); |
902 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 921 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
903 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 922 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
904 } | 923 } |
905 #if defined(OS_CHROMEOS) | 924 #if defined(OS_CHROMEOS) |
906 // Brightness | 925 // Brightness |
907 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. | 926 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. |
908 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); | 927 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); |
909 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); | 928 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); |
910 { | 929 { |
911 DummyBrightnessControlDelegate* delegate = | 930 DummyBrightnessControlDelegate* delegate = |
912 new DummyBrightnessControlDelegate(false); | 931 new DummyBrightnessControlDelegate(false); |
913 GetController()->SetBrightnessControlDelegate( | 932 GetController()->SetBrightnessControlDelegate( |
914 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 933 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
915 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 934 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
916 EXPECT_FALSE(GetController()->Process(brightness_down)); | 935 EXPECT_FALSE(ProcessInController(brightness_down)); |
917 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 936 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
918 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 937 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
919 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 938 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
920 EXPECT_FALSE(GetController()->Process(brightness_up)); | 939 EXPECT_FALSE(ProcessInController(brightness_up)); |
921 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 940 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
922 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 941 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
923 } | 942 } |
924 { | 943 { |
925 DummyBrightnessControlDelegate* delegate = | 944 DummyBrightnessControlDelegate* delegate = |
926 new DummyBrightnessControlDelegate(true); | 945 new DummyBrightnessControlDelegate(true); |
927 GetController()->SetBrightnessControlDelegate( | 946 GetController()->SetBrightnessControlDelegate( |
928 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 947 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
929 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 948 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
930 EXPECT_TRUE(GetController()->Process(brightness_down)); | 949 EXPECT_TRUE(ProcessInController(brightness_down)); |
931 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 950 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
932 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 951 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
933 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 952 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
934 EXPECT_TRUE(GetController()->Process(brightness_up)); | 953 EXPECT_TRUE(ProcessInController(brightness_up)); |
935 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 954 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
936 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 955 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
937 } | 956 } |
938 | 957 |
939 // Keyboard brightness | 958 // Keyboard brightness |
940 const ui::Accelerator alt_brightness_down(ui::VKEY_BRIGHTNESS_DOWN, | 959 const ui::Accelerator alt_brightness_down(ui::VKEY_BRIGHTNESS_DOWN, |
941 ui::EF_ALT_DOWN); | 960 ui::EF_ALT_DOWN); |
942 const ui::Accelerator alt_brightness_up(ui::VKEY_BRIGHTNESS_UP, | 961 const ui::Accelerator alt_brightness_up(ui::VKEY_BRIGHTNESS_UP, |
943 ui::EF_ALT_DOWN); | 962 ui::EF_ALT_DOWN); |
944 { | 963 { |
945 EXPECT_TRUE(GetController()->Process(alt_brightness_down)); | 964 EXPECT_TRUE(ProcessInController(alt_brightness_down)); |
946 EXPECT_TRUE(GetController()->Process(alt_brightness_up)); | 965 EXPECT_TRUE(ProcessInController(alt_brightness_up)); |
947 DummyKeyboardBrightnessControlDelegate* delegate = | 966 DummyKeyboardBrightnessControlDelegate* delegate = |
948 new DummyKeyboardBrightnessControlDelegate(false); | 967 new DummyKeyboardBrightnessControlDelegate(false); |
949 GetController()->SetKeyboardBrightnessControlDelegate( | 968 GetController()->SetKeyboardBrightnessControlDelegate( |
950 scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); | 969 scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); |
951 EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); | 970 EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); |
952 EXPECT_FALSE(GetController()->Process(alt_brightness_down)); | 971 EXPECT_FALSE(ProcessInController(alt_brightness_down)); |
953 EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); | 972 EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); |
954 EXPECT_EQ(alt_brightness_down, delegate->last_accelerator()); | 973 EXPECT_EQ(alt_brightness_down, delegate->last_accelerator()); |
955 EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); | 974 EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); |
956 EXPECT_FALSE(GetController()->Process(alt_brightness_up)); | 975 EXPECT_FALSE(ProcessInController(alt_brightness_up)); |
957 EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); | 976 EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); |
958 EXPECT_EQ(alt_brightness_up, delegate->last_accelerator()); | 977 EXPECT_EQ(alt_brightness_up, delegate->last_accelerator()); |
959 } | 978 } |
960 { | 979 { |
961 DummyKeyboardBrightnessControlDelegate* delegate = | 980 DummyKeyboardBrightnessControlDelegate* delegate = |
962 new DummyKeyboardBrightnessControlDelegate(true); | 981 new DummyKeyboardBrightnessControlDelegate(true); |
963 GetController()->SetKeyboardBrightnessControlDelegate( | 982 GetController()->SetKeyboardBrightnessControlDelegate( |
964 scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); | 983 scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); |
965 EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); | 984 EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); |
966 EXPECT_TRUE(GetController()->Process(alt_brightness_down)); | 985 EXPECT_TRUE(ProcessInController(alt_brightness_down)); |
967 EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); | 986 EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); |
968 EXPECT_EQ(alt_brightness_down, delegate->last_accelerator()); | 987 EXPECT_EQ(alt_brightness_down, delegate->last_accelerator()); |
969 EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); | 988 EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); |
970 EXPECT_TRUE(GetController()->Process(alt_brightness_up)); | 989 EXPECT_TRUE(ProcessInController(alt_brightness_up)); |
971 EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); | 990 EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); |
972 EXPECT_EQ(alt_brightness_up, delegate->last_accelerator()); | 991 EXPECT_EQ(alt_brightness_up, delegate->last_accelerator()); |
973 } | 992 } |
974 #endif | 993 #endif |
975 | 994 |
976 #if !defined(OS_WIN) | 995 #if !defined(OS_WIN) |
977 // Exit | 996 // Exit |
978 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 997 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
979 ASSERT_TRUE(!!ewh); | 998 ASSERT_TRUE(!!ewh); |
980 StubForTest(ewh); | 999 StubForTest(ewh); |
981 EXPECT_TRUE(is_idle(ewh)); | 1000 EXPECT_TRUE(is_idle(ewh)); |
982 EXPECT_FALSE(is_ui_shown(ewh)); | 1001 EXPECT_FALSE(is_ui_shown(ewh)); |
983 EXPECT_TRUE(GetController()->Process( | 1002 EXPECT_TRUE(ProcessInController( |
984 ui::Accelerator(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1003 ui::Accelerator(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
985 EXPECT_FALSE(is_idle(ewh)); | 1004 EXPECT_FALSE(is_idle(ewh)); |
986 EXPECT_TRUE(is_ui_shown(ewh)); | 1005 EXPECT_TRUE(is_ui_shown(ewh)); |
987 SimulateTimerExpired(ewh); | 1006 SimulateTimerExpired(ewh); |
988 EXPECT_TRUE(is_idle(ewh)); | 1007 EXPECT_TRUE(is_idle(ewh)); |
989 EXPECT_FALSE(is_ui_shown(ewh)); | 1008 EXPECT_FALSE(is_ui_shown(ewh)); |
990 Reset(ewh); | 1009 Reset(ewh); |
991 #endif | 1010 #endif |
992 | 1011 |
993 // New tab | 1012 // New tab |
994 EXPECT_TRUE(GetController()->Process( | 1013 EXPECT_TRUE(ProcessInController( |
995 ui::Accelerator(ui::VKEY_T, ui::EF_CONTROL_DOWN))); | 1014 ui::Accelerator(ui::VKEY_T, ui::EF_CONTROL_DOWN))); |
996 | 1015 |
997 // New incognito window | 1016 // New incognito window |
998 EXPECT_TRUE(GetController()->Process( | 1017 EXPECT_TRUE(ProcessInController( |
999 ui::Accelerator(ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1018 ui::Accelerator(ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
1000 | 1019 |
1001 // New window | 1020 // New window |
1002 EXPECT_TRUE(GetController()->Process( | 1021 EXPECT_TRUE(ProcessInController( |
1003 ui::Accelerator(ui::VKEY_N, ui::EF_CONTROL_DOWN))); | 1022 ui::Accelerator(ui::VKEY_N, ui::EF_CONTROL_DOWN))); |
1004 | 1023 |
1005 // Restore tab | 1024 // Restore tab |
1006 EXPECT_TRUE(GetController()->Process( | 1025 EXPECT_TRUE(ProcessInController( |
1007 ui::Accelerator(ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1026 ui::Accelerator(ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
1008 | 1027 |
1009 // Show task manager | 1028 // Show task manager |
1010 EXPECT_TRUE(GetController()->Process( | 1029 EXPECT_TRUE(ProcessInController( |
1011 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN))); | 1030 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN))); |
1012 | 1031 |
1013 #if defined(OS_CHROMEOS) | 1032 #if defined(OS_CHROMEOS) |
1014 // Open file manager | 1033 // Open file manager |
1015 EXPECT_TRUE(GetController()->Process( | 1034 EXPECT_TRUE(ProcessInController( |
1016 ui::Accelerator(ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); | 1035 ui::Accelerator(ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); |
1017 | 1036 |
1018 // Lock screen | 1037 // Lock screen |
1019 // NOTE: Accelerators that do not work on the lock screen need to be | 1038 // NOTE: Accelerators that do not work on the lock screen need to be |
1020 // tested before the sequence below is invoked because it causes a side | 1039 // tested before the sequence below is invoked because it causes a side |
1021 // effect of locking the screen. | 1040 // effect of locking the screen. |
1022 EXPECT_TRUE(GetController()->Process( | 1041 EXPECT_TRUE(ProcessInController( |
1023 ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1042 ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
1024 #endif | 1043 #endif |
1025 } | 1044 } |
1026 | 1045 |
1027 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsToggleAppList) { | 1046 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsToggleAppList) { |
1028 AccessibilityDelegate* delegate = | 1047 AccessibilityDelegate* delegate = |
1029 ash::Shell::GetInstance()->accessibility_delegate(); | 1048 ash::Shell::GetInstance()->accessibility_delegate(); |
1030 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 1049 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
1031 | 1050 |
1032 // The press event should not open the AppList, the release should instead. | 1051 // The press event should not open the AppList, the release should instead. |
1033 EXPECT_FALSE( | 1052 EXPECT_FALSE( |
1034 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1053 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
1035 EXPECT_EQ(ui::VKEY_LWIN, | 1054 EXPECT_EQ(ui::VKEY_LWIN, |
1036 GetController()->previous_accelerator_for_test().key_code()); | 1055 GetCurrentAccelerator().key_code()); |
1056 | |
1057 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | |
1037 | 1058 |
1038 EXPECT_TRUE( | 1059 EXPECT_TRUE( |
1039 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1060 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
1040 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 1061 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
1041 | 1062 |
1063 EXPECT_EQ(ui::VKEY_LWIN, | |
1064 GetPreviousAccelerator().key_code()); | |
1065 | |
1042 // When spoken feedback is on, the AppList should not toggle. | 1066 // When spoken feedback is on, the AppList should not toggle. |
1043 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 1067 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
1044 EXPECT_FALSE( | 1068 EXPECT_FALSE( |
1045 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1069 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
1046 EXPECT_FALSE( | 1070 EXPECT_FALSE( |
1047 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1071 ProcessInController(ReleaseAccelerator( |
1072 ui::VKEY_LWIN, ui::EF_NONE))); | |
1048 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 1073 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
1049 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 1074 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
1050 | 1075 |
1051 EXPECT_FALSE( | 1076 EXPECT_FALSE( |
1052 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1077 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
1053 EXPECT_TRUE( | 1078 EXPECT_TRUE( |
1054 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1079 ProcessInController(ReleaseAccelerator( |
1080 ui::VKEY_LWIN, ui::EF_NONE))); | |
1055 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 1081 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
1056 | 1082 |
1057 // When spoken feedback is on, the AppList should not toggle. | 1083 // When spoken feedback is on, the AppList should not toggle. |
1058 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 1084 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
1059 EXPECT_FALSE( | 1085 EXPECT_FALSE( |
1060 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1086 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
1061 EXPECT_FALSE( | 1087 EXPECT_FALSE( |
1062 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1088 ProcessInController(ReleaseAccelerator( |
1089 ui::VKEY_LWIN, ui::EF_NONE))); | |
1063 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 1090 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
1064 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 1091 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
1092 | |
1093 // The press of VKEY_BROWSER_SEARCH should toggle the AppList | |
1094 EXPECT_TRUE(ProcessInController(ui::Accelerator(ui::VKEY_BROWSER_SEARCH, | |
1095 ui::EF_NONE))); | |
1096 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | |
1097 EXPECT_FALSE(ProcessInController(ReleaseAccelerator(ui::VKEY_BROWSER_SEARCH, | |
1098 ui::EF_NONE))); | |
1099 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | |
1065 } | 1100 } |
1066 | 1101 |
1067 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { | 1102 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { |
1068 // Test IME shortcuts. | 1103 // Test IME shortcuts. |
1069 { | 1104 { |
1070 const ui::Accelerator control_space(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 1105 const ui::Accelerator control_space(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
1071 const ui::Accelerator convert(ui::VKEY_CONVERT, ui::EF_NONE); | 1106 const ui::Accelerator convert(ui::VKEY_CONVERT, ui::EF_NONE); |
1072 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, ui::EF_NONE); | 1107 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, ui::EF_NONE); |
1073 const ui::Accelerator wide_half_1(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE); | 1108 const ui::Accelerator wide_half_1(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE); |
1074 const ui::Accelerator wide_half_2(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE); | 1109 const ui::Accelerator wide_half_2(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE); |
1075 const ui::Accelerator hangul(ui::VKEY_HANGUL, ui::EF_NONE); | 1110 const ui::Accelerator hangul(ui::VKEY_HANGUL, ui::EF_NONE); |
1076 EXPECT_FALSE(GetController()->Process(control_space)); | 1111 EXPECT_FALSE(ProcessInController(control_space)); |
1077 EXPECT_FALSE(GetController()->Process(convert)); | 1112 EXPECT_FALSE(ProcessInController(convert)); |
1078 EXPECT_FALSE(GetController()->Process(non_convert)); | 1113 EXPECT_FALSE(ProcessInController(non_convert)); |
1079 EXPECT_FALSE(GetController()->Process(wide_half_1)); | 1114 EXPECT_FALSE(ProcessInController(wide_half_1)); |
1080 EXPECT_FALSE(GetController()->Process(wide_half_2)); | 1115 EXPECT_FALSE(ProcessInController(wide_half_2)); |
1081 EXPECT_FALSE(GetController()->Process(hangul)); | 1116 EXPECT_FALSE(ProcessInController(hangul)); |
1082 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); | 1117 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); |
1083 GetController()->SetImeControlDelegate( | 1118 GetController()->SetImeControlDelegate( |
1084 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1119 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
1085 EXPECT_EQ(0, delegate->handle_previous_ime_count()); | 1120 EXPECT_EQ(0, delegate->handle_previous_ime_count()); |
1086 EXPECT_TRUE(GetController()->Process(control_space)); | 1121 EXPECT_TRUE(ProcessInController(control_space)); |
1087 EXPECT_EQ(1, delegate->handle_previous_ime_count()); | 1122 EXPECT_EQ(1, delegate->handle_previous_ime_count()); |
1088 EXPECT_EQ(0, delegate->handle_switch_ime_count()); | 1123 EXPECT_EQ(0, delegate->handle_switch_ime_count()); |
1089 EXPECT_TRUE(GetController()->Process(convert)); | 1124 EXPECT_TRUE(ProcessInController(convert)); |
1090 EXPECT_EQ(1, delegate->handle_switch_ime_count()); | 1125 EXPECT_EQ(1, delegate->handle_switch_ime_count()); |
1091 EXPECT_TRUE(GetController()->Process(non_convert)); | 1126 EXPECT_TRUE(ProcessInController(non_convert)); |
1092 EXPECT_EQ(2, delegate->handle_switch_ime_count()); | 1127 EXPECT_EQ(2, delegate->handle_switch_ime_count()); |
1093 EXPECT_TRUE(GetController()->Process(wide_half_1)); | 1128 EXPECT_TRUE(ProcessInController(wide_half_1)); |
1094 EXPECT_EQ(3, delegate->handle_switch_ime_count()); | 1129 EXPECT_EQ(3, delegate->handle_switch_ime_count()); |
1095 EXPECT_TRUE(GetController()->Process(wide_half_2)); | 1130 EXPECT_TRUE(ProcessInController(wide_half_2)); |
1096 EXPECT_EQ(4, delegate->handle_switch_ime_count()); | 1131 EXPECT_EQ(4, delegate->handle_switch_ime_count()); |
1097 EXPECT_TRUE(GetController()->Process(hangul)); | 1132 EXPECT_TRUE(ProcessInController(hangul)); |
1098 EXPECT_EQ(5, delegate->handle_switch_ime_count()); | 1133 EXPECT_EQ(5, delegate->handle_switch_ime_count()); |
1099 } | 1134 } |
1100 | 1135 |
1101 // Test IME shortcuts that are triggered on key release. | 1136 // Test IME shortcuts that are triggered on key release. |
1102 { | 1137 { |
1103 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, | 1138 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, |
1104 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1139 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1105 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); | 1140 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); |
1106 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, | 1141 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, |
1107 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1142 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1108 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1143 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
1109 | 1144 |
1110 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); | 1145 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); |
1111 GetController()->SetImeControlDelegate( | 1146 GetController()->SetImeControlDelegate( |
1112 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1147 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
1113 EXPECT_EQ(0, delegate->handle_next_ime_count()); | 1148 EXPECT_EQ(0, delegate->handle_next_ime_count()); |
1114 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1149 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
1115 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1150 EXPECT_FALSE(ProcessInController(shift_alt)); |
1116 EXPECT_EQ(1, delegate->handle_next_ime_count()); | 1151 EXPECT_EQ(1, delegate->handle_next_ime_count()); |
1117 EXPECT_FALSE(GetController()->Process(alt_shift_press)); | 1152 EXPECT_FALSE(ProcessInController(alt_shift_press)); |
1118 EXPECT_FALSE(GetController()->Process(alt_shift)); | 1153 EXPECT_FALSE(ProcessInController(alt_shift)); |
1119 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1154 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
1120 | 1155 |
1121 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is | 1156 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is |
1122 // released. | 1157 // released. |
1123 const ui::Accelerator shift_alt_x_press( | 1158 const ui::Accelerator shift_alt_x_press( |
1124 ui::VKEY_X, | 1159 ui::VKEY_X, |
1125 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1160 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1126 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, | 1161 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, |
1127 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1162 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1128 | 1163 |
1129 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1164 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
1130 EXPECT_FALSE(GetController()->Process(shift_alt_x_press)); | 1165 EXPECT_FALSE(ProcessInController(shift_alt_x_press)); |
1131 EXPECT_FALSE(GetController()->Process(shift_alt_x)); | 1166 EXPECT_FALSE(ProcessInController(shift_alt_x)); |
1132 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1167 EXPECT_FALSE(ProcessInController(shift_alt)); |
1133 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1168 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
1134 | 1169 |
1135 // But we _should_ if X is either VKEY_RETURN or VKEY_SPACE. | 1170 // But we _should_ if X is either VKEY_RETURN or VKEY_SPACE. |
1136 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. | 1171 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. |
1137 const ui::Accelerator shift_alt_return_press( | 1172 const ui::Accelerator shift_alt_return_press( |
1138 ui::VKEY_RETURN, | 1173 ui::VKEY_RETURN, |
1139 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1174 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1140 const ReleaseAccelerator shift_alt_return( | 1175 const ReleaseAccelerator shift_alt_return( |
1141 ui::VKEY_RETURN, | 1176 ui::VKEY_RETURN, |
1142 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1177 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1143 | 1178 |
1144 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1179 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
1145 EXPECT_FALSE(GetController()->Process(shift_alt_return_press)); | 1180 EXPECT_FALSE(ProcessInController(shift_alt_return_press)); |
1146 EXPECT_FALSE(GetController()->Process(shift_alt_return)); | 1181 EXPECT_FALSE(ProcessInController(shift_alt_return)); |
1147 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1182 EXPECT_FALSE(ProcessInController(shift_alt)); |
1148 EXPECT_EQ(3, delegate->handle_next_ime_count()); | 1183 EXPECT_EQ(3, delegate->handle_next_ime_count()); |
1149 | 1184 |
1150 const ui::Accelerator shift_alt_space_press( | 1185 const ui::Accelerator shift_alt_space_press( |
1151 ui::VKEY_SPACE, | 1186 ui::VKEY_SPACE, |
1152 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1187 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1153 const ReleaseAccelerator shift_alt_space( | 1188 const ReleaseAccelerator shift_alt_space( |
1154 ui::VKEY_SPACE, | 1189 ui::VKEY_SPACE, |
1155 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1190 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1156 | 1191 |
1157 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1192 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
1158 EXPECT_FALSE(GetController()->Process(shift_alt_space_press)); | 1193 EXPECT_FALSE(ProcessInController(shift_alt_space_press)); |
1159 EXPECT_FALSE(GetController()->Process(shift_alt_space)); | 1194 EXPECT_FALSE(ProcessInController(shift_alt_space)); |
1160 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1195 EXPECT_FALSE(ProcessInController(shift_alt)); |
1161 EXPECT_EQ(4, delegate->handle_next_ime_count()); | 1196 EXPECT_EQ(4, delegate->handle_next_ime_count()); |
1162 } | 1197 } |
1163 | 1198 |
1164 #if defined(OS_CHROMEOS) | 1199 #if defined(OS_CHROMEOS) |
1165 // Test IME shortcuts again with unnormalized accelerators (Chrome OS only). | 1200 // Test IME shortcuts again with unnormalized accelerators (Chrome OS only). |
1166 { | 1201 { |
1167 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); | 1202 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); |
1168 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); | 1203 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); |
1169 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1204 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
1170 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1205 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
1171 | 1206 |
1172 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); | 1207 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); |
1173 GetController()->SetImeControlDelegate( | 1208 GetController()->SetImeControlDelegate( |
1174 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1209 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
1175 EXPECT_EQ(0, delegate->handle_next_ime_count()); | 1210 EXPECT_EQ(0, delegate->handle_next_ime_count()); |
1176 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1211 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
1177 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1212 EXPECT_FALSE(ProcessInController(shift_alt)); |
1178 EXPECT_EQ(1, delegate->handle_next_ime_count()); | 1213 EXPECT_EQ(1, delegate->handle_next_ime_count()); |
1179 EXPECT_FALSE(GetController()->Process(alt_shift_press)); | 1214 EXPECT_FALSE(ProcessInController(alt_shift_press)); |
1180 EXPECT_FALSE(GetController()->Process(alt_shift)); | 1215 EXPECT_FALSE(ProcessInController(alt_shift)); |
1181 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1216 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
1182 | 1217 |
1183 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is | 1218 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is |
1184 // released. | 1219 // released. |
1185 const ui::Accelerator shift_alt_x_press( | 1220 const ui::Accelerator shift_alt_x_press( |
1186 ui::VKEY_X, | 1221 ui::VKEY_X, |
1187 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1222 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1188 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, | 1223 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, |
1189 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1224 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1190 | 1225 |
1191 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1226 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
1192 EXPECT_FALSE(GetController()->Process(shift_alt_x_press)); | 1227 EXPECT_FALSE(ProcessInController(shift_alt_x_press)); |
1193 EXPECT_FALSE(GetController()->Process(shift_alt_x)); | 1228 EXPECT_FALSE(ProcessInController(shift_alt_x)); |
1194 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1229 EXPECT_FALSE(ProcessInController(shift_alt)); |
1195 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1230 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
1196 } | 1231 } |
1197 #endif | 1232 #endif |
1198 } | 1233 } |
1199 | 1234 |
1200 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. | 1235 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. |
1201 TEST_F(AcceleratorControllerTest, ImeGlobalAcceleratorsWorkaround139556) { | 1236 TEST_F(AcceleratorControllerTest, ImeGlobalAcceleratorsWorkaround139556) { |
1202 // The workaround for crbug.com/139556 depends on the fact that we don't | 1237 // The workaround for crbug.com/139556 depends on the fact that we don't |
1203 // use Shift+Alt+Enter/Space with ET_KEY_PRESSED as an accelerator. Test it. | 1238 // use Shift+Alt+Enter/Space with ET_KEY_PRESSED as an accelerator. Test it. |
1204 const ui::Accelerator shift_alt_return_press( | 1239 const ui::Accelerator shift_alt_return_press( |
1205 ui::VKEY_RETURN, | 1240 ui::VKEY_RETURN, |
1206 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1241 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1207 EXPECT_FALSE(GetController()->Process(shift_alt_return_press)); | 1242 EXPECT_FALSE(ProcessInController(shift_alt_return_press)); |
1208 const ui::Accelerator shift_alt_space_press( | 1243 const ui::Accelerator shift_alt_space_press( |
1209 ui::VKEY_SPACE, | 1244 ui::VKEY_SPACE, |
1210 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1245 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
1211 EXPECT_FALSE(GetController()->Process(shift_alt_space_press)); | 1246 EXPECT_FALSE(ProcessInController(shift_alt_space_press)); |
1212 } | 1247 } |
1213 | 1248 |
1214 TEST_F(AcceleratorControllerTest, PreferredReservedAccelerators) { | 1249 TEST_F(AcceleratorControllerTest, PreferredReservedAccelerators) { |
1215 #if defined(OS_CHROMEOS) | 1250 #if defined(OS_CHROMEOS) |
1216 // Power key is reserved on chromeos. | 1251 // Power key is reserved on chromeos. |
1217 EXPECT_TRUE(GetController()->IsReserved( | 1252 EXPECT_TRUE(GetController()->IsReserved( |
1218 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); | 1253 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); |
1219 EXPECT_FALSE(GetController()->IsPreferred( | 1254 EXPECT_FALSE(GetController()->IsPreferred( |
1220 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); | 1255 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); |
1221 #endif | 1256 #endif |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1340 << " for action (disallowed at modal window): " << *it; | 1375 << " for action (disallowed at modal window): " << *it; |
1341 } | 1376 } |
1342 } | 1377 } |
1343 // Testing of top row (F5-F10) accelerators that should still work | 1378 // Testing of top row (F5-F10) accelerators that should still work |
1344 // when a modal window is open | 1379 // when a modal window is open |
1345 // | 1380 // |
1346 // Screenshot | 1381 // Screenshot |
1347 { | 1382 { |
1348 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); | 1383 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); |
1349 delegate->set_can_take_screenshot(false); | 1384 delegate->set_can_take_screenshot(false); |
1350 EXPECT_TRUE(GetController()->Process( | 1385 EXPECT_TRUE(ProcessInController( |
1351 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 1386 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
1352 EXPECT_TRUE( | 1387 EXPECT_TRUE( |
1353 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 1388 ProcessInController(ui::Accelerator( |
1354 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 1389 ui::VKEY_PRINT, ui::EF_NONE))); |
1390 EXPECT_TRUE(ProcessInController(ui::Accelerator( | |
1355 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1391 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
1356 delegate->set_can_take_screenshot(true); | 1392 delegate->set_can_take_screenshot(true); |
1357 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); | 1393 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
1358 EXPECT_TRUE(GetController()->Process( | 1394 EXPECT_TRUE(ProcessInController( |
1359 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 1395 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
1360 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); | 1396 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); |
1361 EXPECT_TRUE( | 1397 EXPECT_TRUE( |
1362 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 1398 ProcessInController(ui::Accelerator( |
1399 ui::VKEY_PRINT, ui::EF_NONE))); | |
1363 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 1400 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
1364 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 1401 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
1365 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1402 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
1366 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 1403 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
1367 } | 1404 } |
1368 // Brightness | 1405 // Brightness |
1369 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); | 1406 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); |
1370 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); | 1407 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); |
1371 { | 1408 { |
1372 DummyBrightnessControlDelegate* delegate = | 1409 DummyBrightnessControlDelegate* delegate = |
1373 new DummyBrightnessControlDelegate(false); | 1410 new DummyBrightnessControlDelegate(false); |
1374 GetController()->SetBrightnessControlDelegate( | 1411 GetController()->SetBrightnessControlDelegate( |
1375 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 1412 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
1376 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 1413 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
1377 EXPECT_FALSE(GetController()->Process(brightness_down)); | 1414 EXPECT_FALSE(ProcessInController(brightness_down)); |
1378 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 1415 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
1379 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 1416 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
1380 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 1417 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
1381 EXPECT_FALSE(GetController()->Process(brightness_up)); | 1418 EXPECT_FALSE(ProcessInController(brightness_up)); |
1382 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 1419 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
1383 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 1420 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
1384 } | 1421 } |
1385 { | 1422 { |
1386 DummyBrightnessControlDelegate* delegate = | 1423 DummyBrightnessControlDelegate* delegate = |
1387 new DummyBrightnessControlDelegate(true); | 1424 new DummyBrightnessControlDelegate(true); |
1388 GetController()->SetBrightnessControlDelegate( | 1425 GetController()->SetBrightnessControlDelegate( |
1389 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 1426 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
1390 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 1427 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
1391 EXPECT_TRUE(GetController()->Process(brightness_down)); | 1428 EXPECT_TRUE(ProcessInController(brightness_down)); |
1392 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 1429 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
1393 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 1430 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
1394 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 1431 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
1395 EXPECT_TRUE(GetController()->Process(brightness_up)); | 1432 EXPECT_TRUE(ProcessInController(brightness_up)); |
1396 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 1433 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
1397 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 1434 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
1398 } | 1435 } |
1399 // Volume | 1436 // Volume |
1400 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 1437 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
1401 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 1438 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
1402 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 1439 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
1403 { | 1440 { |
1404 EXPECT_TRUE(GetController()->Process(volume_mute)); | 1441 EXPECT_TRUE(ProcessInController(volume_mute)); |
1405 EXPECT_TRUE(GetController()->Process(volume_down)); | 1442 EXPECT_TRUE(ProcessInController(volume_down)); |
1406 EXPECT_TRUE(GetController()->Process(volume_up)); | 1443 EXPECT_TRUE(ProcessInController(volume_up)); |
1407 TestVolumeControlDelegate* delegate = | 1444 TestVolumeControlDelegate* delegate = |
1408 new TestVolumeControlDelegate(false); | 1445 new TestVolumeControlDelegate(false); |
1409 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( | 1446 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( |
1410 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 1447 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
1411 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 1448 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
1412 EXPECT_FALSE(GetController()->Process(volume_mute)); | 1449 EXPECT_FALSE(ProcessInController(volume_mute)); |
1413 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 1450 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
1414 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 1451 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
1415 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 1452 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
1416 EXPECT_FALSE(GetController()->Process(volume_down)); | 1453 EXPECT_FALSE(ProcessInController(volume_down)); |
1417 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 1454 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
1418 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 1455 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
1419 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 1456 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
1420 EXPECT_FALSE(GetController()->Process(volume_up)); | 1457 EXPECT_FALSE(ProcessInController(volume_up)); |
1421 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 1458 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
1422 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 1459 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
1423 } | 1460 } |
1424 { | 1461 { |
1425 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate(true); | 1462 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate(true); |
1426 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( | 1463 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( |
1427 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 1464 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
1428 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 1465 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
1429 EXPECT_TRUE(GetController()->Process(volume_mute)); | 1466 EXPECT_TRUE(ProcessInController(volume_mute)); |
1430 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 1467 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
1431 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 1468 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
1432 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 1469 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
1433 EXPECT_TRUE(GetController()->Process(volume_down)); | 1470 EXPECT_TRUE(ProcessInController(volume_down)); |
1434 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 1471 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
1435 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 1472 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
1436 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 1473 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
1437 EXPECT_TRUE(GetController()->Process(volume_up)); | 1474 EXPECT_TRUE(ProcessInController(volume_up)); |
1438 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 1475 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
1439 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 1476 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
1440 } | 1477 } |
1441 } | 1478 } |
1442 #endif | 1479 #endif |
1443 | 1480 |
1444 TEST_F(AcceleratorControllerTest, DisallowedWithNoWindow) { | 1481 TEST_F(AcceleratorControllerTest, DisallowedWithNoWindow) { |
1445 const ui::Accelerator dummy; | 1482 const ui::Accelerator dummy; |
1446 AccessibilityDelegate* delegate = | 1483 AccessibilityDelegate* delegate = |
1447 ash::Shell::GetInstance()->accessibility_delegate(); | 1484 ash::Shell::GetInstance()->accessibility_delegate(); |
(...skipping 23 matching lines...) Expand all Loading... | |
1471 wm::ActivateWindow(window.get()); | 1508 wm::ActivateWindow(window.get()); |
1472 GetController()->PerformAction(WINDOW_MINIMIZE, dummy); | 1509 GetController()->PerformAction(WINDOW_MINIMIZE, dummy); |
1473 delegate->TriggerAccessibilityAlert(ui::A11Y_ALERT_NONE); | 1510 delegate->TriggerAccessibilityAlert(ui::A11Y_ALERT_NONE); |
1474 GetController()->PerformAction(kActionsNeedingWindow[i], dummy); | 1511 GetController()->PerformAction(kActionsNeedingWindow[i], dummy); |
1475 EXPECT_NE(delegate->GetLastAccessibilityAlert(), | 1512 EXPECT_NE(delegate->GetLastAccessibilityAlert(), |
1476 ui::A11Y_ALERT_WINDOW_NEEDED); | 1513 ui::A11Y_ALERT_WINDOW_NEEDED); |
1477 } | 1514 } |
1478 } | 1515 } |
1479 | 1516 |
1480 } // namespace ash | 1517 } // namespace ash |
OLD | NEW |