| 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 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 ~AcceleratorControllerTest() override {} | 220 ~AcceleratorControllerTest() override {} |
| 221 | 221 |
| 222 protected: | 222 protected: |
| 223 void EnableInternalDisplay() { | 223 void EnableInternalDisplay() { |
| 224 test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()). | 224 test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()). |
| 225 SetFirstDisplayAsInternalDisplay(); | 225 SetFirstDisplayAsInternalDisplay(); |
| 226 } | 226 } |
| 227 | 227 |
| 228 static AcceleratorController* GetController(); | 228 static AcceleratorController* GetController(); |
| 229 | 229 |
| 230 static bool ProcessInController(const ui::Accelerator& accelerator) { |
| 231 GetController()->accelerator_history()-> |
| 232 StoreCurrentAccelerator(accelerator); |
| 233 return GetController()->Process(accelerator); |
| 234 } |
| 235 |
| 236 static const ui::Accelerator& GetPreviousAccelerator() { |
| 237 return GetController()->accelerator_history()-> |
| 238 previous_accelerator(); |
| 239 } |
| 240 |
| 241 static const ui::Accelerator& GetCurrentAccelerator() { |
| 242 return GetController()->accelerator_history()-> |
| 243 current_accelerator(); |
| 244 } |
| 245 |
| 230 // Several functions to access ExitWarningHandler (as friend). | 246 // Several functions to access ExitWarningHandler (as friend). |
| 231 static void StubForTest(ExitWarningHandler* ewh) { | 247 static void StubForTest(ExitWarningHandler* ewh) { |
| 232 ewh->stub_timer_for_test_ = true; | 248 ewh->stub_timer_for_test_ = true; |
| 233 } | 249 } |
| 234 static void Reset(ExitWarningHandler* ewh) { | 250 static void Reset(ExitWarningHandler* ewh) { |
| 235 ewh->state_ = ExitWarningHandler::IDLE; | 251 ewh->state_ = ExitWarningHandler::IDLE; |
| 236 } | 252 } |
| 237 static void SimulateTimerExpired(ExitWarningHandler* ewh) { | 253 static void SimulateTimerExpired(ExitWarningHandler* ewh) { |
| 238 ewh->TimerAction(); | 254 ewh->TimerAction(); |
| 239 } | 255 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 // Double press of exit shortcut => exiting | 288 // Double press of exit shortcut => exiting |
| 273 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestDoublePress) { | 289 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestDoublePress) { |
| 274 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); | 290 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); |
| 275 ui::Accelerator release(press); | 291 ui::Accelerator release(press); |
| 276 release.set_type(ui::ET_KEY_RELEASED); | 292 release.set_type(ui::ET_KEY_RELEASED); |
| 277 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 293 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
| 278 ASSERT_TRUE(!!ewh); | 294 ASSERT_TRUE(!!ewh); |
| 279 StubForTest(ewh); | 295 StubForTest(ewh); |
| 280 EXPECT_TRUE(is_idle(ewh)); | 296 EXPECT_TRUE(is_idle(ewh)); |
| 281 EXPECT_FALSE(is_ui_shown(ewh)); | 297 EXPECT_FALSE(is_ui_shown(ewh)); |
| 282 EXPECT_TRUE(GetController()->Process(press)); | 298 EXPECT_TRUE(ProcessInController(press)); |
| 283 EXPECT_FALSE(GetController()->Process(release)); | 299 EXPECT_FALSE(ProcessInController(release)); |
| 284 EXPECT_FALSE(is_idle(ewh)); | 300 EXPECT_FALSE(is_idle(ewh)); |
| 285 EXPECT_TRUE(is_ui_shown(ewh)); | 301 EXPECT_TRUE(is_ui_shown(ewh)); |
| 286 EXPECT_TRUE(GetController()->Process(press)); // second press before timer. | 302 EXPECT_TRUE(ProcessInController(press)); // second press before timer. |
| 287 EXPECT_FALSE(GetController()->Process(release)); | 303 EXPECT_FALSE(ProcessInController(release)); |
| 288 SimulateTimerExpired(ewh); | 304 SimulateTimerExpired(ewh); |
| 289 EXPECT_TRUE(is_exiting(ewh)); | 305 EXPECT_TRUE(is_exiting(ewh)); |
| 290 EXPECT_FALSE(is_ui_shown(ewh)); | 306 EXPECT_FALSE(is_ui_shown(ewh)); |
| 291 Reset(ewh); | 307 Reset(ewh); |
| 292 } | 308 } |
| 293 | 309 |
| 294 // Single press of exit shortcut before timer => idle | 310 // Single press of exit shortcut before timer => idle |
| 295 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestSinglePress) { | 311 TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestSinglePress) { |
| 296 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); | 312 ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); |
| 297 ui::Accelerator release(press); | 313 ui::Accelerator release(press); |
| 298 release.set_type(ui::ET_KEY_RELEASED); | 314 release.set_type(ui::ET_KEY_RELEASED); |
| 299 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 315 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
| 300 ASSERT_TRUE(!!ewh); | 316 ASSERT_TRUE(!!ewh); |
| 301 StubForTest(ewh); | 317 StubForTest(ewh); |
| 302 EXPECT_TRUE(is_idle(ewh)); | 318 EXPECT_TRUE(is_idle(ewh)); |
| 303 EXPECT_FALSE(is_ui_shown(ewh)); | 319 EXPECT_FALSE(is_ui_shown(ewh)); |
| 304 EXPECT_TRUE(GetController()->Process(press)); | 320 EXPECT_TRUE(ProcessInController(press)); |
| 305 EXPECT_FALSE(GetController()->Process(release)); | 321 EXPECT_FALSE(ProcessInController(release)); |
| 306 EXPECT_FALSE(is_idle(ewh)); | 322 EXPECT_FALSE(is_idle(ewh)); |
| 307 EXPECT_TRUE(is_ui_shown(ewh)); | 323 EXPECT_TRUE(is_ui_shown(ewh)); |
| 308 SimulateTimerExpired(ewh); | 324 SimulateTimerExpired(ewh); |
| 309 EXPECT_TRUE(is_idle(ewh)); | 325 EXPECT_TRUE(is_idle(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 // Shutdown ash with exit warning bubble open should not crash. | 330 // Shutdown ash with exit warning bubble open should not crash. |
| 315 TEST_F(AcceleratorControllerTest, LingeringExitWarningBubble) { | 331 TEST_F(AcceleratorControllerTest, LingeringExitWarningBubble) { |
| 316 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 332 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
| 317 ASSERT_TRUE(!!ewh); | 333 ASSERT_TRUE(!!ewh); |
| 318 StubForTest(ewh); | 334 StubForTest(ewh); |
| 319 | 335 |
| 320 // Trigger once to show the bubble. | 336 // Trigger once to show the bubble. |
| 321 ewh->HandleAccelerator(); | 337 ewh->HandleAccelerator(); |
| 322 EXPECT_FALSE(is_idle(ewh)); | 338 EXPECT_FALSE(is_idle(ewh)); |
| 323 EXPECT_TRUE(is_ui_shown(ewh)); | 339 EXPECT_TRUE(is_ui_shown(ewh)); |
| 324 | 340 |
| 325 // Exit ash and there should be no crash | 341 // Exit ash and there should be no crash |
| 326 } | 342 } |
| 327 #endif // !defined(OS_WIN) | 343 #endif // !defined(OS_WIN) |
| 328 | 344 |
| 329 TEST_F(AcceleratorControllerTest, Register) { | 345 TEST_F(AcceleratorControllerTest, Register) { |
| 330 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 346 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
| 331 TestTarget target; | 347 TestTarget target; |
| 332 GetController()->Register(accelerator_a, &target); | 348 GetController()->Register(accelerator_a, &target); |
| 333 | 349 |
| 334 // The registered accelerator is processed. | 350 // The registered accelerator is processed. |
| 335 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 351 EXPECT_TRUE(ProcessInController(accelerator_a)); |
| 336 EXPECT_EQ(1, target.accelerator_pressed_count()); | 352 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 337 } | 353 } |
| 338 | 354 |
| 339 TEST_F(AcceleratorControllerTest, RegisterMultipleTarget) { | 355 TEST_F(AcceleratorControllerTest, RegisterMultipleTarget) { |
| 340 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 356 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
| 341 TestTarget target1; | 357 TestTarget target1; |
| 342 GetController()->Register(accelerator_a, &target1); | 358 GetController()->Register(accelerator_a, &target1); |
| 343 TestTarget target2; | 359 TestTarget target2; |
| 344 GetController()->Register(accelerator_a, &target2); | 360 GetController()->Register(accelerator_a, &target2); |
| 345 | 361 |
| 346 // If multiple targets are registered with the same accelerator, the target | 362 // If multiple targets are registered with the same accelerator, the target |
| 347 // registered later processes the accelerator. | 363 // registered later processes the accelerator. |
| 348 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 364 EXPECT_TRUE(ProcessInController(accelerator_a)); |
| 349 EXPECT_EQ(0, target1.accelerator_pressed_count()); | 365 EXPECT_EQ(0, target1.accelerator_pressed_count()); |
| 350 EXPECT_EQ(1, target2.accelerator_pressed_count()); | 366 EXPECT_EQ(1, target2.accelerator_pressed_count()); |
| 351 } | 367 } |
| 352 | 368 |
| 353 TEST_F(AcceleratorControllerTest, Unregister) { | 369 TEST_F(AcceleratorControllerTest, Unregister) { |
| 354 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 370 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
| 355 TestTarget target; | 371 TestTarget target; |
| 356 GetController()->Register(accelerator_a, &target); | 372 GetController()->Register(accelerator_a, &target); |
| 357 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 373 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); |
| 358 GetController()->Register(accelerator_b, &target); | 374 GetController()->Register(accelerator_b, &target); |
| 359 | 375 |
| 360 // Unregistering a different accelerator does not affect the other | 376 // Unregistering a different accelerator does not affect the other |
| 361 // accelerator. | 377 // accelerator. |
| 362 GetController()->Unregister(accelerator_b, &target); | 378 GetController()->Unregister(accelerator_b, &target); |
| 363 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 379 EXPECT_TRUE(ProcessInController(accelerator_a)); |
| 364 EXPECT_EQ(1, target.accelerator_pressed_count()); | 380 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 365 | 381 |
| 366 // The unregistered accelerator is no longer processed. | 382 // The unregistered accelerator is no longer processed. |
| 367 target.reset(); | 383 target.reset(); |
| 368 GetController()->Unregister(accelerator_a, &target); | 384 GetController()->Unregister(accelerator_a, &target); |
| 369 EXPECT_FALSE(GetController()->Process(accelerator_a)); | 385 EXPECT_FALSE(ProcessInController(accelerator_a)); |
| 370 EXPECT_EQ(0, target.accelerator_pressed_count()); | 386 EXPECT_EQ(0, target.accelerator_pressed_count()); |
| 371 } | 387 } |
| 372 | 388 |
| 373 TEST_F(AcceleratorControllerTest, UnregisterAll) { | 389 TEST_F(AcceleratorControllerTest, UnregisterAll) { |
| 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 target1; | 391 TestTarget target1; |
| 376 GetController()->Register(accelerator_a, &target1); | 392 GetController()->Register(accelerator_a, &target1); |
| 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, &target1); | 394 GetController()->Register(accelerator_b, &target1); |
| 379 const ui::Accelerator accelerator_c(ui::VKEY_C, ui::EF_NONE); | 395 const ui::Accelerator accelerator_c(ui::VKEY_C, ui::EF_NONE); |
| 380 TestTarget target2; | 396 TestTarget target2; |
| 381 GetController()->Register(accelerator_c, &target2); | 397 GetController()->Register(accelerator_c, &target2); |
| 382 GetController()->UnregisterAll(&target1); | 398 GetController()->UnregisterAll(&target1); |
| 383 | 399 |
| 384 // All the accelerators registered for |target1| are no longer processed. | 400 // All the accelerators registered for |target1| are no longer processed. |
| 385 EXPECT_FALSE(GetController()->Process(accelerator_a)); | 401 EXPECT_FALSE(ProcessInController(accelerator_a)); |
| 386 EXPECT_FALSE(GetController()->Process(accelerator_b)); | 402 EXPECT_FALSE(ProcessInController(accelerator_b)); |
| 387 EXPECT_EQ(0, target1.accelerator_pressed_count()); | 403 EXPECT_EQ(0, target1.accelerator_pressed_count()); |
| 388 | 404 |
| 389 // UnregisterAll with a different target does not affect the other target. | 405 // UnregisterAll with a different target does not affect the other target. |
| 390 EXPECT_TRUE(GetController()->Process(accelerator_c)); | 406 EXPECT_TRUE(ProcessInController(accelerator_c)); |
| 391 EXPECT_EQ(1, target2.accelerator_pressed_count()); | 407 EXPECT_EQ(1, target2.accelerator_pressed_count()); |
| 392 } | 408 } |
| 393 | 409 |
| 394 TEST_F(AcceleratorControllerTest, Process) { | 410 TEST_F(AcceleratorControllerTest, Process) { |
| 395 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 411 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
| 396 TestTarget target1; | 412 TestTarget target1; |
| 397 GetController()->Register(accelerator_a, &target1); | 413 GetController()->Register(accelerator_a, &target1); |
| 398 | 414 |
| 399 // The registered accelerator is processed. | 415 // The registered accelerator is processed. |
| 400 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 416 EXPECT_TRUE(ProcessInController(accelerator_a)); |
| 401 EXPECT_EQ(1, target1.accelerator_pressed_count()); | 417 EXPECT_EQ(1, target1.accelerator_pressed_count()); |
| 402 | 418 |
| 403 // The non-registered accelerator is not processed. | 419 // The non-registered accelerator is not processed. |
| 404 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); | 420 const ui::Accelerator accelerator_b(ui::VKEY_B, ui::EF_NONE); |
| 405 EXPECT_FALSE(GetController()->Process(accelerator_b)); | 421 EXPECT_FALSE(ProcessInController(accelerator_b)); |
| 406 } | 422 } |
| 407 | 423 |
| 408 TEST_F(AcceleratorControllerTest, IsRegistered) { | 424 TEST_F(AcceleratorControllerTest, IsRegistered) { |
| 409 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); | 425 const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE); |
| 410 const ui::Accelerator accelerator_shift_a(ui::VKEY_A, ui::EF_SHIFT_DOWN); | 426 const ui::Accelerator accelerator_shift_a(ui::VKEY_A, ui::EF_SHIFT_DOWN); |
| 411 TestTarget target; | 427 TestTarget target; |
| 412 GetController()->Register(accelerator_a, &target); | 428 GetController()->Register(accelerator_a, &target); |
| 413 EXPECT_TRUE(GetController()->IsRegistered(accelerator_a)); | 429 EXPECT_TRUE(GetController()->IsRegistered(accelerator_a)); |
| 414 EXPECT_FALSE(GetController()->IsRegistered(accelerator_shift_a)); | 430 EXPECT_FALSE(GetController()->IsRegistered(accelerator_shift_a)); |
| 415 GetController()->UnregisterAll(&target); | 431 GetController()->UnregisterAll(&target); |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 EXPECT_EQ(4, target_a.accelerator_pressed_count()); | 704 EXPECT_EQ(4, target_a.accelerator_pressed_count()); |
| 689 EXPECT_EQ(4, target_a.accelerator_repeat_count()); | 705 EXPECT_EQ(4, target_a.accelerator_repeat_count()); |
| 690 } | 706 } |
| 691 | 707 |
| 692 TEST_F(AcceleratorControllerTest, Previous) { | 708 TEST_F(AcceleratorControllerTest, Previous) { |
| 693 ui::test::EventGenerator& generator = GetEventGenerator(); | 709 ui::test::EventGenerator& generator = GetEventGenerator(); |
| 694 generator.PressKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 710 generator.PressKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 695 generator.ReleaseKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 711 generator.ReleaseKey(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 696 | 712 |
| 697 EXPECT_EQ(ui::VKEY_VOLUME_MUTE, | 713 EXPECT_EQ(ui::VKEY_VOLUME_MUTE, |
| 698 GetController()->previous_accelerator_for_test().key_code()); | 714 GetPreviousAccelerator().key_code()); |
| 699 EXPECT_EQ(ui::EF_NONE, | 715 EXPECT_EQ(ui::EF_NONE, |
| 700 GetController()->previous_accelerator_for_test().modifiers()); | 716 GetPreviousAccelerator().modifiers()); |
| 701 | 717 |
| 702 generator.PressKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); | 718 generator.PressKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); |
| 703 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); | 719 generator.ReleaseKey(ui::VKEY_TAB, ui::EF_CONTROL_DOWN); |
| 704 | 720 |
| 705 EXPECT_EQ(ui::VKEY_TAB, | 721 EXPECT_EQ(ui::VKEY_TAB, |
| 706 GetController()->previous_accelerator_for_test().key_code()); | 722 GetPreviousAccelerator().key_code()); |
| 707 EXPECT_EQ(ui::EF_CONTROL_DOWN, | 723 EXPECT_EQ(ui::EF_CONTROL_DOWN, |
| 708 GetController()->previous_accelerator_for_test().modifiers()); | 724 GetPreviousAccelerator().modifiers()); |
| 709 } | 725 } |
| 710 | 726 |
| 711 TEST_F(AcceleratorControllerTest, DontRepeatToggleFullscreen) { | 727 TEST_F(AcceleratorControllerTest, DontRepeatToggleFullscreen) { |
| 712 const AcceleratorData accelerators[] = { | 728 const AcceleratorData accelerators[] = { |
| 713 {true, ui::VKEY_J, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, | 729 {true, ui::VKEY_J, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, |
| 714 {true, ui::VKEY_K, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, | 730 {true, ui::VKEY_K, ui::EF_ALT_DOWN, TOGGLE_FULLSCREEN}, |
| 715 }; | 731 }; |
| 716 GetController()->RegisterAccelerators(accelerators, arraysize(accelerators)); | 732 GetController()->RegisterAccelerators(accelerators, arraysize(accelerators)); |
| 717 | 733 |
| 718 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); | 734 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 793 key_event3.SetTranslated(true); | 809 key_event3.SetTranslated(true); |
| 794 details = dispatcher->OnEventFromSource(&key_event3); | 810 details = dispatcher->OnEventFromSource(&key_event3); |
| 795 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed); | 811 EXPECT_FALSE(key_event3.handled() || details.dispatcher_destroyed); |
| 796 #endif | 812 #endif |
| 797 EXPECT_EQ(1, target.accelerator_pressed_count()); | 813 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 798 } | 814 } |
| 799 #endif | 815 #endif |
| 800 | 816 |
| 801 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { | 817 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { |
| 802 // CycleBackward | 818 // CycleBackward |
| 803 EXPECT_TRUE(GetController()->Process( | 819 EXPECT_TRUE(ProcessInController( |
| 804 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); | 820 ui::Accelerator(ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); |
| 805 // CycleForward | 821 // CycleForward |
| 806 EXPECT_TRUE( | 822 EXPECT_TRUE( |
| 807 GetController()->Process(ui::Accelerator(ui::VKEY_TAB, ui::EF_ALT_DOWN))); | 823 ProcessInController(ui::Accelerator( |
| 824 ui::VKEY_TAB, ui::EF_ALT_DOWN))); |
| 808 // CycleLinear | 825 // CycleLinear |
| 809 EXPECT_TRUE(GetController()->Process( | 826 EXPECT_TRUE(ProcessInController( |
| 810 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE))); | 827 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE))); |
| 811 | 828 |
| 812 #if defined(OS_CHROMEOS) | 829 #if defined(OS_CHROMEOS) |
| 813 // The "Take Screenshot", "Take Partial Screenshot", volume, brightness, and | 830 // The "Take Screenshot", "Take Partial Screenshot", volume, brightness, and |
| 814 // keyboard brightness accelerators are only defined on ChromeOS. | 831 // keyboard brightness accelerators are only defined on ChromeOS. |
| 815 { | 832 { |
| 816 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); | 833 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); |
| 817 delegate->set_can_take_screenshot(false); | 834 delegate->set_can_take_screenshot(false); |
| 818 EXPECT_TRUE(GetController()->Process( | 835 EXPECT_TRUE(ProcessInController( |
| 819 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 836 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
| 820 EXPECT_TRUE( | 837 EXPECT_TRUE( |
| 821 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 838 ProcessInController(ui::Accelerator( |
| 822 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 839 ui::VKEY_PRINT, ui::EF_NONE))); |
| 840 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
| 823 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 841 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 824 | 842 |
| 825 delegate->set_can_take_screenshot(true); | 843 delegate->set_can_take_screenshot(true); |
| 826 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); | 844 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
| 827 EXPECT_TRUE(GetController()->Process( | 845 EXPECT_TRUE(ProcessInController( |
| 828 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 846 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
| 829 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); | 847 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); |
| 830 EXPECT_TRUE( | 848 EXPECT_TRUE( |
| 831 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 849 ProcessInController(ui::Accelerator( |
| 850 ui::VKEY_PRINT, ui::EF_NONE))); |
| 832 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 851 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 833 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 852 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
| 834 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 853 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 835 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 854 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 836 } | 855 } |
| 837 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 856 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 838 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 857 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
| 839 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 858 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
| 840 { | 859 { |
| 841 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; | 860 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; |
| 842 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( | 861 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( |
| 843 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 862 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
| 844 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 863 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 845 EXPECT_TRUE(GetController()->Process(volume_mute)); | 864 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 846 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 865 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
| 847 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 866 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
| 848 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 867 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 849 EXPECT_TRUE(GetController()->Process(volume_down)); | 868 EXPECT_TRUE(ProcessInController(volume_down)); |
| 850 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 869 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 851 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 870 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
| 852 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 871 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| 853 EXPECT_TRUE(GetController()->Process(volume_up)); | 872 EXPECT_TRUE(ProcessInController(volume_up)); |
| 854 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 873 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
| 855 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 874 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
| 856 } | 875 } |
| 857 // Brightness | 876 // Brightness |
| 858 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. | 877 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. |
| 859 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); | 878 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); |
| 860 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); | 879 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); |
| 861 { | 880 { |
| 862 DummyBrightnessControlDelegate* delegate = | 881 DummyBrightnessControlDelegate* delegate = |
| 863 new DummyBrightnessControlDelegate; | 882 new DummyBrightnessControlDelegate; |
| 864 GetController()->SetBrightnessControlDelegate( | 883 GetController()->SetBrightnessControlDelegate( |
| 865 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 884 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
| 866 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 885 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
| 867 EXPECT_TRUE(GetController()->Process(brightness_down)); | 886 EXPECT_TRUE(ProcessInController(brightness_down)); |
| 868 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 887 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| 869 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 888 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
| 870 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 889 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| 871 EXPECT_TRUE(GetController()->Process(brightness_up)); | 890 EXPECT_TRUE(ProcessInController(brightness_up)); |
| 872 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 891 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
| 873 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 892 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
| 874 } | 893 } |
| 875 | 894 |
| 876 // Keyboard brightness | 895 // Keyboard brightness |
| 877 const ui::Accelerator alt_brightness_down(ui::VKEY_BRIGHTNESS_DOWN, | 896 const ui::Accelerator alt_brightness_down(ui::VKEY_BRIGHTNESS_DOWN, |
| 878 ui::EF_ALT_DOWN); | 897 ui::EF_ALT_DOWN); |
| 879 const ui::Accelerator alt_brightness_up(ui::VKEY_BRIGHTNESS_UP, | 898 const ui::Accelerator alt_brightness_up(ui::VKEY_BRIGHTNESS_UP, |
| 880 ui::EF_ALT_DOWN); | 899 ui::EF_ALT_DOWN); |
| 881 { | 900 { |
| 882 EXPECT_TRUE(GetController()->Process(alt_brightness_down)); | 901 EXPECT_TRUE(ProcessInController(alt_brightness_down)); |
| 883 EXPECT_TRUE(GetController()->Process(alt_brightness_up)); | 902 EXPECT_TRUE(ProcessInController(alt_brightness_up)); |
| 884 DummyKeyboardBrightnessControlDelegate* delegate = | 903 DummyKeyboardBrightnessControlDelegate* delegate = |
| 885 new DummyKeyboardBrightnessControlDelegate; | 904 new DummyKeyboardBrightnessControlDelegate; |
| 886 GetController()->SetKeyboardBrightnessControlDelegate( | 905 GetController()->SetKeyboardBrightnessControlDelegate( |
| 887 scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); | 906 scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); |
| 888 EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); | 907 EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); |
| 889 EXPECT_TRUE(GetController()->Process(alt_brightness_down)); | 908 EXPECT_TRUE(ProcessInController(alt_brightness_down)); |
| 890 EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); | 909 EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); |
| 891 EXPECT_EQ(alt_brightness_down, delegate->last_accelerator()); | 910 EXPECT_EQ(alt_brightness_down, delegate->last_accelerator()); |
| 892 EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); | 911 EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); |
| 893 EXPECT_TRUE(GetController()->Process(alt_brightness_up)); | 912 EXPECT_TRUE(ProcessInController(alt_brightness_up)); |
| 894 EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); | 913 EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); |
| 895 EXPECT_EQ(alt_brightness_up, delegate->last_accelerator()); | 914 EXPECT_EQ(alt_brightness_up, delegate->last_accelerator()); |
| 896 } | 915 } |
| 897 #endif | 916 #endif |
| 898 | 917 |
| 899 #if !defined(OS_WIN) | 918 #if !defined(OS_WIN) |
| 900 // Exit | 919 // Exit |
| 901 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); | 920 ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest(); |
| 902 ASSERT_TRUE(!!ewh); | 921 ASSERT_TRUE(!!ewh); |
| 903 StubForTest(ewh); | 922 StubForTest(ewh); |
| 904 EXPECT_TRUE(is_idle(ewh)); | 923 EXPECT_TRUE(is_idle(ewh)); |
| 905 EXPECT_FALSE(is_ui_shown(ewh)); | 924 EXPECT_FALSE(is_ui_shown(ewh)); |
| 906 EXPECT_TRUE(GetController()->Process( | 925 EXPECT_TRUE(ProcessInController( |
| 907 ui::Accelerator(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 926 ui::Accelerator(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 908 EXPECT_FALSE(is_idle(ewh)); | 927 EXPECT_FALSE(is_idle(ewh)); |
| 909 EXPECT_TRUE(is_ui_shown(ewh)); | 928 EXPECT_TRUE(is_ui_shown(ewh)); |
| 910 SimulateTimerExpired(ewh); | 929 SimulateTimerExpired(ewh); |
| 911 EXPECT_TRUE(is_idle(ewh)); | 930 EXPECT_TRUE(is_idle(ewh)); |
| 912 EXPECT_FALSE(is_ui_shown(ewh)); | 931 EXPECT_FALSE(is_ui_shown(ewh)); |
| 913 Reset(ewh); | 932 Reset(ewh); |
| 914 #endif | 933 #endif |
| 915 | 934 |
| 916 // New tab | 935 // New tab |
| 917 EXPECT_TRUE(GetController()->Process( | 936 EXPECT_TRUE(ProcessInController( |
| 918 ui::Accelerator(ui::VKEY_T, ui::EF_CONTROL_DOWN))); | 937 ui::Accelerator(ui::VKEY_T, ui::EF_CONTROL_DOWN))); |
| 919 | 938 |
| 920 // New incognito window | 939 // New incognito window |
| 921 EXPECT_TRUE(GetController()->Process( | 940 EXPECT_TRUE(ProcessInController( |
| 922 ui::Accelerator(ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 941 ui::Accelerator(ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 923 | 942 |
| 924 // New window | 943 // New window |
| 925 EXPECT_TRUE(GetController()->Process( | 944 EXPECT_TRUE(ProcessInController( |
| 926 ui::Accelerator(ui::VKEY_N, ui::EF_CONTROL_DOWN))); | 945 ui::Accelerator(ui::VKEY_N, ui::EF_CONTROL_DOWN))); |
| 927 | 946 |
| 928 // Restore tab | 947 // Restore tab |
| 929 EXPECT_TRUE(GetController()->Process( | 948 EXPECT_TRUE(ProcessInController( |
| 930 ui::Accelerator(ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 949 ui::Accelerator(ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 931 | 950 |
| 932 // Show task manager | 951 // Show task manager |
| 933 EXPECT_TRUE(GetController()->Process( | 952 EXPECT_TRUE(ProcessInController( |
| 934 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN))); | 953 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN))); |
| 935 | 954 |
| 936 #if defined(OS_CHROMEOS) | 955 #if defined(OS_CHROMEOS) |
| 937 // Open file manager | 956 // Open file manager |
| 938 EXPECT_TRUE(GetController()->Process( | 957 EXPECT_TRUE(ProcessInController( |
| 939 ui::Accelerator(ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); | 958 ui::Accelerator(ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN))); |
| 940 | 959 |
| 941 // Lock screen | 960 // Lock screen |
| 942 // NOTE: Accelerators that do not work on the lock screen need to be | 961 // NOTE: Accelerators that do not work on the lock screen need to be |
| 943 // tested before the sequence below is invoked because it causes a side | 962 // tested before the sequence below is invoked because it causes a side |
| 944 // effect of locking the screen. | 963 // effect of locking the screen. |
| 945 EXPECT_TRUE(GetController()->Process( | 964 EXPECT_TRUE(ProcessInController( |
| 946 ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 965 ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 947 #endif | 966 #endif |
| 948 } | 967 } |
| 949 | 968 |
| 950 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsToggleAppList) { | 969 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsToggleAppList) { |
| 951 AccessibilityDelegate* delegate = | 970 AccessibilityDelegate* delegate = |
| 952 ash::Shell::GetInstance()->accessibility_delegate(); | 971 ash::Shell::GetInstance()->accessibility_delegate(); |
| 953 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 972 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 954 | 973 |
| 955 // The press event should not open the AppList, the release should instead. | 974 // The press event should not open the AppList, the release should instead. |
| 956 EXPECT_FALSE( | 975 EXPECT_FALSE( |
| 957 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 976 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 958 EXPECT_EQ(ui::VKEY_LWIN, | 977 EXPECT_EQ(ui::VKEY_LWIN, |
| 959 GetController()->previous_accelerator_for_test().key_code()); | 978 GetCurrentAccelerator().key_code()); |
| 979 |
| 980 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 960 | 981 |
| 961 EXPECT_TRUE( | 982 EXPECT_TRUE( |
| 962 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 983 ProcessInController(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 963 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 984 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 964 | 985 |
| 986 EXPECT_EQ(ui::VKEY_LWIN, |
| 987 GetPreviousAccelerator().key_code()); |
| 988 |
| 965 // When spoken feedback is on, the AppList should not toggle. | 989 // When spoken feedback is on, the AppList should not toggle. |
| 966 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 990 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
| 967 EXPECT_FALSE( | 991 EXPECT_FALSE( |
| 968 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 992 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 969 EXPECT_FALSE( | 993 EXPECT_FALSE( |
| 970 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 994 ProcessInController(ReleaseAccelerator( |
| 995 ui::VKEY_LWIN, ui::EF_NONE))); |
| 971 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 996 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
| 972 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 997 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 973 | 998 |
| 974 EXPECT_FALSE( | 999 EXPECT_FALSE( |
| 975 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1000 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 976 EXPECT_TRUE( | 1001 EXPECT_TRUE( |
| 977 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1002 ProcessInController(ReleaseAccelerator( |
| 1003 ui::VKEY_LWIN, ui::EF_NONE))); |
| 978 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 1004 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 979 | 1005 |
| 980 // When spoken feedback is on, the AppList should not toggle. | 1006 // When spoken feedback is on, the AppList should not toggle. |
| 981 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 1007 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
| 982 EXPECT_FALSE( | 1008 EXPECT_FALSE( |
| 983 GetController()->Process(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1009 ProcessInController(ui::Accelerator(ui::VKEY_LWIN, ui::EF_NONE))); |
| 984 EXPECT_FALSE( | 1010 EXPECT_FALSE( |
| 985 GetController()->Process(ReleaseAccelerator(ui::VKEY_LWIN, ui::EF_NONE))); | 1011 ProcessInController(ReleaseAccelerator( |
| 1012 ui::VKEY_LWIN, ui::EF_NONE))); |
| 986 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); | 1013 delegate->ToggleSpokenFeedback(ui::A11Y_NOTIFICATION_NONE); |
| 987 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); | 1014 EXPECT_FALSE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 1015 |
| 1016 #if defined(OS_CHROMEOS) |
| 1017 // The press of VKEY_BROWSER_SEARCH should toggle the AppList |
| 1018 EXPECT_TRUE(ProcessInController(ui::Accelerator(ui::VKEY_BROWSER_SEARCH, |
| 1019 ui::EF_NONE))); |
| 1020 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 1021 EXPECT_FALSE(ProcessInController(ReleaseAccelerator(ui::VKEY_BROWSER_SEARCH, |
| 1022 ui::EF_NONE))); |
| 1023 EXPECT_TRUE(ash::Shell::GetInstance()->GetAppListTargetVisibility()); |
| 1024 #endif |
| 988 } | 1025 } |
| 989 | 1026 |
| 990 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { | 1027 TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) { |
| 991 // Test IME shortcuts. | 1028 // Test IME shortcuts. |
| 992 { | 1029 { |
| 993 const ui::Accelerator control_space(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); | 1030 const ui::Accelerator control_space(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN); |
| 994 const ui::Accelerator convert(ui::VKEY_CONVERT, ui::EF_NONE); | 1031 const ui::Accelerator convert(ui::VKEY_CONVERT, ui::EF_NONE); |
| 995 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, ui::EF_NONE); | 1032 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, ui::EF_NONE); |
| 996 const ui::Accelerator wide_half_1(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE); | 1033 const ui::Accelerator wide_half_1(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE); |
| 997 const ui::Accelerator wide_half_2(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE); | 1034 const ui::Accelerator wide_half_2(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE); |
| 998 const ui::Accelerator hangul(ui::VKEY_HANGUL, ui::EF_NONE); | 1035 const ui::Accelerator hangul(ui::VKEY_HANGUL, ui::EF_NONE); |
| 999 EXPECT_FALSE(GetController()->Process(control_space)); | 1036 EXPECT_FALSE(ProcessInController(control_space)); |
| 1000 EXPECT_FALSE(GetController()->Process(convert)); | 1037 EXPECT_FALSE(ProcessInController(convert)); |
| 1001 EXPECT_FALSE(GetController()->Process(non_convert)); | 1038 EXPECT_FALSE(ProcessInController(non_convert)); |
| 1002 EXPECT_FALSE(GetController()->Process(wide_half_1)); | 1039 EXPECT_FALSE(ProcessInController(wide_half_1)); |
| 1003 EXPECT_FALSE(GetController()->Process(wide_half_2)); | 1040 EXPECT_FALSE(ProcessInController(wide_half_2)); |
| 1004 EXPECT_FALSE(GetController()->Process(hangul)); | 1041 EXPECT_FALSE(ProcessInController(hangul)); |
| 1005 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; | 1042 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; |
| 1006 GetController()->SetImeControlDelegate( | 1043 GetController()->SetImeControlDelegate( |
| 1007 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1044 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
| 1008 EXPECT_EQ(0, delegate->handle_previous_ime_count()); | 1045 EXPECT_EQ(0, delegate->handle_previous_ime_count()); |
| 1009 EXPECT_TRUE(GetController()->Process(control_space)); | 1046 EXPECT_TRUE(ProcessInController(control_space)); |
| 1010 EXPECT_EQ(1, delegate->handle_previous_ime_count()); | 1047 EXPECT_EQ(1, delegate->handle_previous_ime_count()); |
| 1011 EXPECT_EQ(0, delegate->handle_switch_ime_count()); | 1048 EXPECT_EQ(0, delegate->handle_switch_ime_count()); |
| 1012 EXPECT_TRUE(GetController()->Process(convert)); | 1049 EXPECT_TRUE(ProcessInController(convert)); |
| 1013 EXPECT_EQ(1, delegate->handle_switch_ime_count()); | 1050 EXPECT_EQ(1, delegate->handle_switch_ime_count()); |
| 1014 EXPECT_TRUE(GetController()->Process(non_convert)); | 1051 EXPECT_TRUE(ProcessInController(non_convert)); |
| 1015 EXPECT_EQ(2, delegate->handle_switch_ime_count()); | 1052 EXPECT_EQ(2, delegate->handle_switch_ime_count()); |
| 1016 EXPECT_TRUE(GetController()->Process(wide_half_1)); | 1053 EXPECT_TRUE(ProcessInController(wide_half_1)); |
| 1017 EXPECT_EQ(3, delegate->handle_switch_ime_count()); | 1054 EXPECT_EQ(3, delegate->handle_switch_ime_count()); |
| 1018 EXPECT_TRUE(GetController()->Process(wide_half_2)); | 1055 EXPECT_TRUE(ProcessInController(wide_half_2)); |
| 1019 EXPECT_EQ(4, delegate->handle_switch_ime_count()); | 1056 EXPECT_EQ(4, delegate->handle_switch_ime_count()); |
| 1020 EXPECT_TRUE(GetController()->Process(hangul)); | 1057 EXPECT_TRUE(ProcessInController(hangul)); |
| 1021 EXPECT_EQ(5, delegate->handle_switch_ime_count()); | 1058 EXPECT_EQ(5, delegate->handle_switch_ime_count()); |
| 1022 } | 1059 } |
| 1023 | 1060 |
| 1024 // Test IME shortcuts that are triggered on key release. | 1061 // Test IME shortcuts that are triggered on key release. |
| 1025 { | 1062 { |
| 1026 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, | 1063 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, |
| 1027 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1064 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1028 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); | 1065 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); |
| 1029 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, | 1066 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, |
| 1030 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1067 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1031 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1068 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
| 1032 | 1069 |
| 1033 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; | 1070 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; |
| 1034 GetController()->SetImeControlDelegate( | 1071 GetController()->SetImeControlDelegate( |
| 1035 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1072 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
| 1036 EXPECT_EQ(0, delegate->handle_next_ime_count()); | 1073 EXPECT_EQ(0, delegate->handle_next_ime_count()); |
| 1037 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1074 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
| 1038 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1075 EXPECT_FALSE(ProcessInController(shift_alt)); |
| 1039 EXPECT_EQ(1, delegate->handle_next_ime_count()); | 1076 EXPECT_EQ(1, delegate->handle_next_ime_count()); |
| 1040 EXPECT_FALSE(GetController()->Process(alt_shift_press)); | 1077 EXPECT_FALSE(ProcessInController(alt_shift_press)); |
| 1041 EXPECT_FALSE(GetController()->Process(alt_shift)); | 1078 EXPECT_FALSE(ProcessInController(alt_shift)); |
| 1042 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1079 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
| 1043 | 1080 |
| 1044 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is | 1081 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is |
| 1045 // released. | 1082 // released. |
| 1046 const ui::Accelerator shift_alt_x_press( | 1083 const ui::Accelerator shift_alt_x_press( |
| 1047 ui::VKEY_X, | 1084 ui::VKEY_X, |
| 1048 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1085 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1049 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, | 1086 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, |
| 1050 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1087 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1051 | 1088 |
| 1052 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1089 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
| 1053 EXPECT_FALSE(GetController()->Process(shift_alt_x_press)); | 1090 EXPECT_FALSE(ProcessInController(shift_alt_x_press)); |
| 1054 EXPECT_FALSE(GetController()->Process(shift_alt_x)); | 1091 EXPECT_FALSE(ProcessInController(shift_alt_x)); |
| 1055 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1092 EXPECT_FALSE(ProcessInController(shift_alt)); |
| 1056 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1093 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
| 1057 | 1094 |
| 1058 // But we _should_ if X is either VKEY_RETURN or VKEY_SPACE. | 1095 // But we _should_ if X is either VKEY_RETURN or VKEY_SPACE. |
| 1059 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. | 1096 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. |
| 1060 const ui::Accelerator shift_alt_return_press( | 1097 const ui::Accelerator shift_alt_return_press( |
| 1061 ui::VKEY_RETURN, | 1098 ui::VKEY_RETURN, |
| 1062 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1099 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1063 const ReleaseAccelerator shift_alt_return( | 1100 const ReleaseAccelerator shift_alt_return( |
| 1064 ui::VKEY_RETURN, | 1101 ui::VKEY_RETURN, |
| 1065 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1102 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1066 | 1103 |
| 1067 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1104 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
| 1068 EXPECT_FALSE(GetController()->Process(shift_alt_return_press)); | 1105 EXPECT_FALSE(ProcessInController(shift_alt_return_press)); |
| 1069 EXPECT_FALSE(GetController()->Process(shift_alt_return)); | 1106 EXPECT_FALSE(ProcessInController(shift_alt_return)); |
| 1070 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1107 EXPECT_FALSE(ProcessInController(shift_alt)); |
| 1071 EXPECT_EQ(3, delegate->handle_next_ime_count()); | 1108 EXPECT_EQ(3, delegate->handle_next_ime_count()); |
| 1072 | 1109 |
| 1073 const ui::Accelerator shift_alt_space_press( | 1110 const ui::Accelerator shift_alt_space_press( |
| 1074 ui::VKEY_SPACE, | 1111 ui::VKEY_SPACE, |
| 1075 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1112 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1076 const ReleaseAccelerator shift_alt_space( | 1113 const ReleaseAccelerator shift_alt_space( |
| 1077 ui::VKEY_SPACE, | 1114 ui::VKEY_SPACE, |
| 1078 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1115 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1079 | 1116 |
| 1080 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1117 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
| 1081 EXPECT_FALSE(GetController()->Process(shift_alt_space_press)); | 1118 EXPECT_FALSE(ProcessInController(shift_alt_space_press)); |
| 1082 EXPECT_FALSE(GetController()->Process(shift_alt_space)); | 1119 EXPECT_FALSE(ProcessInController(shift_alt_space)); |
| 1083 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1120 EXPECT_FALSE(ProcessInController(shift_alt)); |
| 1084 EXPECT_EQ(4, delegate->handle_next_ime_count()); | 1121 EXPECT_EQ(4, delegate->handle_next_ime_count()); |
| 1085 } | 1122 } |
| 1086 | 1123 |
| 1087 #if defined(OS_CHROMEOS) | 1124 #if defined(OS_CHROMEOS) |
| 1088 // Test IME shortcuts again with unnormalized accelerators (Chrome OS only). | 1125 // Test IME shortcuts again with unnormalized accelerators (Chrome OS only). |
| 1089 { | 1126 { |
| 1090 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); | 1127 const ui::Accelerator shift_alt_press(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); |
| 1091 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); | 1128 const ReleaseAccelerator shift_alt(ui::VKEY_MENU, ui::EF_SHIFT_DOWN); |
| 1092 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1129 const ui::Accelerator alt_shift_press(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
| 1093 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); | 1130 const ReleaseAccelerator alt_shift(ui::VKEY_SHIFT, ui::EF_ALT_DOWN); |
| 1094 | 1131 |
| 1095 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; | 1132 DummyImeControlDelegate* delegate = new DummyImeControlDelegate; |
| 1096 GetController()->SetImeControlDelegate( | 1133 GetController()->SetImeControlDelegate( |
| 1097 scoped_ptr<ImeControlDelegate>(delegate).Pass()); | 1134 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
| 1098 EXPECT_EQ(0, delegate->handle_next_ime_count()); | 1135 EXPECT_EQ(0, delegate->handle_next_ime_count()); |
| 1099 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1136 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
| 1100 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1137 EXPECT_FALSE(ProcessInController(shift_alt)); |
| 1101 EXPECT_EQ(1, delegate->handle_next_ime_count()); | 1138 EXPECT_EQ(1, delegate->handle_next_ime_count()); |
| 1102 EXPECT_FALSE(GetController()->Process(alt_shift_press)); | 1139 EXPECT_FALSE(ProcessInController(alt_shift_press)); |
| 1103 EXPECT_FALSE(GetController()->Process(alt_shift)); | 1140 EXPECT_FALSE(ProcessInController(alt_shift)); |
| 1104 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1141 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
| 1105 | 1142 |
| 1106 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is | 1143 // We should NOT switch IME when e.g. Shift+Alt+X is pressed and X is |
| 1107 // released. | 1144 // released. |
| 1108 const ui::Accelerator shift_alt_x_press( | 1145 const ui::Accelerator shift_alt_x_press( |
| 1109 ui::VKEY_X, | 1146 ui::VKEY_X, |
| 1110 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1147 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1111 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, | 1148 const ReleaseAccelerator shift_alt_x(ui::VKEY_X, |
| 1112 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1149 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1113 | 1150 |
| 1114 EXPECT_FALSE(GetController()->Process(shift_alt_press)); | 1151 EXPECT_FALSE(ProcessInController(shift_alt_press)); |
| 1115 EXPECT_FALSE(GetController()->Process(shift_alt_x_press)); | 1152 EXPECT_FALSE(ProcessInController(shift_alt_x_press)); |
| 1116 EXPECT_FALSE(GetController()->Process(shift_alt_x)); | 1153 EXPECT_FALSE(ProcessInController(shift_alt_x)); |
| 1117 EXPECT_FALSE(GetController()->Process(shift_alt)); | 1154 EXPECT_FALSE(ProcessInController(shift_alt)); |
| 1118 EXPECT_EQ(2, delegate->handle_next_ime_count()); | 1155 EXPECT_EQ(2, delegate->handle_next_ime_count()); |
| 1119 } | 1156 } |
| 1120 #endif | 1157 #endif |
| 1121 } | 1158 } |
| 1122 | 1159 |
| 1123 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. | 1160 // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way. |
| 1124 TEST_F(AcceleratorControllerTest, ImeGlobalAcceleratorsWorkaround139556) { | 1161 TEST_F(AcceleratorControllerTest, ImeGlobalAcceleratorsWorkaround139556) { |
| 1125 // The workaround for crbug.com/139556 depends on the fact that we don't | 1162 // The workaround for crbug.com/139556 depends on the fact that we don't |
| 1126 // use Shift+Alt+Enter/Space with ET_KEY_PRESSED as an accelerator. Test it. | 1163 // use Shift+Alt+Enter/Space with ET_KEY_PRESSED as an accelerator. Test it. |
| 1127 const ui::Accelerator shift_alt_return_press( | 1164 const ui::Accelerator shift_alt_return_press( |
| 1128 ui::VKEY_RETURN, | 1165 ui::VKEY_RETURN, |
| 1129 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1166 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1130 EXPECT_FALSE(GetController()->Process(shift_alt_return_press)); | 1167 EXPECT_FALSE(ProcessInController(shift_alt_return_press)); |
| 1131 const ui::Accelerator shift_alt_space_press( | 1168 const ui::Accelerator shift_alt_space_press( |
| 1132 ui::VKEY_SPACE, | 1169 ui::VKEY_SPACE, |
| 1133 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); | 1170 ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); |
| 1134 EXPECT_FALSE(GetController()->Process(shift_alt_space_press)); | 1171 EXPECT_FALSE(ProcessInController(shift_alt_space_press)); |
| 1135 } | 1172 } |
| 1136 | 1173 |
| 1137 TEST_F(AcceleratorControllerTest, PreferredReservedAccelerators) { | 1174 TEST_F(AcceleratorControllerTest, PreferredReservedAccelerators) { |
| 1138 #if defined(OS_CHROMEOS) | 1175 #if defined(OS_CHROMEOS) |
| 1139 // Power key is reserved on chromeos. | 1176 // Power key is reserved on chromeos. |
| 1140 EXPECT_TRUE(GetController()->IsReserved( | 1177 EXPECT_TRUE(GetController()->IsReserved( |
| 1141 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); | 1178 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); |
| 1142 EXPECT_FALSE(GetController()->IsPreferred( | 1179 EXPECT_FALSE(GetController()->IsPreferred( |
| 1143 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); | 1180 ui::Accelerator(ui::VKEY_POWER, ui::EF_NONE))); |
| 1144 #endif | 1181 #endif |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1262 << " for action (disallowed at modal window): " << *it; | 1299 << " for action (disallowed at modal window): " << *it; |
| 1263 } | 1300 } |
| 1264 } | 1301 } |
| 1265 // Testing of top row (F5-F10) accelerators that should still work | 1302 // Testing of top row (F5-F10) accelerators that should still work |
| 1266 // when a modal window is open | 1303 // when a modal window is open |
| 1267 // | 1304 // |
| 1268 // Screenshot | 1305 // Screenshot |
| 1269 { | 1306 { |
| 1270 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); | 1307 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); |
| 1271 delegate->set_can_take_screenshot(false); | 1308 delegate->set_can_take_screenshot(false); |
| 1272 EXPECT_TRUE(GetController()->Process( | 1309 EXPECT_TRUE(ProcessInController( |
| 1273 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 1310 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
| 1274 EXPECT_TRUE( | 1311 EXPECT_TRUE( |
| 1275 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 1312 ProcessInController(ui::Accelerator( |
| 1276 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 1313 ui::VKEY_PRINT, ui::EF_NONE))); |
| 1314 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
| 1277 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1315 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 1278 delegate->set_can_take_screenshot(true); | 1316 delegate->set_can_take_screenshot(true); |
| 1279 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); | 1317 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
| 1280 EXPECT_TRUE(GetController()->Process( | 1318 EXPECT_TRUE(ProcessInController( |
| 1281 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); | 1319 ui::Accelerator(ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN))); |
| 1282 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); | 1320 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); |
| 1283 EXPECT_TRUE( | 1321 EXPECT_TRUE( |
| 1284 GetController()->Process(ui::Accelerator(ui::VKEY_PRINT, ui::EF_NONE))); | 1322 ProcessInController(ui::Accelerator( |
| 1323 ui::VKEY_PRINT, ui::EF_NONE))); |
| 1285 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 1324 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 1286 EXPECT_TRUE(GetController()->Process(ui::Accelerator( | 1325 EXPECT_TRUE(ProcessInController(ui::Accelerator( |
| 1287 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); | 1326 ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN))); |
| 1288 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 1327 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 1289 } | 1328 } |
| 1290 // Brightness | 1329 // Brightness |
| 1291 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); | 1330 const ui::Accelerator brightness_down(ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE); |
| 1292 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); | 1331 const ui::Accelerator brightness_up(ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE); |
| 1293 { | 1332 { |
| 1294 DummyBrightnessControlDelegate* delegate = | 1333 DummyBrightnessControlDelegate* delegate = |
| 1295 new DummyBrightnessControlDelegate; | 1334 new DummyBrightnessControlDelegate; |
| 1296 GetController()->SetBrightnessControlDelegate( | 1335 GetController()->SetBrightnessControlDelegate( |
| 1297 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 1336 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
| 1298 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 1337 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
| 1299 EXPECT_TRUE(GetController()->Process(brightness_down)); | 1338 EXPECT_TRUE(ProcessInController(brightness_down)); |
| 1300 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 1339 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| 1301 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 1340 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
| 1302 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 1341 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| 1303 EXPECT_TRUE(GetController()->Process(brightness_up)); | 1342 EXPECT_TRUE(ProcessInController(brightness_up)); |
| 1304 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 1343 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
| 1305 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 1344 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
| 1306 } | 1345 } |
| 1307 // Volume | 1346 // Volume |
| 1308 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); | 1347 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, ui::EF_NONE); |
| 1309 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); | 1348 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
| 1310 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); | 1349 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, ui::EF_NONE); |
| 1311 { | 1350 { |
| 1312 EXPECT_TRUE(GetController()->Process(volume_mute)); | 1351 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 1313 EXPECT_TRUE(GetController()->Process(volume_down)); | 1352 EXPECT_TRUE(ProcessInController(volume_down)); |
| 1314 EXPECT_TRUE(GetController()->Process(volume_up)); | 1353 EXPECT_TRUE(ProcessInController(volume_up)); |
| 1315 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; | 1354 TestVolumeControlDelegate* delegate = new TestVolumeControlDelegate; |
| 1316 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( | 1355 ash::Shell::GetInstance()->system_tray_delegate()->SetVolumeControlDelegate( |
| 1317 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 1356 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
| 1318 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 1357 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 1319 EXPECT_TRUE(GetController()->Process(volume_mute)); | 1358 EXPECT_TRUE(ProcessInController(volume_mute)); |
| 1320 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 1359 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
| 1321 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 1360 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
| 1322 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 1361 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 1323 EXPECT_TRUE(GetController()->Process(volume_down)); | 1362 EXPECT_TRUE(ProcessInController(volume_down)); |
| 1324 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 1363 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 1325 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 1364 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
| 1326 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 1365 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| 1327 EXPECT_TRUE(GetController()->Process(volume_up)); | 1366 EXPECT_TRUE(ProcessInController(volume_up)); |
| 1328 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 1367 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
| 1329 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 1368 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
| 1330 } | 1369 } |
| 1331 } | 1370 } |
| 1332 #endif | 1371 #endif |
| 1333 | 1372 |
| 1334 TEST_F(AcceleratorControllerTest, DisallowedWithNoWindow) { | 1373 TEST_F(AcceleratorControllerTest, DisallowedWithNoWindow) { |
| 1335 AccessibilityDelegate* delegate = | 1374 AccessibilityDelegate* delegate = |
| 1336 ash::Shell::GetInstance()->accessibility_delegate(); | 1375 ash::Shell::GetInstance()->accessibility_delegate(); |
| 1337 | 1376 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1360 wm::ActivateWindow(window.get()); | 1399 wm::ActivateWindow(window.get()); |
| 1361 GetController()->PerformActionIfEnabled(WINDOW_MINIMIZE); | 1400 GetController()->PerformActionIfEnabled(WINDOW_MINIMIZE); |
| 1362 delegate->TriggerAccessibilityAlert(ui::A11Y_ALERT_NONE); | 1401 delegate->TriggerAccessibilityAlert(ui::A11Y_ALERT_NONE); |
| 1363 GetController()->PerformActionIfEnabled(kActionsNeedingWindow[i]); | 1402 GetController()->PerformActionIfEnabled(kActionsNeedingWindow[i]); |
| 1364 EXPECT_NE(delegate->GetLastAccessibilityAlert(), | 1403 EXPECT_NE(delegate->GetLastAccessibilityAlert(), |
| 1365 ui::A11Y_ALERT_WINDOW_NEEDED); | 1404 ui::A11Y_ALERT_WINDOW_NEEDED); |
| 1366 } | 1405 } |
| 1367 } | 1406 } |
| 1368 | 1407 |
| 1369 } // namespace ash | 1408 } // namespace ash |
| OLD | NEW |