| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/accelerators/accelerator_controller.h" | 5 #include "ash/accelerators/accelerator_controller.h" |
| 6 #include "ash/brightness_control_delegate.h" | 6 #include "ash/brightness_control_delegate.h" |
| 7 #include "ash/caps_lock_delegate.h" | 7 #include "ash/caps_lock_delegate.h" |
| 8 #include "ash/ime/event.h" | 8 #include "ash/ime/event.h" |
| 9 #include "ash/ime_control_delegate.h" |
| 9 #include "ash/screenshot_delegate.h" | 10 #include "ash/screenshot_delegate.h" |
| 10 #include "ash/shell.h" | 11 #include "ash/shell.h" |
| 11 #include "ash/shell_window_ids.h" | 12 #include "ash/shell_window_ids.h" |
| 12 #include "ash/test/aura_shell_test_base.h" | 13 #include "ash/test/aura_shell_test_base.h" |
| 13 #include "ash/volume_control_delegate.h" | 14 #include "ash/volume_control_delegate.h" |
| 14 #include "ash/wm/window_util.h" | 15 #include "ash/wm/window_util.h" |
| 15 #include "ui/aura/event.h" | 16 #include "ui/aura/event.h" |
| 16 #include "ui/aura/root_window.h" | 17 #include "ui/aura/root_window.h" |
| 17 #include "ui/aura/test/test_window_delegate.h" | 18 #include "ui/aura/test/test_window_delegate.h" |
| 18 #include "ui/aura/test/test_windows.h" | 19 #include "ui/aura/test/test_windows.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 44 // Overridden from ui::AcceleratorTarget: | 45 // Overridden from ui::AcceleratorTarget: |
| 45 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; | 46 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; |
| 46 virtual bool CanHandleAccelerators() const OVERRIDE; | 47 virtual bool CanHandleAccelerators() const OVERRIDE; |
| 47 | 48 |
| 48 private: | 49 private: |
| 49 int accelerator_pressed_count_; | 50 int accelerator_pressed_count_; |
| 50 | 51 |
| 51 DISALLOW_COPY_AND_ASSIGN(TestTarget); | 52 DISALLOW_COPY_AND_ASSIGN(TestTarget); |
| 52 }; | 53 }; |
| 53 | 54 |
| 55 class PostImeAccelerator : public ui::Accelerator { |
| 56 public: |
| 57 PostImeAccelerator(ui::KeyboardCode keycode, |
| 58 bool shift_pressed, bool ctrl_pressed, bool alt_pressed) |
| 59 : ui::Accelerator(keycode, shift_pressed, ctrl_pressed, alt_pressed) { |
| 60 set_type(ui::ET_TRANSLATED_KEY_PRESS); |
| 61 } |
| 62 }; |
| 63 typedef ui::Accelerator PreImeAccelerator; |
| 64 |
| 54 class DummyScreenshotDelegate : public ScreenshotDelegate { | 65 class DummyScreenshotDelegate : public ScreenshotDelegate { |
| 55 public: | 66 public: |
| 56 DummyScreenshotDelegate() | 67 DummyScreenshotDelegate() |
| 57 : handle_take_screenshot_count_(0), | 68 : handle_take_screenshot_count_(0), |
| 58 handle_take_partial_screenshot_count_(0) { | 69 handle_take_partial_screenshot_count_(0) { |
| 59 } | 70 } |
| 60 virtual ~DummyScreenshotDelegate() {} | 71 virtual ~DummyScreenshotDelegate() {} |
| 61 | 72 |
| 62 // Overridden from ScreenshotDelegate: | 73 // Overridden from ScreenshotDelegate: |
| 63 virtual void HandleTakeScreenshot(aura::Window* window) OVERRIDE { | 74 virtual void HandleTakeScreenshot(aura::Window* window) OVERRIDE { |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 | 202 |
| 192 private: | 203 private: |
| 193 const bool consume_; | 204 const bool consume_; |
| 194 int handle_brightness_down_count_; | 205 int handle_brightness_down_count_; |
| 195 int handle_brightness_up_count_; | 206 int handle_brightness_up_count_; |
| 196 ui::Accelerator last_accelerator_; | 207 ui::Accelerator last_accelerator_; |
| 197 | 208 |
| 198 DISALLOW_COPY_AND_ASSIGN(DummyBrightnessControlDelegate); | 209 DISALLOW_COPY_AND_ASSIGN(DummyBrightnessControlDelegate); |
| 199 }; | 210 }; |
| 200 | 211 |
| 212 class DummyImeControlDelegate : public ImeControlDelegate { |
| 213 public: |
| 214 explicit DummyImeControlDelegate(bool consume) |
| 215 : consume_(consume), |
| 216 handle_next_ime_count_(0), |
| 217 handle_previous_ime_count_(0), |
| 218 handle_switch_ime_count_(0) { |
| 219 } |
| 220 virtual ~DummyImeControlDelegate() {} |
| 221 |
| 222 virtual bool HandleNextIme() OVERRIDE { |
| 223 ++handle_next_ime_count_; |
| 224 return consume_; |
| 225 } |
| 226 virtual bool HandlePreviousIme() OVERRIDE { |
| 227 ++handle_previous_ime_count_; |
| 228 return consume_; |
| 229 } |
| 230 virtual bool HandleSwitchIme(const ui::Accelerator& accelerator) OVERRIDE { |
| 231 ++handle_switch_ime_count_; |
| 232 last_accelerator_ = accelerator; |
| 233 return consume_; |
| 234 } |
| 235 |
| 236 int handle_next_ime_count() const { |
| 237 return handle_next_ime_count_; |
| 238 } |
| 239 int handle_previous_ime_count() const { |
| 240 return handle_previous_ime_count_; |
| 241 } |
| 242 int handle_switch_ime_count() const { |
| 243 return handle_switch_ime_count_; |
| 244 } |
| 245 const ui::Accelerator& last_accelerator() const { |
| 246 return last_accelerator_; |
| 247 } |
| 248 |
| 249 private: |
| 250 const bool consume_; |
| 251 int handle_next_ime_count_; |
| 252 int handle_previous_ime_count_; |
| 253 int handle_switch_ime_count_; |
| 254 ui::Accelerator last_accelerator_; |
| 255 |
| 256 DISALLOW_COPY_AND_ASSIGN(DummyImeControlDelegate); |
| 257 }; |
| 258 |
| 201 bool TestTarget::AcceleratorPressed(const ui::Accelerator& accelerator) { | 259 bool TestTarget::AcceleratorPressed(const ui::Accelerator& accelerator) { |
| 202 ++accelerator_pressed_count_; | 260 ++accelerator_pressed_count_; |
| 203 return true; | 261 return true; |
| 204 } | 262 } |
| 205 | 263 |
| 206 bool TestTarget::CanHandleAccelerators() const { | 264 bool TestTarget::CanHandleAccelerators() const { |
| 207 return true; | 265 return true; |
| 208 } | 266 } |
| 209 | 267 |
| 210 } // namespace | 268 } // namespace |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 EXPECT_TRUE(GetController()->Process(accelerator_a)); | 353 EXPECT_TRUE(GetController()->Process(accelerator_a)); |
| 296 EXPECT_EQ(1, target1.accelerator_pressed_count()); | 354 EXPECT_EQ(1, target1.accelerator_pressed_count()); |
| 297 | 355 |
| 298 // The non-registered accelerator is not processed. | 356 // The non-registered accelerator is not processed. |
| 299 const ui::Accelerator accelerator_b(ui::VKEY_B, false, false, false); | 357 const ui::Accelerator accelerator_b(ui::VKEY_B, false, false, false); |
| 300 EXPECT_FALSE(GetController()->Process(accelerator_b)); | 358 EXPECT_FALSE(GetController()->Process(accelerator_b)); |
| 301 } | 359 } |
| 302 | 360 |
| 303 #if defined(OS_WIN) || defined(USE_X11) | 361 #if defined(OS_WIN) || defined(USE_X11) |
| 304 TEST_F(AcceleratorControllerTest, ProcessOnce) { | 362 TEST_F(AcceleratorControllerTest, ProcessOnce) { |
| 305 const ui::Accelerator accelerator_a(ui::VKEY_A, false, false, false); | 363 PostImeAccelerator accelerator_a(ui::VKEY_A, false, false, false); |
| 306 TestTarget target; | 364 TestTarget target; |
| 307 GetController()->Register(accelerator_a, &target); | 365 GetController()->Register(accelerator_a, &target); |
| 308 | 366 |
| 309 // The accelerator is processed only once. | 367 // The accelerator is processed only once. |
| 310 #if defined(OS_WIN) | 368 #if defined(OS_WIN) |
| 311 MSG msg1 = { NULL, WM_KEYDOWN, ui::VKEY_A, 0 }; | 369 MSG msg1 = { NULL, WM_KEYDOWN, ui::VKEY_A, 0 }; |
| 312 TranslatedKeyEvent key_event1(msg1, false); | 370 TranslatedKeyEvent key_event1(msg1, false); |
| 313 EXPECT_TRUE(aura::RootWindow::GetInstance()->DispatchKeyEvent(&key_event1)); | 371 EXPECT_TRUE(aura::RootWindow::GetInstance()->DispatchKeyEvent(&key_event1)); |
| 314 | 372 |
| 315 MSG msg2 = { NULL, WM_CHAR, L'A', 0 }; | 373 MSG msg2 = { NULL, WM_CHAR, L'A', 0 }; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 338 TranslatedKeyEvent key_event3(&key_event, false); | 396 TranslatedKeyEvent key_event3(&key_event, false); |
| 339 EXPECT_FALSE(aura::RootWindow::GetInstance()->DispatchKeyEvent(&key_event3)); | 397 EXPECT_FALSE(aura::RootWindow::GetInstance()->DispatchKeyEvent(&key_event3)); |
| 340 #endif | 398 #endif |
| 341 EXPECT_EQ(1, target.accelerator_pressed_count()); | 399 EXPECT_EQ(1, target.accelerator_pressed_count()); |
| 342 } | 400 } |
| 343 #endif | 401 #endif |
| 344 | 402 |
| 345 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { | 403 TEST_F(AcceleratorControllerTest, GlobalAccelerators) { |
| 346 // CycleBackward | 404 // CycleBackward |
| 347 EXPECT_TRUE(GetController()->Process( | 405 EXPECT_TRUE(GetController()->Process( |
| 348 ui::Accelerator(ui::VKEY_F5, true, false, false))); | 406 PostImeAccelerator(ui::VKEY_F5, true, false, false))); |
| 349 EXPECT_TRUE(GetController()->Process( | 407 EXPECT_TRUE(GetController()->Process( |
| 350 ui::Accelerator(ui::VKEY_TAB, true, false, true))); | 408 PostImeAccelerator(ui::VKEY_TAB, true, false, true))); |
| 351 // CycleForward | 409 // CycleForward |
| 352 EXPECT_TRUE(GetController()->Process( | 410 EXPECT_TRUE(GetController()->Process( |
| 353 ui::Accelerator(ui::VKEY_F5, false, false, false))); | 411 PostImeAccelerator(ui::VKEY_F5, false, false, false))); |
| 354 EXPECT_TRUE(GetController()->Process( | 412 EXPECT_TRUE(GetController()->Process( |
| 355 ui::Accelerator(ui::VKEY_TAB, false, false, true))); | 413 PostImeAccelerator(ui::VKEY_TAB, false, false, true))); |
| 356 // Take screenshot / partial screenshot | 414 // Take screenshot / partial screenshot |
| 357 // True should always be returned regardless of the existence of the delegate. | 415 // True should always be returned regardless of the existence of the delegate. |
| 358 { | 416 { |
| 359 EXPECT_TRUE(GetController()->Process( | 417 EXPECT_TRUE(GetController()->Process( |
| 360 ui::Accelerator(ui::VKEY_F5, false, true, false))); | 418 PostImeAccelerator(ui::VKEY_F5, false, true, false))); |
| 361 EXPECT_TRUE(GetController()->Process( | 419 EXPECT_TRUE(GetController()->Process( |
| 362 ui::Accelerator(ui::VKEY_PRINT, false, false, false))); | 420 PostImeAccelerator(ui::VKEY_PRINT, false, false, false))); |
| 363 EXPECT_TRUE(GetController()->Process( | 421 EXPECT_TRUE(GetController()->Process( |
| 364 ui::Accelerator(ui::VKEY_F5, true, true, false))); | 422 PostImeAccelerator(ui::VKEY_F5, true, true, false))); |
| 365 DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; | 423 DummyScreenshotDelegate* delegate = new DummyScreenshotDelegate; |
| 366 GetController()->SetScreenshotDelegate( | 424 GetController()->SetScreenshotDelegate( |
| 367 scoped_ptr<ScreenshotDelegate>(delegate).Pass()); | 425 scoped_ptr<ScreenshotDelegate>(delegate).Pass()); |
| 368 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); | 426 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
| 369 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); | 427 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); |
| 370 EXPECT_TRUE(GetController()->Process( | 428 EXPECT_TRUE(GetController()->Process( |
| 371 ui::Accelerator(ui::VKEY_F5, false, true, false))); | 429 PostImeAccelerator(ui::VKEY_F5, false, true, false))); |
| 372 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); | 430 EXPECT_EQ(1, delegate->handle_take_screenshot_count()); |
| 373 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); | 431 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); |
| 374 EXPECT_TRUE(GetController()->Process( | 432 EXPECT_TRUE(GetController()->Process( |
| 375 ui::Accelerator(ui::VKEY_PRINT, false, false, false))); | 433 PostImeAccelerator(ui::VKEY_PRINT, false, false, false))); |
| 376 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 434 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 377 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); | 435 EXPECT_EQ(0, delegate->handle_take_partial_screenshot_count()); |
| 378 EXPECT_TRUE(GetController()->Process( | 436 EXPECT_TRUE(GetController()->Process( |
| 379 ui::Accelerator(ui::VKEY_F5, true, true, false))); | 437 PostImeAccelerator(ui::VKEY_F5, true, true, false))); |
| 380 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); | 438 EXPECT_EQ(2, delegate->handle_take_screenshot_count()); |
| 381 EXPECT_EQ(1, delegate->handle_take_partial_screenshot_count()); | 439 EXPECT_EQ(1, delegate->handle_take_partial_screenshot_count()); |
| 382 } | 440 } |
| 383 // ToggleCapsLock | 441 // ToggleCapsLock |
| 384 { | 442 { |
| 385 EXPECT_FALSE(GetController()->Process( | 443 EXPECT_FALSE(GetController()->Process( |
| 386 ui::Accelerator(ui::VKEY_LWIN, true, false, false))); | 444 PostImeAccelerator(ui::VKEY_LWIN, true, false, false))); |
| 387 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(false); | 445 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(false); |
| 388 GetController()->SetCapsLockDelegate( | 446 GetController()->SetCapsLockDelegate( |
| 389 scoped_ptr<CapsLockDelegate>(delegate).Pass()); | 447 scoped_ptr<CapsLockDelegate>(delegate).Pass()); |
| 390 EXPECT_EQ(0, delegate->handle_caps_lock_count()); | 448 EXPECT_EQ(0, delegate->handle_caps_lock_count()); |
| 391 EXPECT_FALSE(GetController()->Process( | 449 EXPECT_FALSE(GetController()->Process( |
| 392 ui::Accelerator(ui::VKEY_LWIN, true, false, false))); | 450 PostImeAccelerator(ui::VKEY_LWIN, true, false, false))); |
| 393 EXPECT_EQ(1, delegate->handle_caps_lock_count()); | 451 EXPECT_EQ(1, delegate->handle_caps_lock_count()); |
| 394 } | 452 } |
| 395 { | 453 { |
| 396 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(true); | 454 DummyCapsLockDelegate* delegate = new DummyCapsLockDelegate(true); |
| 397 GetController()->SetCapsLockDelegate( | 455 GetController()->SetCapsLockDelegate( |
| 398 scoped_ptr<CapsLockDelegate>(delegate).Pass()); | 456 scoped_ptr<CapsLockDelegate>(delegate).Pass()); |
| 399 EXPECT_EQ(0, delegate->handle_caps_lock_count()); | 457 EXPECT_EQ(0, delegate->handle_caps_lock_count()); |
| 400 EXPECT_TRUE(GetController()->Process( | 458 EXPECT_TRUE(GetController()->Process( |
| 401 ui::Accelerator(ui::VKEY_LWIN, true, false, false))); | 459 PostImeAccelerator(ui::VKEY_LWIN, true, false, false))); |
| 402 EXPECT_EQ(1, delegate->handle_caps_lock_count()); | 460 EXPECT_EQ(1, delegate->handle_caps_lock_count()); |
| 403 } | 461 } |
| 404 // Volume | 462 // Volume |
| 405 const ui::Accelerator f8(ui::VKEY_F8, false, false, false); | 463 const PostImeAccelerator f8(ui::VKEY_F8, false, false, false); |
| 406 const ui::Accelerator f9(ui::VKEY_F9, false, false, false); | 464 const PostImeAccelerator f9(ui::VKEY_F9, false, false, false); |
| 407 const ui::Accelerator f10(ui::VKEY_F10, false, false, false); | 465 const PostImeAccelerator f10(ui::VKEY_F10, false, false, false); |
| 408 { | 466 { |
| 409 EXPECT_FALSE(GetController()->Process(f8)); | 467 EXPECT_FALSE(GetController()->Process(f8)); |
| 410 EXPECT_FALSE(GetController()->Process(f9)); | 468 EXPECT_FALSE(GetController()->Process(f9)); |
| 411 EXPECT_FALSE(GetController()->Process(f10)); | 469 EXPECT_FALSE(GetController()->Process(f10)); |
| 412 DummyVolumeControlDelegate* delegate = | 470 DummyVolumeControlDelegate* delegate = |
| 413 new DummyVolumeControlDelegate(false); | 471 new DummyVolumeControlDelegate(false); |
| 414 GetController()->SetVolumeControlDelegate( | 472 GetController()->SetVolumeControlDelegate( |
| 415 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 473 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
| 416 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 474 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 417 EXPECT_FALSE(GetController()->Process(f8)); | 475 EXPECT_FALSE(GetController()->Process(f8)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 436 EXPECT_EQ(f8, delegate->last_accelerator()); | 494 EXPECT_EQ(f8, delegate->last_accelerator()); |
| 437 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 495 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 438 EXPECT_TRUE(GetController()->Process(f9)); | 496 EXPECT_TRUE(GetController()->Process(f9)); |
| 439 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 497 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 440 EXPECT_EQ(f9, delegate->last_accelerator()); | 498 EXPECT_EQ(f9, delegate->last_accelerator()); |
| 441 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 499 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| 442 EXPECT_TRUE(GetController()->Process(f10)); | 500 EXPECT_TRUE(GetController()->Process(f10)); |
| 443 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 501 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
| 444 EXPECT_EQ(f10, delegate->last_accelerator()); | 502 EXPECT_EQ(f10, delegate->last_accelerator()); |
| 445 } | 503 } |
| 446 const ui::Accelerator volume_mute(ui::VKEY_VOLUME_MUTE, false, false, false); | 504 const PostImeAccelerator volume_mute( |
| 447 const ui::Accelerator volume_down(ui::VKEY_VOLUME_DOWN, false, false, false); | 505 ui::VKEY_VOLUME_MUTE, false, false, false); |
| 448 const ui::Accelerator volume_up(ui::VKEY_VOLUME_UP, false, false, false); | 506 const PostImeAccelerator volume_down( |
| 507 ui::VKEY_VOLUME_DOWN, false, false, false); |
| 508 const PostImeAccelerator volume_up(ui::VKEY_VOLUME_UP, false, false, false); |
| 449 { | 509 { |
| 450 DummyVolumeControlDelegate* delegate = | 510 DummyVolumeControlDelegate* delegate = |
| 451 new DummyVolumeControlDelegate(false); | 511 new DummyVolumeControlDelegate(false); |
| 452 GetController()->SetVolumeControlDelegate( | 512 GetController()->SetVolumeControlDelegate( |
| 453 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); | 513 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
| 454 EXPECT_EQ(0, delegate->handle_volume_mute_count()); | 514 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 455 EXPECT_FALSE(GetController()->Process(volume_mute)); | 515 EXPECT_FALSE(GetController()->Process(volume_mute)); |
| 456 EXPECT_EQ(1, delegate->handle_volume_mute_count()); | 516 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
| 457 EXPECT_EQ(volume_mute, delegate->last_accelerator()); | 517 EXPECT_EQ(volume_mute, delegate->last_accelerator()); |
| 458 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 518 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 475 EXPECT_EQ(0, delegate->handle_volume_down_count()); | 535 EXPECT_EQ(0, delegate->handle_volume_down_count()); |
| 476 EXPECT_TRUE(GetController()->Process(volume_down)); | 536 EXPECT_TRUE(GetController()->Process(volume_down)); |
| 477 EXPECT_EQ(1, delegate->handle_volume_down_count()); | 537 EXPECT_EQ(1, delegate->handle_volume_down_count()); |
| 478 EXPECT_EQ(volume_down, delegate->last_accelerator()); | 538 EXPECT_EQ(volume_down, delegate->last_accelerator()); |
| 479 EXPECT_EQ(0, delegate->handle_volume_up_count()); | 539 EXPECT_EQ(0, delegate->handle_volume_up_count()); |
| 480 EXPECT_TRUE(GetController()->Process(volume_up)); | 540 EXPECT_TRUE(GetController()->Process(volume_up)); |
| 481 EXPECT_EQ(1, delegate->handle_volume_up_count()); | 541 EXPECT_EQ(1, delegate->handle_volume_up_count()); |
| 482 EXPECT_EQ(volume_up, delegate->last_accelerator()); | 542 EXPECT_EQ(volume_up, delegate->last_accelerator()); |
| 483 } | 543 } |
| 484 // Brightness | 544 // Brightness |
| 485 const ui::Accelerator f6(ui::VKEY_F6, false, false, false); | 545 const PostImeAccelerator f6(ui::VKEY_F6, false, false, false); |
| 486 const ui::Accelerator f7(ui::VKEY_F7, false, false, false); | 546 const PostImeAccelerator f7(ui::VKEY_F7, false, false, false); |
| 487 { | 547 { |
| 488 EXPECT_FALSE(GetController()->Process(f6)); | 548 EXPECT_FALSE(GetController()->Process(f6)); |
| 489 EXPECT_FALSE(GetController()->Process(f7)); | 549 EXPECT_FALSE(GetController()->Process(f7)); |
| 490 DummyBrightnessControlDelegate* delegate = | 550 DummyBrightnessControlDelegate* delegate = |
| 491 new DummyBrightnessControlDelegate(false); | 551 new DummyBrightnessControlDelegate(false); |
| 492 GetController()->SetBrightnessControlDelegate( | 552 GetController()->SetBrightnessControlDelegate( |
| 493 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 553 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
| 494 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 554 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
| 495 EXPECT_FALSE(GetController()->Process(f6)); | 555 EXPECT_FALSE(GetController()->Process(f6)); |
| 496 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 556 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 509 EXPECT_TRUE(GetController()->Process(f6)); | 569 EXPECT_TRUE(GetController()->Process(f6)); |
| 510 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 570 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| 511 EXPECT_EQ(f6, delegate->last_accelerator()); | 571 EXPECT_EQ(f6, delegate->last_accelerator()); |
| 512 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 572 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| 513 EXPECT_TRUE(GetController()->Process(f7)); | 573 EXPECT_TRUE(GetController()->Process(f7)); |
| 514 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 574 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
| 515 EXPECT_EQ(f7, delegate->last_accelerator()); | 575 EXPECT_EQ(f7, delegate->last_accelerator()); |
| 516 } | 576 } |
| 517 #if defined(OS_CHROMEOS) | 577 #if defined(OS_CHROMEOS) |
| 518 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. | 578 // ui::VKEY_BRIGHTNESS_DOWN/UP are not defined on Windows. |
| 519 const ui::Accelerator brightness_down( | 579 const PostImeAccelerator brightness_down( |
| 520 ui::VKEY_BRIGHTNESS_DOWN, false, false, false); | 580 ui::VKEY_BRIGHTNESS_DOWN, false, false, false); |
| 521 const ui::Accelerator brightness_up( | 581 const PostImeAccelerator brightness_up( |
| 522 ui::VKEY_BRIGHTNESS_UP, false, false, false); | 582 ui::VKEY_BRIGHTNESS_UP, false, false, false); |
| 523 { | 583 { |
| 524 DummyBrightnessControlDelegate* delegate = | 584 DummyBrightnessControlDelegate* delegate = |
| 525 new DummyBrightnessControlDelegate(false); | 585 new DummyBrightnessControlDelegate(false); |
| 526 GetController()->SetBrightnessControlDelegate( | 586 GetController()->SetBrightnessControlDelegate( |
| 527 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); | 587 scoped_ptr<BrightnessControlDelegate>(delegate).Pass()); |
| 528 EXPECT_EQ(0, delegate->handle_brightness_down_count()); | 588 EXPECT_EQ(0, delegate->handle_brightness_down_count()); |
| 529 EXPECT_FALSE(GetController()->Process(brightness_down)); | 589 EXPECT_FALSE(GetController()->Process(brightness_down)); |
| 530 EXPECT_EQ(1, delegate->handle_brightness_down_count()); | 590 EXPECT_EQ(1, delegate->handle_brightness_down_count()); |
| 531 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 591 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 545 EXPECT_EQ(brightness_down, delegate->last_accelerator()); | 605 EXPECT_EQ(brightness_down, delegate->last_accelerator()); |
| 546 EXPECT_EQ(0, delegate->handle_brightness_up_count()); | 606 EXPECT_EQ(0, delegate->handle_brightness_up_count()); |
| 547 EXPECT_TRUE(GetController()->Process(brightness_up)); | 607 EXPECT_TRUE(GetController()->Process(brightness_up)); |
| 548 EXPECT_EQ(1, delegate->handle_brightness_up_count()); | 608 EXPECT_EQ(1, delegate->handle_brightness_up_count()); |
| 549 EXPECT_EQ(brightness_up, delegate->last_accelerator()); | 609 EXPECT_EQ(brightness_up, delegate->last_accelerator()); |
| 550 } | 610 } |
| 551 #endif | 611 #endif |
| 552 #if !defined(NDEBUG) | 612 #if !defined(NDEBUG) |
| 553 // RotateScreen | 613 // RotateScreen |
| 554 EXPECT_TRUE(GetController()->Process( | 614 EXPECT_TRUE(GetController()->Process( |
| 555 ui::Accelerator(ui::VKEY_HOME, false, true, false))); | 615 PostImeAccelerator(ui::VKEY_HOME, false, true, false))); |
| 556 // ToggleCompactWindowMode | 616 // ToggleCompactWindowMode |
| 557 EXPECT_TRUE(GetController()->Process( | 617 EXPECT_TRUE(GetController()->Process( |
| 558 ui::Accelerator(ui::VKEY_A, false, true, true))); | 618 PostImeAccelerator(ui::VKEY_A, false, true, true))); |
| 559 #if !defined(OS_LINUX) | 619 #if !defined(OS_LINUX) |
| 560 // ToggleDesktopFullScreen (not implemented yet on Linux) | 620 // ToggleDesktopFullScreen (not implemented yet on Linux) |
| 561 EXPECT_TRUE(GetController()->Process( | 621 EXPECT_TRUE(GetController()->Process( |
| 562 ui::Accelerator(ui::VKEY_F11, false, true, false))); | 622 PostImeAccelerator(ui::VKEY_F11, false, true, false))); |
| 563 #endif | 623 #endif |
| 564 | 624 |
| 565 // Exit | 625 // Exit |
| 566 EXPECT_TRUE(GetController()->Process( | 626 EXPECT_TRUE(GetController()->Process( |
| 567 ui::Accelerator(ui::VKEY_Q, true, true ,false))); | 627 PostImeAccelerator(ui::VKEY_Q, true, true ,false))); |
| 568 #endif | 628 #endif |
| 569 | 629 |
| 570 #if defined(OS_CHROMEOS) | 630 #if defined(OS_CHROMEOS) |
| 571 EXPECT_TRUE(GetController()->Process( | 631 EXPECT_TRUE(GetController()->Process( |
| 572 ui::Accelerator(ui::VKEY_L, true, true, false))); | 632 PostImeAccelerator(ui::VKEY_L, true, true, false))); |
| 573 #endif | 633 #endif |
| 574 } | 634 } |
| 575 | 635 |
| 636 TEST_F(AcceleratorControllerTest, GlobalAcceleratorsPreIme) { |
| 637 // Make sure post-IME shortcuts are ignored in the pre-IME phase. |
| 638 { |
| 639 const PreImeAccelerator f8(ui::VKEY_F8, false, false, false); |
| 640 const PostImeAccelerator f8_post(ui::VKEY_F8, false, false, false); |
| 641 DummyVolumeControlDelegate* delegate = new DummyVolumeControlDelegate(true); |
| 642 GetController()->SetVolumeControlDelegate( |
| 643 scoped_ptr<VolumeControlDelegate>(delegate).Pass()); |
| 644 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 645 EXPECT_FALSE(GetController()->Process(f8)); |
| 646 EXPECT_EQ(0, delegate->handle_volume_mute_count()); |
| 647 EXPECT_TRUE(GetController()->Process(f8_post)); |
| 648 EXPECT_EQ(1, delegate->handle_volume_mute_count()); |
| 649 } |
| 650 |
| 651 // Test IME shortcuts. |
| 652 { |
| 653 // TODO(yusukes): Add a test for Alt+Shift+Release. |
| 654 const ui::Accelerator control_space(ui::VKEY_SPACE, false, true, false); |
| 655 const ui::Accelerator convert(ui::VKEY_CONVERT, false, false, false); |
| 656 const ui::Accelerator non_convert(ui::VKEY_NONCONVERT, false, false, false); |
| 657 const ui::Accelerator wide_half_1( |
| 658 ui::VKEY_DBE_SBCSCHAR, false, false, false); |
| 659 const ui::Accelerator wide_half_2( |
| 660 ui::VKEY_DBE_DBCSCHAR, false, false, false); |
| 661 const ui::Accelerator hangul(ui::VKEY_HANGUL, false, false, false); |
| 662 const ui::Accelerator shift_space(ui::VKEY_SPACE, true, false, false); |
| 663 EXPECT_FALSE(GetController()->Process(control_space)); |
| 664 EXPECT_FALSE(GetController()->Process(convert)); |
| 665 EXPECT_FALSE(GetController()->Process(non_convert)); |
| 666 EXPECT_FALSE(GetController()->Process(wide_half_1)); |
| 667 EXPECT_FALSE(GetController()->Process(wide_half_2)); |
| 668 EXPECT_FALSE(GetController()->Process(hangul)); |
| 669 EXPECT_FALSE(GetController()->Process(shift_space)); |
| 670 DummyImeControlDelegate* delegate = new DummyImeControlDelegate(true); |
| 671 GetController()->SetImeControlDelegate( |
| 672 scoped_ptr<ImeControlDelegate>(delegate).Pass()); |
| 673 EXPECT_EQ(0, delegate->handle_previous_ime_count()); |
| 674 EXPECT_TRUE(GetController()->Process(control_space)); |
| 675 EXPECT_EQ(1, delegate->handle_previous_ime_count()); |
| 676 EXPECT_EQ(0, delegate->handle_switch_ime_count()); |
| 677 EXPECT_TRUE(GetController()->Process(convert)); |
| 678 EXPECT_EQ(1, delegate->handle_switch_ime_count()); |
| 679 EXPECT_TRUE(GetController()->Process(non_convert)); |
| 680 EXPECT_EQ(2, delegate->handle_switch_ime_count()); |
| 681 EXPECT_TRUE(GetController()->Process(wide_half_1)); |
| 682 EXPECT_EQ(3, delegate->handle_switch_ime_count()); |
| 683 EXPECT_TRUE(GetController()->Process(wide_half_2)); |
| 684 EXPECT_EQ(4, delegate->handle_switch_ime_count()); |
| 685 EXPECT_TRUE(GetController()->Process(hangul)); |
| 686 EXPECT_EQ(5, delegate->handle_switch_ime_count()); |
| 687 EXPECT_TRUE(GetController()->Process(shift_space)); |
| 688 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 689 |
| 690 // Make sure pre-IME shortcuts are ignored in the post-IME phase. |
| 691 const PostImeAccelerator control_space_post( |
| 692 ui::VKEY_SPACE, false, true, false); |
| 693 const PostImeAccelerator convert_post( |
| 694 ui::VKEY_CONVERT, false, false, false); |
| 695 const PostImeAccelerator non_convert_post( |
| 696 ui::VKEY_NONCONVERT, false, false, false); |
| 697 const PostImeAccelerator wide_half_1_post( |
| 698 ui::VKEY_DBE_SBCSCHAR, false, false, false); |
| 699 const PostImeAccelerator wide_half_2_post( |
| 700 ui::VKEY_DBE_DBCSCHAR, false, false, false); |
| 701 const PostImeAccelerator hangul_post(ui::VKEY_HANGUL, false, false, false); |
| 702 const PostImeAccelerator shift_space_post( |
| 703 ui::VKEY_SPACE, true, false, false); |
| 704 EXPECT_EQ(1, delegate->handle_previous_ime_count()); |
| 705 EXPECT_FALSE(GetController()->Process(control_space_post)); |
| 706 EXPECT_EQ(1, delegate->handle_previous_ime_count()); |
| 707 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 708 EXPECT_FALSE(GetController()->Process(convert_post)); |
| 709 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 710 EXPECT_FALSE(GetController()->Process(non_convert_post)); |
| 711 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 712 EXPECT_FALSE(GetController()->Process(wide_half_1_post)); |
| 713 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 714 EXPECT_FALSE(GetController()->Process(wide_half_2_post)); |
| 715 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 716 EXPECT_FALSE(GetController()->Process(hangul_post)); |
| 717 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 718 EXPECT_FALSE(GetController()->Process(shift_space_post)); |
| 719 EXPECT_EQ(6, delegate->handle_switch_ime_count()); |
| 720 } |
| 721 } |
| 722 |
| 576 } // namespace test | 723 } // namespace test |
| 577 } // namespace ash | 724 } // namespace ash |
| OLD | NEW |