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