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

Side by Side Diff: ash/sticky_keys/sticky_keys_unittest.cc

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « ash/sticky_keys/sticky_keys_overlay.cc ('k') | ash/system/cast/tray_cast.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/sticky_keys/sticky_keys_controller.h" 5 #include "ash/sticky_keys/sticky_keys_controller.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 16 matching lines...) Expand all
27 27
28 #if defined(USE_X11) 28 #if defined(USE_X11)
29 // The device id of the test touchpad device. 29 // The device id of the test touchpad device.
30 const unsigned int kTouchPadDeviceId = 1; 30 const unsigned int kTouchPadDeviceId = 1;
31 #endif 31 #endif
32 32
33 } // namespace 33 } // namespace
34 34
35 class StickyKeysTest : public test::AshTestBase { 35 class StickyKeysTest : public test::AshTestBase {
36 protected: 36 protected:
37 StickyKeysTest() 37 StickyKeysTest() : target_(NULL), root_window_(NULL) {}
38 : target_(NULL),
39 root_window_(NULL) {}
40 38
41 void SetUp() override { 39 void SetUp() override {
42 test::AshTestBase::SetUp(); 40 test::AshTestBase::SetUp();
43 41
44 // |target_| owned by root window of shell. It is still safe to delete 42 // |target_| owned by root window of shell. It is still safe to delete
45 // it ourselves. 43 // it ourselves.
46 target_ = CreateTestWindowInShellWithId(0); 44 target_ = CreateTestWindowInShellWithId(0);
47 root_window_ = target_->GetRootWindow(); 45 root_window_ = target_->GetRootWindow();
48 46
49 #if defined(USE_X11) 47 #if defined(USE_X11)
(...skipping 23 matching lines...) Expand all
73 // This is the standard native event on Chromebooks. 71 // This is the standard native event on Chromebooks.
74 ui::MouseEvent* GenerateMouseEvent(ui::EventType type) { 72 ui::MouseEvent* GenerateMouseEvent(ui::EventType type) {
75 return GenerateMouseEventAt(type, gfx::Point()); 73 return GenerateMouseEventAt(type, gfx::Point());
76 } 74 }
77 75
78 // Creates a mouse event backed by a native XInput2 generic button event. 76 // Creates a mouse event backed by a native XInput2 generic button event.
79 // The |location| should be in physical pixels. 77 // The |location| should be in physical pixels.
80 ui::MouseEvent* GenerateMouseEventAt(ui::EventType type, 78 ui::MouseEvent* GenerateMouseEventAt(ui::EventType type,
81 const gfx::Point& location) { 79 const gfx::Point& location) {
82 #if defined(USE_X11) 80 #if defined(USE_X11)
83 scoped_xevent_.InitGenericButtonEvent( 81 scoped_xevent_.InitGenericButtonEvent(kTouchPadDeviceId, type, location, 0);
84 kTouchPadDeviceId,
85 type,
86 location,
87 0);
88 return new ui::MouseEvent(scoped_xevent_); 82 return new ui::MouseEvent(scoped_xevent_);
89 #else 83 #else
90 return GenerateSynthesizedMouseEventAt(type, location); 84 return GenerateSynthesizedMouseEventAt(type, location);
91 #endif 85 #endif
92 } 86 }
93 87
94 ui::MouseWheelEvent* GenerateMouseWheelEvent(int wheel_delta) { 88 ui::MouseWheelEvent* GenerateMouseWheelEvent(int wheel_delta) {
95 #if defined(USE_X11) 89 #if defined(USE_X11)
96 EXPECT_NE(0, wheel_delta); 90 EXPECT_NE(0, wheel_delta);
97 scoped_xevent_.InitGenericMouseWheelEvent( 91 scoped_xevent_.InitGenericMouseWheelEvent(kTouchPadDeviceId, wheel_delta,
98 kTouchPadDeviceId, wheel_delta, 0); 92 0);
99 ui::MouseWheelEvent* event = new ui::MouseWheelEvent(scoped_xevent_); 93 ui::MouseWheelEvent* event = new ui::MouseWheelEvent(scoped_xevent_);
100 ui::Event::DispatcherApi dispatcher(event); 94 ui::Event::DispatcherApi dispatcher(event);
101 dispatcher.set_target(target_); 95 dispatcher.set_target(target_);
102 return event; 96 return event;
103 #else 97 #else
104 return GenerateSynthesizedMouseWheelEvent(wheel_delta); 98 return GenerateSynthesizedMouseWheelEvent(wheel_delta);
105 #endif 99 #endif
106 } 100 }
107 101
108 ui::ScrollEvent* GenerateScrollEvent(int scroll_delta) { 102 ui::ScrollEvent* GenerateScrollEvent(int scroll_delta) {
109 #if defined(USE_X11) 103 #if defined(USE_X11)
110 scoped_xevent_.InitScrollEvent(kTouchPadDeviceId, // deviceid 104 scoped_xevent_.InitScrollEvent(kTouchPadDeviceId, // deviceid
111 0, // x_offset 105 0, // x_offset
112 scroll_delta, // y_offset 106 scroll_delta, // y_offset
113 0, // x_offset_ordinal 107 0, // x_offset_ordinal
114 scroll_delta, // y_offset_ordinal 108 scroll_delta, // y_offset_ordinal
115 2); // finger_count 109 2); // finger_count
116 ui::ScrollEvent* event = new ui::ScrollEvent(scoped_xevent_); 110 ui::ScrollEvent* event = new ui::ScrollEvent(scoped_xevent_);
117 ui::Event::DispatcherApi dispatcher(event); 111 ui::Event::DispatcherApi dispatcher(event);
118 dispatcher.set_target(target_); 112 dispatcher.set_target(target_);
119 return event; 113 return event;
120 #else 114 #else
121 ui::ScrollEvent* event = new ui::ScrollEvent( 115 ui::ScrollEvent* event = new ui::ScrollEvent(
122 ui::ET_SCROLL, gfx::Point(0, 0), ui::EventTimeForNow(), ui::EF_NONE, 116 ui::ET_SCROLL, gfx::Point(0, 0), ui::EventTimeForNow(), ui::EF_NONE,
123 0, // x_offset 117 0, // x_offset
124 scroll_delta, // y_offset 118 scroll_delta, // y_offset
125 0, // x_offset_ordinal 119 0, // x_offset_ordinal
126 scroll_delta, // y_offset_ordinal 120 scroll_delta, // y_offset_ordinal
127 2); // finger_count 121 2); // finger_count
128 ui::Event::DispatcherApi dispatcher(event); 122 ui::Event::DispatcherApi dispatcher(event);
129 dispatcher.set_target(target_); 123 dispatcher.set_target(target_);
130 return event; 124 return event;
131 #endif 125 #endif
132 } 126 }
133 127
134 ui::ScrollEvent* GenerateFlingScrollEvent(int fling_delta, 128 ui::ScrollEvent* GenerateFlingScrollEvent(int fling_delta, bool is_cancel) {
135 bool is_cancel) {
136 #if defined(USE_X11) 129 #if defined(USE_X11)
137 scoped_xevent_.InitFlingScrollEvent( 130 scoped_xevent_.InitFlingScrollEvent(kTouchPadDeviceId, // deviceid
138 kTouchPadDeviceId, // deviceid 131 0, // x_velocity
139 0, // x_velocity 132 fling_delta, // y_velocity
140 fling_delta, // y_velocity 133 0, // x_velocity_ordinal
141 0, // x_velocity_ordinal 134 fling_delta, // y_velocity_ordinal
142 fling_delta, // y_velocity_ordinal 135 is_cancel); // is_cancel
143 is_cancel); // is_cancel
144 ui::ScrollEvent* event = new ui::ScrollEvent(scoped_xevent_); 136 ui::ScrollEvent* event = new ui::ScrollEvent(scoped_xevent_);
145 ui::Event::DispatcherApi dispatcher(event); 137 ui::Event::DispatcherApi dispatcher(event);
146 dispatcher.set_target(target_); 138 dispatcher.set_target(target_);
147 return event; 139 return event;
148 #else 140 #else
149 ui::ScrollEvent* event = new ui::ScrollEvent( 141 ui::ScrollEvent* event = new ui::ScrollEvent(
150 is_cancel ? ui::ET_SCROLL_FLING_CANCEL : ui::ET_SCROLL_FLING_START, 142 is_cancel ? ui::ET_SCROLL_FLING_CANCEL : ui::ET_SCROLL_FLING_START,
151 gfx::Point(0, 0), ui::EventTimeForNow(), ui::EF_NONE, 143 gfx::Point(0, 0), ui::EventTimeForNow(), ui::EF_NONE,
152 0, // x_velocity 144 0, // x_velocity
153 fling_delta, // y_velocity 145 fling_delta, // y_velocity
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 536
545 // Mouse events should not disable locked mode. 537 // Mouse events should not disable locked mode.
546 for (int i = 0; i < 3; ++i) { 538 for (int i = 0; i < 3; ++i) {
547 bool released = false; 539 bool released = false;
548 int mod_down_flags = 0; 540 int mod_down_flags = 0;
549 ev.reset(GenerateMouseEvent(ui::ET_MOUSE_PRESSED)); 541 ev.reset(GenerateMouseEvent(ui::ET_MOUSE_PRESSED));
550 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released); 542 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released);
551 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 543 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
552 ev.reset(GenerateMouseEvent(ui::ET_MOUSE_RELEASED)); 544 ev.reset(GenerateMouseEvent(ui::ET_MOUSE_RELEASED));
553 released = false; 545 released = false;
554 mod_down_flags = 0; 546 mod_down_flags = 0;
555 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released); 547 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released);
556 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 548 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
557 EXPECT_EQ(STICKY_KEY_STATE_LOCKED, sticky_key.current_state()); 549 EXPECT_EQ(STICKY_KEY_STATE_LOCKED, sticky_key.current_state());
558 } 550 }
559 551
560 // Test with mouse wheel. 552 // Test with mouse wheel.
561 for (int i = 0; i < 3; ++i) { 553 for (int i = 0; i < 3; ++i) {
562 bool released = false; 554 bool released = false;
563 int mod_down_flags = 0; 555 int mod_down_flags = 0;
564 ev.reset(GenerateMouseWheelEvent(ui::MouseWheelEvent::kWheelDelta)); 556 ev.reset(GenerateMouseWheelEvent(ui::MouseWheelEvent::kWheelDelta));
565 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released); 557 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released);
566 ev.reset(GenerateMouseWheelEvent(-ui::MouseWheelEvent::kWheelDelta)); 558 ev.reset(GenerateMouseWheelEvent(-ui::MouseWheelEvent::kWheelDelta));
567 released = false; 559 released = false;
568 mod_down_flags = 0; 560 mod_down_flags = 0;
569 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released); 561 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released);
570 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 562 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
571 EXPECT_EQ(STICKY_KEY_STATE_LOCKED, sticky_key.current_state()); 563 EXPECT_EQ(STICKY_KEY_STATE_LOCKED, sticky_key.current_state());
572 } 564 }
573 565
574 // Test mixed case with mouse events and key events. 566 // Test mixed case with mouse events and key events.
575 ev.reset(GenerateMouseWheelEvent(ui::MouseWheelEvent::kWheelDelta)); 567 ev.reset(GenerateMouseWheelEvent(ui::MouseWheelEvent::kWheelDelta));
576 bool released = false; 568 bool released = false;
577 int mod_down_flags = 0; 569 int mod_down_flags = 0;
578 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released); 570 sticky_key.HandleMouseEvent(*ev.get(), &mod_down_flags, &released);
(...skipping 25 matching lines...) Expand all
604 bool released = false; 596 bool released = false;
605 int mod_down_flags = 0; 597 int mod_down_flags = 0;
606 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 598 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
607 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 599 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
608 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state()); 600 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state());
609 601
610 // Scrolls should all be modified but not disable sticky keys. 602 // Scrolls should all be modified but not disable sticky keys.
611 for (int j = 0; j < 3; ++j) { 603 for (int j = 0; j < 3; ++j) {
612 ev.reset(GenerateScrollEvent(scroll_deltas[i])); 604 ev.reset(GenerateScrollEvent(scroll_deltas[i]));
613 released = false; 605 released = false;
614 mod_down_flags = 0; 606 mod_down_flags = 0;
615 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 607 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
616 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 608 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
617 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state()); 609 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state());
618 } 610 }
619 611
620 // Fling start event ends scroll sequence. 612 // Fling start event ends scroll sequence.
621 ev.reset(GenerateFlingScrollEvent(scroll_deltas[i], false)); 613 ev.reset(GenerateFlingScrollEvent(scroll_deltas[i], false));
622 released = false; 614 released = false;
623 mod_down_flags = 0; 615 mod_down_flags = 0;
624 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 616 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
625 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 617 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
626 EXPECT_EQ(STICKY_KEY_STATE_DISABLED, sticky_key.current_state()); 618 EXPECT_EQ(STICKY_KEY_STATE_DISABLED, sticky_key.current_state());
627 619
628 std::unique_ptr<ui::Event> up_event; 620 std::unique_ptr<ui::Event> up_event;
629 EXPECT_TRUE(released); 621 EXPECT_TRUE(released);
630 ASSERT_EQ(0, sticky_key.GetModifierUpEvent(&up_event)); 622 ASSERT_EQ(0, sticky_key.GetModifierUpEvent(&up_event));
631 EXPECT_TRUE(up_event.get()); 623 EXPECT_TRUE(up_event.get());
632 EXPECT_EQ(ui::ET_KEY_RELEASED, up_event->type()); 624 EXPECT_EQ(ui::ET_KEY_RELEASED, up_event->type());
633 EXPECT_EQ(ui::VKEY_CONTROL, 625 EXPECT_EQ(ui::VKEY_CONTROL,
(...skipping 17 matching lines...) Expand all
651 bool released = false; 643 bool released = false;
652 int mod_down_flags = 0; 644 int mod_down_flags = 0;
653 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 645 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
654 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state()); 646 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state());
655 647
656 // Test that changing directions in a scroll sequence will 648 // Test that changing directions in a scroll sequence will
657 // return sticky keys to DISABLED state. 649 // return sticky keys to DISABLED state.
658 for (int j = 0; j < 3; ++j) { 650 for (int j = 0; j < 3; ++j) {
659 ev.reset(GenerateScrollEvent(10)); 651 ev.reset(GenerateScrollEvent(10));
660 released = false; 652 released = false;
661 mod_down_flags = 0; 653 mod_down_flags = 0;
662 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 654 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
663 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 655 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
664 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state()); 656 EXPECT_EQ(STICKY_KEY_STATE_ENABLED, sticky_key.current_state());
665 } 657 }
666 658
667 ev.reset(GenerateScrollEvent(direction_change_values[i])); 659 ev.reset(GenerateScrollEvent(direction_change_values[i]));
668 released = false; 660 released = false;
669 mod_down_flags = 0; 661 mod_down_flags = 0;
670 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 662 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
671 EXPECT_EQ(STICKY_KEY_STATE_DISABLED, sticky_key.current_state()); 663 EXPECT_EQ(STICKY_KEY_STATE_DISABLED, sticky_key.current_state());
672 } 664 }
673 } 665 }
674 666
675 TEST_F(StickyKeysTest, ScrollEventLocked) { 667 TEST_F(StickyKeysTest, ScrollEventLocked) {
676 std::unique_ptr<ui::ScrollEvent> ev; 668 std::unique_ptr<ui::ScrollEvent> ev;
677 std::unique_ptr<ui::KeyEvent> kev; 669 std::unique_ptr<ui::KeyEvent> kev;
678 StickyKeysHandler sticky_key(ui::EF_CONTROL_DOWN); 670 StickyKeysHandler sticky_key(ui::EF_CONTROL_DOWN);
679 671
680 // Lock sticky keys. 672 // Lock sticky keys.
681 SendActivateStickyKeyPattern(&sticky_key, ui::VKEY_CONTROL); 673 SendActivateStickyKeyPattern(&sticky_key, ui::VKEY_CONTROL);
682 SendActivateStickyKeyPattern(&sticky_key, ui::VKEY_CONTROL); 674 SendActivateStickyKeyPattern(&sticky_key, ui::VKEY_CONTROL);
683 EXPECT_EQ(STICKY_KEY_STATE_LOCKED, sticky_key.current_state()); 675 EXPECT_EQ(STICKY_KEY_STATE_LOCKED, sticky_key.current_state());
684 676
685 // Test scroll events are correctly modified in locked state. 677 // Test scroll events are correctly modified in locked state.
686 for (int i = 0; i < 5; ++i) { 678 for (int i = 0; i < 5; ++i) {
687 // Fling cancel starts scroll sequence. 679 // Fling cancel starts scroll sequence.
688 ev.reset(GenerateFlingScrollEvent(0, true)); 680 ev.reset(GenerateFlingScrollEvent(0, true));
689 bool released = false; 681 bool released = false;
690 int mod_down_flags = 0; 682 int mod_down_flags = 0;
691 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 683 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
692 684
693 ev.reset(GenerateScrollEvent(10)); 685 ev.reset(GenerateScrollEvent(10));
694 released = false; 686 released = false;
695 mod_down_flags = 0; 687 mod_down_flags = 0;
696 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 688 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
697 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 689 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
698 ev.reset(GenerateScrollEvent(-10)); 690 ev.reset(GenerateScrollEvent(-10));
699 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 691 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
700 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 692 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
701 693
702 // Fling start ends scroll sequence. 694 // Fling start ends scroll sequence.
703 ev.reset(GenerateFlingScrollEvent(-10, false)); 695 ev.reset(GenerateFlingScrollEvent(-10, false));
704 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released); 696 sticky_key.HandleScrollEvent(*ev.get(), &mod_down_flags, &released);
705 } 697 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 gfx::Point(0, 0))); 735 gfx::Point(0, 0)));
744 released = false; 736 released = false;
745 mod_down_flags = 0; 737 mod_down_flags = 0;
746 sticky_key.HandleMouseEvent(*mev.get(), &mod_down_flags, &released); 738 sticky_key.HandleMouseEvent(*mev.get(), &mod_down_flags, &released);
747 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN); 739 EXPECT_TRUE(mod_down_flags & ui::EF_CONTROL_DOWN);
748 EXPECT_TRUE(released); 740 EXPECT_TRUE(released);
749 EXPECT_EQ(STICKY_KEY_STATE_DISABLED, sticky_key.current_state()); 741 EXPECT_EQ(STICKY_KEY_STATE_DISABLED, sticky_key.current_state());
750 } 742 }
751 743
752 } // namespace ash 744 } // namespace ash
OLDNEW
« no previous file with comments | « ash/sticky_keys/sticky_keys_overlay.cc ('k') | ash/system/cast/tray_cast.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698