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 |