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