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

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: review fix 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() : 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
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
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
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
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
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
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
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
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