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

Side by Side Diff: ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc

Issue 641113004: ozone: evdev: Factor keyboard into KeyboardEvdev (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: std::bitset Created 6 years, 2 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <linux/input.h> 5 #include <linux/input.h>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/events/event.h" 12 #include "ui/events/event.h"
13 #include "ui/events/keycodes/keyboard_codes.h" 13 #include "ui/events/keycodes/keyboard_codes.h"
14 #include "ui/events/ozone/evdev/key_event_converter_evdev.h" 14 #include "ui/events/ozone/evdev/key_event_converter_evdev.h"
15 #include "ui/events/ozone/evdev/keyboard_evdev.h"
15 16
16 namespace ui { 17 namespace ui {
17 18
18 const char kTestDevicePath[] = "/dev/input/test-device"; 19 const char kTestDevicePath[] = "/dev/input/test-device";
19 20
20 class MockKeyEventConverterEvdev : public KeyEventConverterEvdev { 21 class MockKeyEventConverterEvdev : public KeyEventConverterEvdev {
21 public: 22 public:
22 MockKeyEventConverterEvdev(int fd, EventModifiersEvdev* modifiers) 23 MockKeyEventConverterEvdev(int fd, KeyboardEvdev* keyboard)
23 : KeyEventConverterEvdev( 24 : KeyEventConverterEvdev(fd,
24 fd, 25 base::FilePath(kTestDevicePath),
25 base::FilePath(kTestDevicePath), 26 1,
26 1, 27 keyboard) {
27 modifiers,
28 base::Bind(&MockKeyEventConverterEvdev::DispatchEventForTest,
29 base::Unretained(this))) {
30 Start(); 28 Start();
31 } 29 }
32 virtual ~MockKeyEventConverterEvdev() {}; 30 virtual ~MockKeyEventConverterEvdev() {};
33 31
34 unsigned size() { return dispatched_events_.size(); }
35 KeyEvent* event(unsigned index) {
36 DCHECK_GT(dispatched_events_.size(), index);
37 return dispatched_events_[index];
38 }
39
40 void DispatchEventForTest(Event* event);
41
42 private: 32 private:
43 ScopedVector<KeyEvent> dispatched_events_;
44
45 DISALLOW_COPY_AND_ASSIGN(MockKeyEventConverterEvdev); 33 DISALLOW_COPY_AND_ASSIGN(MockKeyEventConverterEvdev);
46 }; 34 };
47 35
48 void MockKeyEventConverterEvdev::DispatchEventForTest(Event* event) {
49 dispatched_events_.push_back(new KeyEvent(*static_cast<KeyEvent*>(event)));
50 }
51
52 } // namespace ui 36 } // namespace ui
53 37
54 // Test fixture. 38 // Test fixture.
55 class KeyEventConverterEvdevTest : public testing::Test { 39 class KeyEventConverterEvdevTest : public testing::Test {
56 public: 40 public:
57 KeyEventConverterEvdevTest() {} 41 KeyEventConverterEvdevTest() {}
58 42
59 // Overridden from testing::Test: 43 // Overridden from testing::Test:
60 virtual void SetUp() override { 44 virtual void SetUp() override {
61 45
62 // Set up pipe to satisfy message pump (unused). 46 // Set up pipe to satisfy message pump (unused).
63 int evdev_io[2]; 47 int evdev_io[2];
64 if (pipe(evdev_io)) 48 if (pipe(evdev_io))
65 PLOG(FATAL) << "failed pipe"; 49 PLOG(FATAL) << "failed pipe";
66 events_in_ = evdev_io[0]; 50 events_in_ = evdev_io[0];
67 events_out_ = evdev_io[1]; 51 events_out_ = evdev_io[1];
68 52
69 modifiers_ = new ui::EventModifiersEvdev(); 53 modifiers_.reset(new ui::EventModifiersEvdev());
70 device_ = new ui::MockKeyEventConverterEvdev(events_in_, modifiers_); 54 keyboard_.reset(new ui::KeyboardEvdev(
55 modifiers_.get(),
56 base::Bind(&KeyEventConverterEvdevTest::DispatchEventForTest,
57 base::Unretained(this))));
58 device_.reset(
59 new ui::MockKeyEventConverterEvdev(events_in_, keyboard_.get()));
71 } 60 }
72 virtual void TearDown() override { 61 virtual void TearDown() override {
73 delete device_; 62 device_.reset();
74 delete modifiers_; 63 keyboard_.reset();
64 modifiers_.reset();
75 close(events_in_); 65 close(events_in_);
76 close(events_out_); 66 close(events_out_);
77 } 67 }
78 68
79 ui::MockKeyEventConverterEvdev* device() { return device_; } 69 ui::MockKeyEventConverterEvdev* device() { return device_.get(); }
80 ui::EventModifiersEvdev* modifiers() { return modifiers_; } 70 ui::EventModifiersEvdev* modifiers() { return modifiers_.get(); }
71
72 unsigned size() { return dispatched_events_.size(); }
73 ui::KeyEvent* dispatched_event(unsigned index) {
74 DCHECK_GT(dispatched_events_.size(), index);
75 return dispatched_events_[index];
76 }
81 77
82 private: 78 private:
79 void DispatchEventForTest(ui::Event* event) {
80 dispatched_events_.push_back(
81 new ui::KeyEvent(*static_cast<ui::KeyEvent*>(event)));
82 }
83
83 base::MessageLoopForUI ui_loop_; 84 base::MessageLoopForUI ui_loop_;
84 85
85 ui::EventModifiersEvdev* modifiers_; 86 scoped_ptr<ui::EventModifiersEvdev> modifiers_;
86 ui::MockKeyEventConverterEvdev* device_; 87 scoped_ptr<ui::KeyboardEvdev> keyboard_;
88 scoped_ptr<ui::MockKeyEventConverterEvdev> device_;
89
90 ScopedVector<ui::KeyEvent> dispatched_events_;
87 91
88 int events_out_; 92 int events_out_;
89 int events_in_; 93 int events_in_;
90 94
91 DISALLOW_COPY_AND_ASSIGN(KeyEventConverterEvdevTest); 95 DISALLOW_COPY_AND_ASSIGN(KeyEventConverterEvdevTest);
92 }; 96 };
93 97
94 TEST_F(KeyEventConverterEvdevTest, KeyPress) { 98 TEST_F(KeyEventConverterEvdevTest, KeyPress) {
95 ui::MockKeyEventConverterEvdev* dev = device(); 99 ui::MockKeyEventConverterEvdev* dev = device();
96 100
97 struct input_event mock_kernel_queue[] = { 101 struct input_event mock_kernel_queue[] = {
98 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, 102 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a},
99 {{0, 0}, EV_KEY, KEY_BACKSPACE, 1}, 103 {{0, 0}, EV_KEY, KEY_BACKSPACE, 1},
100 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 104 {{0, 0}, EV_SYN, SYN_REPORT, 0},
101 105
102 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, 106 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a},
103 {{0, 0}, EV_KEY, KEY_BACKSPACE, 0}, 107 {{0, 0}, EV_KEY, KEY_BACKSPACE, 0},
104 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 108 {{0, 0}, EV_SYN, SYN_REPORT, 0},
105 }; 109 };
106 110
107 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue)); 111 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
108 EXPECT_EQ(2u, dev->size()); 112 EXPECT_EQ(2u, size());
109 113
110 ui::KeyEvent* event; 114 ui::KeyEvent* event;
111 115
112 event = dev->event(0); 116 event = dispatched_event(0);
113 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 117 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
114 EXPECT_EQ(ui::VKEY_BACK, event->key_code()); 118 EXPECT_EQ(ui::VKEY_BACK, event->key_code());
115 EXPECT_EQ(0, event->flags()); 119 EXPECT_EQ(0, event->flags());
116 120
117 event = dev->event(1); 121 event = dispatched_event(1);
118 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 122 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
119 EXPECT_EQ(ui::VKEY_BACK, event->key_code()); 123 EXPECT_EQ(ui::VKEY_BACK, event->key_code());
120 EXPECT_EQ(0, event->flags()); 124 EXPECT_EQ(0, event->flags());
121 } 125 }
122 126
123 TEST_F(KeyEventConverterEvdevTest, KeyRepeat) { 127 TEST_F(KeyEventConverterEvdevTest, KeyRepeat) {
124 ui::MockKeyEventConverterEvdev* dev = device(); 128 ui::MockKeyEventConverterEvdev* dev = device();
125 129
126 struct input_event mock_kernel_queue[] = { 130 struct input_event mock_kernel_queue[] = {
127 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, 131 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a},
128 {{0, 0}, EV_KEY, KEY_BACKSPACE, 1}, 132 {{0, 0}, EV_KEY, KEY_BACKSPACE, 1},
129 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 133 {{0, 0}, EV_SYN, SYN_REPORT, 0},
130 134
131 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, 135 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a},
132 {{0, 0}, EV_KEY, KEY_BACKSPACE, 2}, 136 {{0, 0}, EV_KEY, KEY_BACKSPACE, 2},
133 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 137 {{0, 0}, EV_SYN, SYN_REPORT, 0},
134 138
135 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, 139 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a},
136 {{0, 0}, EV_KEY, KEY_BACKSPACE, 2}, 140 {{0, 0}, EV_KEY, KEY_BACKSPACE, 2},
137 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 141 {{0, 0}, EV_SYN, SYN_REPORT, 0},
138 142
139 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, 143 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a},
140 {{0, 0}, EV_KEY, KEY_BACKSPACE, 0}, 144 {{0, 0}, EV_KEY, KEY_BACKSPACE, 0},
141 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 145 {{0, 0}, EV_SYN, SYN_REPORT, 0},
142 }; 146 };
143 147
144 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue)); 148 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
145 EXPECT_EQ(4u, dev->size()); 149 EXPECT_EQ(4u, size());
146 150
147 ui::KeyEvent* event; 151 ui::KeyEvent* event;
148 152
149 event = dev->event(0); 153 event = dispatched_event(0);
150 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 154 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
151 EXPECT_EQ(ui::VKEY_BACK, event->key_code()); 155 EXPECT_EQ(ui::VKEY_BACK, event->key_code());
152 EXPECT_EQ(0, event->flags()); 156 EXPECT_EQ(0, event->flags());
153 157
154 event = dev->event(1); 158 event = dispatched_event(1);
155 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 159 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
156 EXPECT_EQ(ui::VKEY_BACK, event->key_code()); 160 EXPECT_EQ(ui::VKEY_BACK, event->key_code());
157 EXPECT_EQ(0, event->flags()); 161 EXPECT_EQ(0, event->flags());
158 162
159 event = dev->event(2); 163 event = dispatched_event(2);
160 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 164 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
161 EXPECT_EQ(ui::VKEY_BACK, event->key_code()); 165 EXPECT_EQ(ui::VKEY_BACK, event->key_code());
162 EXPECT_EQ(0, event->flags()); 166 EXPECT_EQ(0, event->flags());
163 167
164 event = dev->event(3); 168 event = dispatched_event(3);
165 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 169 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
166 EXPECT_EQ(ui::VKEY_BACK, event->key_code()); 170 EXPECT_EQ(ui::VKEY_BACK, event->key_code());
167 EXPECT_EQ(0, event->flags()); 171 EXPECT_EQ(0, event->flags());
168 } 172 }
169 173
170 TEST_F(KeyEventConverterEvdevTest, NoEvents) { 174 TEST_F(KeyEventConverterEvdevTest, NoEvents) {
171 ui::MockKeyEventConverterEvdev* dev = device(); 175 ui::MockKeyEventConverterEvdev* dev = device();
172 dev->ProcessEvents(NULL, 0); 176 dev->ProcessEvents(NULL, 0);
173 EXPECT_EQ(0u, dev->size()); 177 EXPECT_EQ(0u, size());
174 } 178 }
175 179
176 TEST_F(KeyEventConverterEvdevTest, KeyWithModifier) { 180 TEST_F(KeyEventConverterEvdevTest, KeyWithModifier) {
177 ui::MockKeyEventConverterEvdev* dev = device(); 181 ui::MockKeyEventConverterEvdev* dev = device();
178 182
179 struct input_event mock_kernel_queue[] = { 183 struct input_event mock_kernel_queue[] = {
180 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1}, 184 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1},
181 {{0, 0}, EV_KEY, KEY_LEFTSHIFT, 1}, 185 {{0, 0}, EV_KEY, KEY_LEFTSHIFT, 1},
182 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 186 {{0, 0}, EV_SYN, SYN_REPORT, 0},
183 187
184 {{0, 0}, EV_MSC, MSC_SCAN, 0x70004}, 188 {{0, 0}, EV_MSC, MSC_SCAN, 0x70004},
185 {{0, 0}, EV_KEY, KEY_A, 1}, 189 {{0, 0}, EV_KEY, KEY_A, 1},
186 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 190 {{0, 0}, EV_SYN, SYN_REPORT, 0},
187 191
188 {{0, 0}, EV_MSC, MSC_SCAN, 0x70004}, 192 {{0, 0}, EV_MSC, MSC_SCAN, 0x70004},
189 {{0, 0}, EV_KEY, KEY_A, 0}, 193 {{0, 0}, EV_KEY, KEY_A, 0},
190 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 194 {{0, 0}, EV_SYN, SYN_REPORT, 0},
191 195
192 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1}, 196 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1},
193 {{0, 0}, EV_KEY, KEY_LEFTSHIFT, 0}, 197 {{0, 0}, EV_KEY, KEY_LEFTSHIFT, 0},
194 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 198 {{0, 0}, EV_SYN, SYN_REPORT, 0},
195 }; 199 };
196 200
197 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue)); 201 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
198 EXPECT_EQ(4u, dev->size()); 202 EXPECT_EQ(4u, size());
199 203
200 ui::KeyEvent* event; 204 ui::KeyEvent* event;
201 205
202 event = dev->event(0); 206 event = dispatched_event(0);
203 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 207 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
204 EXPECT_EQ(ui::VKEY_SHIFT, event->key_code()); 208 EXPECT_EQ(ui::VKEY_SHIFT, event->key_code());
205 EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags()); 209 EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags());
206 210
207 event = dev->event(1); 211 event = dispatched_event(1);
208 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 212 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
209 EXPECT_EQ(ui::VKEY_A, event->key_code()); 213 EXPECT_EQ(ui::VKEY_A, event->key_code());
210 EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags()); 214 EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags());
211 215
212 event = dev->event(2); 216 event = dispatched_event(2);
213 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 217 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
214 EXPECT_EQ(ui::VKEY_A, event->key_code()); 218 EXPECT_EQ(ui::VKEY_A, event->key_code());
215 EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags()); 219 EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags());
216 220
217 event = dev->event(3); 221 event = dispatched_event(3);
218 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 222 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
219 EXPECT_EQ(ui::VKEY_SHIFT, event->key_code()); 223 EXPECT_EQ(ui::VKEY_SHIFT, event->key_code());
220 EXPECT_EQ(0, event->flags()); 224 EXPECT_EQ(0, event->flags());
221 } 225 }
222 226
223 TEST_F(KeyEventConverterEvdevTest, KeyWithDuplicateModifier) { 227 TEST_F(KeyEventConverterEvdevTest, KeyWithDuplicateModifier) {
224 ui::MockKeyEventConverterEvdev* dev = device(); 228 ui::MockKeyEventConverterEvdev* dev = device();
225 229
226 struct input_event mock_kernel_queue[] = { 230 struct input_event mock_kernel_queue[] = {
227 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1}, 231 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1},
(...skipping 15 matching lines...) Expand all
243 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1}, 247 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e1},
244 {{0, 0}, EV_KEY, KEY_LEFTCTRL, 0}, 248 {{0, 0}, EV_KEY, KEY_LEFTCTRL, 0},
245 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 249 {{0, 0}, EV_SYN, SYN_REPORT, 0},
246 250
247 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e5}, 251 {{0, 0}, EV_MSC, MSC_SCAN, 0x700e5},
248 {{0, 0}, EV_KEY, KEY_RIGHTCTRL, 0}, 252 {{0, 0}, EV_KEY, KEY_RIGHTCTRL, 0},
249 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 253 {{0, 0}, EV_SYN, SYN_REPORT, 0},
250 }; 254 };
251 255
252 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue)); 256 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
253 EXPECT_EQ(6u, dev->size()); 257 EXPECT_EQ(6u, size());
254 258
255 ui::KeyEvent* event; 259 ui::KeyEvent* event;
256 260
257 event = dev->event(0); 261 event = dispatched_event(0);
258 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 262 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
259 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code()); 263 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
260 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags()); 264 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
261 265
262 event = dev->event(1); 266 event = dispatched_event(1);
263 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 267 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
264 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code()); 268 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
265 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags()); 269 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
266 270
267 event = dev->event(2); 271 event = dispatched_event(2);
268 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 272 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
269 EXPECT_EQ(ui::VKEY_Z, event->key_code()); 273 EXPECT_EQ(ui::VKEY_Z, event->key_code());
270 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags()); 274 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
271 275
272 event = dev->event(3); 276 event = dispatched_event(3);
273 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 277 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
274 EXPECT_EQ(ui::VKEY_Z, event->key_code()); 278 EXPECT_EQ(ui::VKEY_Z, event->key_code());
275 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags()); 279 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
276 280
277 event = dev->event(4); 281 event = dispatched_event(4);
278 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 282 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
279 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code()); 283 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
280 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags()); 284 EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
281 285
282 event = dev->event(5); 286 event = dispatched_event(5);
283 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 287 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
284 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code()); 288 EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
285 EXPECT_EQ(0, event->flags()); 289 EXPECT_EQ(0, event->flags());
286 } 290 }
287 291
288 TEST_F(KeyEventConverterEvdevTest, KeyWithLock) { 292 TEST_F(KeyEventConverterEvdevTest, KeyWithLock) {
289 ui::MockKeyEventConverterEvdev* dev = device(); 293 ui::MockKeyEventConverterEvdev* dev = device();
290 294
291 struct input_event mock_kernel_queue[] = { 295 struct input_event mock_kernel_queue[] = {
292 {{0, 0}, EV_MSC, MSC_SCAN, 0x70039}, 296 {{0, 0}, EV_MSC, MSC_SCAN, 0x70039},
(...skipping 15 matching lines...) Expand all
308 {{0, 0}, EV_MSC, MSC_SCAN, 0x70039}, 312 {{0, 0}, EV_MSC, MSC_SCAN, 0x70039},
309 {{0, 0}, EV_KEY, KEY_CAPSLOCK, 1}, 313 {{0, 0}, EV_KEY, KEY_CAPSLOCK, 1},
310 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 314 {{0, 0}, EV_SYN, SYN_REPORT, 0},
311 315
312 {{0, 0}, EV_MSC, MSC_SCAN, 0x70039}, 316 {{0, 0}, EV_MSC, MSC_SCAN, 0x70039},
313 {{0, 0}, EV_KEY, KEY_CAPSLOCK, 0}, 317 {{0, 0}, EV_KEY, KEY_CAPSLOCK, 0},
314 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 318 {{0, 0}, EV_SYN, SYN_REPORT, 0},
315 }; 319 };
316 320
317 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue)); 321 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
318 EXPECT_EQ(6u, dev->size()); 322 EXPECT_EQ(6u, size());
319 323
320 ui::KeyEvent* event; 324 ui::KeyEvent* event;
321 325
322 event = dev->event(0); 326 event = dispatched_event(0);
323 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 327 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
324 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code()); 328 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
325 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags()); 329 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
326 330
327 event = dev->event(1); 331 event = dispatched_event(1);
328 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 332 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
329 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code()); 333 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
330 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags()); 334 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
331 335
332 event = dev->event(2); 336 event = dispatched_event(2);
333 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 337 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
334 EXPECT_EQ(ui::VKEY_Q, event->key_code()); 338 EXPECT_EQ(ui::VKEY_Q, event->key_code());
335 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags()); 339 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
336 340
337 event = dev->event(3); 341 event = dispatched_event(3);
338 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 342 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
339 EXPECT_EQ(ui::VKEY_Q, event->key_code()); 343 EXPECT_EQ(ui::VKEY_Q, event->key_code());
340 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags()); 344 EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
341 345
342 event = dev->event(4); 346 event = dispatched_event(4);
343 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 347 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
344 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code()); 348 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
345 EXPECT_EQ(0, event->flags()); 349 EXPECT_EQ(0, event->flags());
346 350
347 event = dev->event(5); 351 event = dispatched_event(5);
348 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 352 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
349 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code()); 353 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
350 EXPECT_EQ(0, event->flags()); 354 EXPECT_EQ(0, event->flags());
351 } 355 }
OLDNEW
« no previous file with comments | « ui/events/ozone/evdev/key_event_converter_evdev.cc ('k') | ui/events/ozone/evdev/keyboard_evdev.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698