Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Side by Side Diff: ash/accelerators/accelerator_controller_unittest.cc

Issue 9370017: Move IME shortcut keys from X to Aura [part 1 of 3]. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: re-rebase... Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/accelerators/accelerator_controller.cc ('k') | ash/accelerators/accelerator_filter.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « ash/accelerators/accelerator_controller.cc ('k') | ash/accelerators/accelerator_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698