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

Side by Side Diff: remoting/client/plugin/normalizing_input_filter_mac_unittest.cc

Issue 1228333004: Move code that doesn't depend on PPAPI out of remoting/client/plugin (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "remoting/client/plugin/normalizing_input_filter_mac.h"
6
7 #include "remoting/proto/event.pb.h"
8 #include "remoting/protocol/protocol_mock_objects.h"
9 #include "remoting/protocol/test_event_matchers.h"
10 #include "remoting/protocol/usb_key_codes.h"
11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 using ::testing::InSequence;
15 using remoting::protocol::InputStub;
16 using remoting::protocol::KeyEvent;
17 using remoting::protocol::MockInputStub;
18 using remoting::protocol::MouseEvent;
19 using remoting::protocol::test::EqualsKeyEventWithNumLock;
20
21 namespace remoting {
22
23 namespace {
24
25 KeyEvent MakeKeyEvent(uint32 keycode, bool pressed) {
26 KeyEvent event;
27 event.set_usb_keycode(keycode);
28 event.set_pressed(pressed);
29 event.set_lock_states(KeyEvent::LOCK_STATES_NUMLOCK);
30 return event;
31 }
32
33 } // namespace
34
35 // Test CapsLock press/release.
36 TEST(NormalizingInputFilterMacTest, CapsLock) {
37 MockInputStub stub;
38 scoped_ptr<protocol::InputFilter> processor(
39 new NormalizingInputFilterMac(&stub));
40
41 {
42 InSequence s;
43
44 // Verifies the generated CapsLock up/down events.
45 EXPECT_CALL(stub,
46 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbCapsLock, true)));
47 EXPECT_CALL(stub,
48 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbCapsLock, false)));
49 }
50
51 // Injecting a CapsLock down event with NumLock on.
52 processor->InjectKeyEvent(MakeKeyEvent(kUsbCapsLock, true));
53 }
54
55 // Test without pressing command key.
56 TEST(NormalizingInputFilterMacTest, NoInjection) {
57 MockInputStub stub;
58 scoped_ptr<protocol::InputFilter> processor(
59 new NormalizingInputFilterMac(&stub));
60
61 {
62 InSequence s;
63
64 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', true)));
65 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', false)));
66 }
67
68 // C Down and C Up.
69 processor->InjectKeyEvent(MakeKeyEvent('C', true));
70 processor->InjectKeyEvent(MakeKeyEvent('C', false));
71 }
72
73 // Test pressing command key and other normal keys.
74 TEST(NormalizingInputFilterMacTest, CmdKey) {
75 MockInputStub stub;
76 scoped_ptr<protocol::InputFilter> processor(
77 new NormalizingInputFilterMac(&stub));
78
79 {
80 InSequence s;
81
82 // Left command key.
83 EXPECT_CALL(stub,
84 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, true)));
85 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', true)));
86 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', false)));
87 EXPECT_CALL(stub,
88 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, false)));
89
90 // Right command key.
91 EXPECT_CALL(stub,
92 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbRightOs, true)));
93 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', true)));
94 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', false)));
95 EXPECT_CALL(stub,
96 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbRightOs, false)));
97
98 // More than one keys after CMD.
99 EXPECT_CALL(stub,
100 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbRightOs, true)));
101 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', true)));
102 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('V', true)));
103 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', false)));
104 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('V', false)));
105 EXPECT_CALL(stub,
106 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbRightOs, false)));
107 }
108
109 // Left command key.
110 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, true));
111 processor->InjectKeyEvent(MakeKeyEvent('C', true));
112 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, false));
113
114 // Right command key.
115 processor->InjectKeyEvent(MakeKeyEvent(kUsbRightOs, true));
116 processor->InjectKeyEvent(MakeKeyEvent('C', true));
117 processor->InjectKeyEvent(MakeKeyEvent(kUsbRightOs, false));
118
119 // More than one keys after CMD.
120 processor->InjectKeyEvent(MakeKeyEvent(kUsbRightOs, true));
121 processor->InjectKeyEvent(MakeKeyEvent('C', true));
122 processor->InjectKeyEvent(MakeKeyEvent('V', true));
123 processor->InjectKeyEvent(MakeKeyEvent(kUsbRightOs, false));
124 }
125
126 // Test pressing command and special keys.
127 TEST(NormalizingInputFilterMacTest, SpecialKeys) {
128 MockInputStub stub;
129 scoped_ptr<protocol::InputFilter> processor(
130 new NormalizingInputFilterMac(&stub));
131
132 {
133 InSequence s;
134
135 // Command + Shift.
136 EXPECT_CALL(stub,
137 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, true)));
138 EXPECT_CALL(stub,
139 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftShift, true)));
140 EXPECT_CALL(stub,
141 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, false)));
142 EXPECT_CALL(
143 stub, InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftShift, false)));
144
145 // Command + Option.
146 EXPECT_CALL(stub,
147 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, true)));
148 EXPECT_CALL(
149 stub, InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftAlt, true)));
150 EXPECT_CALL(stub,
151 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, false)));
152 EXPECT_CALL(
153 stub, InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftAlt, false)));
154 }
155
156 // Command + Shift.
157 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, true));
158 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftShift, true));
159 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, false));
160 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftShift, false));
161
162 // Command + Option.
163 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, true));
164 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftAlt, true));
165 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, false));
166 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftAlt, false));
167 }
168
169 // Test pressing multiple command keys.
170 TEST(NormalizingInputFilterMacTest, MultipleCmdKeys) {
171 MockInputStub stub;
172 scoped_ptr<protocol::InputFilter> processor(
173 new NormalizingInputFilterMac(&stub));
174
175 {
176 InSequence s;
177
178 EXPECT_CALL(stub,
179 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, true)));
180 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', true)));
181 EXPECT_CALL(stub,
182 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbRightOs, true)));
183 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', false)));
184 EXPECT_CALL(stub,
185 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbLeftOs, false)));
186 }
187
188 // Test multiple CMD keys at the same time.
189 // L CMD Down, C Down, R CMD Down, L CMD Up.
190 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, true));
191 processor->InjectKeyEvent(MakeKeyEvent('C', true));
192 processor->InjectKeyEvent(MakeKeyEvent(kUsbRightOs, true));
193 processor->InjectKeyEvent(MakeKeyEvent(kUsbLeftOs, false));
194 }
195
196 // Test press C key before command key.
197 TEST(NormalizingInputFilterMacTest, BeforeCmdKey) {
198 MockInputStub stub;
199 scoped_ptr<protocol::InputFilter> processor(
200 new NormalizingInputFilterMac(&stub));
201
202 {
203 InSequence s;
204
205 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', true)));
206 EXPECT_CALL(stub,
207 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbRightOs, true)));
208 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', false)));
209 EXPECT_CALL(stub,
210 InjectKeyEvent(EqualsKeyEventWithNumLock(kUsbRightOs, false)));
211 EXPECT_CALL(stub, InjectKeyEvent(EqualsKeyEventWithNumLock('C', false)));
212 }
213
214 // Press C before command key.
215 processor->InjectKeyEvent(MakeKeyEvent('C', true));
216 processor->InjectKeyEvent(MakeKeyEvent(kUsbRightOs, true));
217 processor->InjectKeyEvent(MakeKeyEvent(kUsbRightOs, false));
218 processor->InjectKeyEvent(MakeKeyEvent('C', false));
219 }
220
221 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/plugin/normalizing_input_filter_mac.cc ('k') | remoting/client/plugin/pepper_cursor_setter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698