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 |