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

Side by Side Diff: chrome/browser/ui/views/ash/key_rewriter_unittest.cc

Issue 10397003: Minor improvements for key_rewriter.cc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 8 years, 7 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 | « chrome/browser/ui/views/ash/key_rewriter.cc ('k') | no next file » | 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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "chrome/browser/ui/views/ash/key_rewriter.h" 6 #include "chrome/browser/ui/views/ash/key_rewriter.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/aura/event.h" 8 #include "ui/aura/event.h"
9 9
10 #if defined(OS_CHROMEOS) 10 #if defined(OS_CHROMEOS)
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 XKeysymToKeycode(ui::GetXDisplay(), XK_Control_R); 99 XKeysymToKeycode(ui::GetXDisplay(), XK_Control_R);
100 100
101 // First, test with a PC keyboard. 101 // First, test with a PC keyboard.
102 KeyRewriter rewriter; 102 KeyRewriter rewriter;
103 rewriter.DeviceAddedForTesting(0, "PC Keyboard"); 103 rewriter.DeviceAddedForTesting(0, "PC Keyboard");
104 rewriter.set_last_device_id_for_testing(0); 104 rewriter.set_last_device_id_for_testing(0);
105 { 105 {
106 // XK_a, Alt modifier. 106 // XK_a, Alt modifier.
107 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN, kKeycodeA, Mod1Mask, &xev); 107 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN, kKeycodeA, Mod1Mask, &xev);
108 aura::KeyEvent keyevent(&xev, false /* is_char */); 108 aura::KeyEvent keyevent(&xev, false /* is_char */);
109 rewriter.RewriteCommandToControlForTesting(&keyevent); 109 rewriter.RewriteForTesting(&keyevent);
110 EXPECT_EQ(ui::VKEY_A, keyevent.key_code()); 110 EXPECT_EQ(ui::VKEY_A, keyevent.key_code());
111 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 111 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
112 const XKeyEvent& xkey = keyevent.native_event()->xkey; 112 const XKeyEvent& xkey = keyevent.native_event()->xkey;
113 EXPECT_EQ(kKeycodeA, xkey.keycode); 113 EXPECT_EQ(kKeycodeA, xkey.keycode);
114 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state); 114 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state);
115 } 115 }
116 { 116 {
117 // XK_a, Win modifier. 117 // XK_a, Win modifier.
118 InitXKeyEvent(ui::VKEY_A, 0, kKeycodeA, Mod4Mask, &xev); 118 InitXKeyEvent(ui::VKEY_A, 0, kKeycodeA, Mod4Mask, &xev);
119 aura::KeyEvent keyevent(&xev, false /* is_char */); 119 aura::KeyEvent keyevent(&xev, false /* is_char */);
120 rewriter.RewriteCommandToControlForTesting(&keyevent); 120 rewriter.RewriteForTesting(&keyevent);
121 EXPECT_EQ(ui::VKEY_A, keyevent.key_code()); 121 EXPECT_EQ(ui::VKEY_A, keyevent.key_code());
122 EXPECT_EQ(0, keyevent.flags()); 122 EXPECT_EQ(0, keyevent.flags());
123 const XKeyEvent& xkey = keyevent.native_event()->xkey; 123 const XKeyEvent& xkey = keyevent.native_event()->xkey;
124 EXPECT_EQ(kKeycodeA, xkey.keycode); 124 EXPECT_EQ(kKeycodeA, xkey.keycode);
125 EXPECT_EQ(static_cast<unsigned int>(Mod4Mask), xkey.state); 125 EXPECT_EQ(static_cast<unsigned int>(Mod4Mask), xkey.state);
126 } 126 }
127 { 127 {
128 // XK_a, Alt+Win modifier. 128 // XK_a, Alt+Win modifier.
129 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN, 129 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN,
130 kKeycodeA, Mod1Mask | Mod4Mask, &xev); 130 kKeycodeA, Mod1Mask | Mod4Mask, &xev);
131 aura::KeyEvent keyevent(&xev, false /* is_char */); 131 aura::KeyEvent keyevent(&xev, false /* is_char */);
132 rewriter.RewriteCommandToControlForTesting(&keyevent); 132 rewriter.RewriteForTesting(&keyevent);
133 EXPECT_EQ(ui::VKEY_A, keyevent.key_code()); 133 EXPECT_EQ(ui::VKEY_A, keyevent.key_code());
134 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 134 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
135 const XKeyEvent& xkey = keyevent.native_event()->xkey; 135 const XKeyEvent& xkey = keyevent.native_event()->xkey;
136 EXPECT_EQ(kKeycodeA, xkey.keycode); 136 EXPECT_EQ(kKeycodeA, xkey.keycode);
137 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod4Mask), xkey.state); 137 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod4Mask), xkey.state);
138 } 138 }
139 { 139 {
140 // XK_Super_L (left Windows key), Alt modifier. 140 // XK_Super_L (left Windows key), Alt modifier.
141 InitXKeyEvent(ui::VKEY_LWIN, ui::EF_ALT_DOWN, 141 InitXKeyEvent(ui::VKEY_LWIN, ui::EF_ALT_DOWN,
142 kKeycodeSuperL, Mod1Mask, &xev); 142 kKeycodeSuperL, Mod1Mask, &xev);
143 aura::KeyEvent keyevent(&xev, false /* is_char */); 143 aura::KeyEvent keyevent(&xev, false /* is_char */);
144 rewriter.RewriteCommandToControlForTesting(&keyevent); 144 rewriter.RewriteForTesting(&keyevent);
145 EXPECT_EQ(ui::VKEY_LWIN, keyevent.key_code()); 145 EXPECT_EQ(ui::VKEY_LWIN, keyevent.key_code());
146 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 146 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
147 const XKeyEvent& xkey = keyevent.native_event()->xkey; 147 const XKeyEvent& xkey = keyevent.native_event()->xkey;
148 EXPECT_EQ(kKeycodeSuperL, xkey.keycode); 148 EXPECT_EQ(kKeycodeSuperL, xkey.keycode);
149 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state); 149 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state);
150 } 150 }
151 { 151 {
152 // XK_Super_R (right Windows key), Alt modifier. 152 // XK_Super_R (right Windows key), Alt modifier.
153 InitXKeyEvent(ui::VKEY_RWIN, ui::EF_ALT_DOWN, 153 InitXKeyEvent(ui::VKEY_RWIN, ui::EF_ALT_DOWN,
154 kKeycodeSuperR, Mod1Mask, &xev); 154 kKeycodeSuperR, Mod1Mask, &xev);
155 aura::KeyEvent keyevent(&xev, false /* is_char */); 155 aura::KeyEvent keyevent(&xev, false /* is_char */);
156 rewriter.RewriteCommandToControlForTesting(&keyevent); 156 rewriter.RewriteForTesting(&keyevent);
157 EXPECT_EQ(ui::VKEY_RWIN, keyevent.key_code()); 157 EXPECT_EQ(ui::VKEY_RWIN, keyevent.key_code());
158 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 158 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
159 const XKeyEvent& xkey = keyevent.native_event()->xkey; 159 const XKeyEvent& xkey = keyevent.native_event()->xkey;
160 EXPECT_EQ(kKeycodeSuperR, xkey.keycode); 160 EXPECT_EQ(kKeycodeSuperR, xkey.keycode);
161 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state); 161 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state);
162 } 162 }
163 163
164 // An Apple keyboard reuse the ID, zero. 164 // An Apple keyboard reuse the ID, zero.
165 rewriter.DeviceAddedForTesting(0, "Apple Keyboard"); 165 rewriter.DeviceAddedForTesting(0, "Apple Keyboard");
166 rewriter.set_last_device_id_for_testing(0); 166 rewriter.set_last_device_id_for_testing(0);
167 { 167 {
168 // XK_a, Alt modifier. 168 // XK_a, Alt modifier.
169 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN, kKeycodeA, Mod1Mask, &xev); 169 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN, kKeycodeA, Mod1Mask, &xev);
170 aura::KeyEvent keyevent(&xev, false /* is_char */); 170 aura::KeyEvent keyevent(&xev, false /* is_char */);
171 rewriter.RewriteCommandToControlForTesting(&keyevent); 171 rewriter.RewriteForTesting(&keyevent);
172 EXPECT_EQ(ui::VKEY_A, keyevent.key_code()); 172 EXPECT_EQ(ui::VKEY_A, keyevent.key_code());
173 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 173 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
174 const XKeyEvent& xkey = keyevent.native_event()->xkey; 174 const XKeyEvent& xkey = keyevent.native_event()->xkey;
175 EXPECT_EQ(kKeycodeA, xkey.keycode); 175 EXPECT_EQ(kKeycodeA, xkey.keycode);
176 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state); 176 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state);
177 } 177 }
178 { 178 {
179 // XK_a, Win modifier. 179 // XK_a, Win modifier.
180 InitXKeyEvent(ui::VKEY_A, 0, kKeycodeA, Mod4Mask, &xev); 180 InitXKeyEvent(ui::VKEY_A, 0, kKeycodeA, Mod4Mask, &xev);
181 aura::KeyEvent keyevent(&xev, false /* is_char */); 181 aura::KeyEvent keyevent(&xev, false /* is_char */);
182 rewriter.RewriteCommandToControlForTesting(&keyevent); 182 rewriter.RewriteForTesting(&keyevent);
183 EXPECT_EQ(ui::VKEY_A, keyevent.key_code()); 183 EXPECT_EQ(ui::VKEY_A, keyevent.key_code());
184 EXPECT_EQ(ui::EF_CONTROL_DOWN, keyevent.flags()); 184 EXPECT_EQ(ui::EF_CONTROL_DOWN, keyevent.flags());
185 const XKeyEvent& xkey = keyevent.native_event()->xkey; 185 const XKeyEvent& xkey = keyevent.native_event()->xkey;
186 EXPECT_EQ(kKeycodeA, xkey.keycode); 186 EXPECT_EQ(kKeycodeA, xkey.keycode);
187 EXPECT_EQ(static_cast<unsigned int>(ControlMask), xkey.state); 187 EXPECT_EQ(static_cast<unsigned int>(ControlMask), xkey.state);
188 } 188 }
189 { 189 {
190 // XK_a, Alt+Win modifier. 190 // XK_a, Alt+Win modifier.
191 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN, 191 InitXKeyEvent(ui::VKEY_A, ui::EF_ALT_DOWN,
192 kKeycodeA, Mod1Mask | Mod4Mask, &xev); 192 kKeycodeA, Mod1Mask | Mod4Mask, &xev);
193 aura::KeyEvent keyevent(&xev, false /* is_char */); 193 aura::KeyEvent keyevent(&xev, false /* is_char */);
194 rewriter.RewriteCommandToControlForTesting(&keyevent); 194 rewriter.RewriteForTesting(&keyevent);
195 EXPECT_EQ(ui::VKEY_A, keyevent.key_code()); 195 EXPECT_EQ(ui::VKEY_A, keyevent.key_code());
196 EXPECT_EQ(ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, keyevent.flags()); 196 EXPECT_EQ(ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, keyevent.flags());
197 const XKeyEvent& xkey = keyevent.native_event()->xkey; 197 const XKeyEvent& xkey = keyevent.native_event()->xkey;
198 EXPECT_EQ(kKeycodeA, xkey.keycode); 198 EXPECT_EQ(kKeycodeA, xkey.keycode);
199 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | ControlMask), xkey.state); 199 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | ControlMask), xkey.state);
200 } 200 }
201 { 201 {
202 // XK_Super_L (left Windows key), Alt modifier. 202 // XK_Super_L (left Windows key), Alt modifier.
203 InitXKeyEvent(ui::VKEY_LWIN, ui::EF_ALT_DOWN, 203 InitXKeyEvent(ui::VKEY_LWIN, ui::EF_ALT_DOWN,
204 kKeycodeSuperL, Mod1Mask, &xev); 204 kKeycodeSuperL, Mod1Mask, &xev);
205 aura::KeyEvent keyevent(&xev, false /* is_char */); 205 aura::KeyEvent keyevent(&xev, false /* is_char */);
206 rewriter.RewriteCommandToControlForTesting(&keyevent); 206 rewriter.RewriteForTesting(&keyevent);
207 EXPECT_EQ(ui::VKEY_LCONTROL, keyevent.key_code()); 207 EXPECT_EQ(ui::VKEY_CONTROL, keyevent.key_code());
208 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 208 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
209 const XKeyEvent& xkey = keyevent.native_event()->xkey; 209 const XKeyEvent& xkey = keyevent.native_event()->xkey;
210 EXPECT_EQ(kKeycodeControlL, xkey.keycode); 210 EXPECT_EQ(kKeycodeControlL, xkey.keycode);
211 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state); 211 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state);
212 } 212 }
213 { 213 {
214 // XK_Super_R (right Windows key), Alt modifier. 214 // XK_Super_R (right Windows key), Alt modifier.
215 InitXKeyEvent(ui::VKEY_RWIN, ui::EF_ALT_DOWN, 215 InitXKeyEvent(ui::VKEY_RWIN, ui::EF_ALT_DOWN,
216 kKeycodeSuperR, Mod1Mask, &xev); 216 kKeycodeSuperR, Mod1Mask, &xev);
217 aura::KeyEvent keyevent(&xev, false /* is_char */); 217 aura::KeyEvent keyevent(&xev, false /* is_char */);
218 rewriter.RewriteCommandToControlForTesting(&keyevent); 218 rewriter.RewriteForTesting(&keyevent);
219 EXPECT_EQ(ui::VKEY_RCONTROL, keyevent.key_code()); 219 EXPECT_EQ(ui::VKEY_CONTROL, keyevent.key_code());
220 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 220 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
221 const XKeyEvent& xkey = keyevent.native_event()->xkey; 221 const XKeyEvent& xkey = keyevent.native_event()->xkey;
222 EXPECT_EQ(kKeycodeControlR, xkey.keycode); 222 EXPECT_EQ(kKeycodeControlR, xkey.keycode);
223 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state); 223 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask), xkey.state);
224 } 224 }
225 } 225 }
226 226
227 TEST(KeyRewriterTest, TestRewriteNumPadKeys) { 227 TEST(KeyRewriterTest, TestRewriteNumPadKeys) {
228 XEvent xev; 228 XEvent xev;
229 Display* display = ui::GetXDisplay(); 229 Display* display = ui::GetXDisplay();
(...skipping 26 matching lines...) Expand all
256 const unsigned int kKeycodeNumPadHome = XKeysymToKeycode(display, XK_KP_Home); 256 const unsigned int kKeycodeNumPadHome = XKeysymToKeycode(display, XK_KP_Home);
257 const unsigned int kKeycodeNumPadUp = XKeysymToKeycode(display, XK_KP_Up); 257 const unsigned int kKeycodeNumPadUp = XKeysymToKeycode(display, XK_KP_Up);
258 const unsigned int kKeycodeNumPadPrior = 258 const unsigned int kKeycodeNumPadPrior =
259 XKeysymToKeycode(display, XK_KP_Prior); 259 XKeysymToKeycode(display, XK_KP_Prior);
260 260
261 KeyRewriter rewriter; 261 KeyRewriter rewriter;
262 { 262 {
263 // XK_KP_Insert (= NumPad 0 without Num Lock), no modifier. 263 // XK_KP_Insert (= NumPad 0 without Num Lock), no modifier.
264 InitXKeyEvent(ui::VKEY_INSERT, 0, kKeycodeNumPadInsert, 0, &xev); 264 InitXKeyEvent(ui::VKEY_INSERT, 0, kKeycodeNumPadInsert, 0, &xev);
265 aura::KeyEvent keyevent(&xev, false /* is_char */); 265 aura::KeyEvent keyevent(&xev, false /* is_char */);
266 rewriter.RewriteNumPadKeysForTesting(&keyevent); 266 rewriter.RewriteForTesting(&keyevent);
267 EXPECT_EQ(ui::VKEY_NUMPAD0, keyevent.key_code()); 267 EXPECT_EQ(ui::VKEY_NUMPAD0, keyevent.key_code());
268 EXPECT_EQ(0, keyevent.flags()); 268 EXPECT_EQ(0, keyevent.flags());
269 const XKeyEvent& xkey = keyevent.native_event()->xkey; 269 const XKeyEvent& xkey = keyevent.native_event()->xkey;
270 EXPECT_EQ(kKeycodeNumPad0, xkey.keycode); 270 EXPECT_EQ(kKeycodeNumPad0, xkey.keycode);
271 // Mod2Mask means Num Lock. 271 // Mod2Mask means Num Lock.
272 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 272 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
273 } 273 }
274 { 274 {
275 // XK_KP_Insert (= NumPad 0 without Num Lock), Alt modifier. 275 // XK_KP_Insert (= NumPad 0 without Num Lock), Alt modifier.
276 InitXKeyEvent(ui::VKEY_INSERT, ui::EF_ALT_DOWN, 276 InitXKeyEvent(ui::VKEY_INSERT, ui::EF_ALT_DOWN,
277 kKeycodeNumPadInsert, Mod1Mask, &xev); 277 kKeycodeNumPadInsert, Mod1Mask, &xev);
278 aura::KeyEvent keyevent(&xev, false /* is_char */); 278 aura::KeyEvent keyevent(&xev, false /* is_char */);
279 rewriter.RewriteNumPadKeysForTesting(&keyevent); 279 rewriter.RewriteForTesting(&keyevent);
280 EXPECT_EQ(ui::VKEY_NUMPAD0, keyevent.key_code()); 280 EXPECT_EQ(ui::VKEY_NUMPAD0, keyevent.key_code());
281 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 281 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
282 const XKeyEvent& xkey = keyevent.native_event()->xkey; 282 const XKeyEvent& xkey = keyevent.native_event()->xkey;
283 EXPECT_EQ(kKeycodeNumPad0, xkey.keycode); 283 EXPECT_EQ(kKeycodeNumPad0, xkey.keycode);
284 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 284 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
285 } 285 }
286 { 286 {
287 // XK_KP_Delete (= NumPad . without Num Lock), Alt modifier. 287 // XK_KP_Delete (= NumPad . without Num Lock), Alt modifier.
288 InitXKeyEvent(ui::VKEY_DELETE, ui::EF_ALT_DOWN, 288 InitXKeyEvent(ui::VKEY_DELETE, ui::EF_ALT_DOWN,
289 kKeycodeNumPadDelete, Mod1Mask, &xev); 289 kKeycodeNumPadDelete, Mod1Mask, &xev);
290 aura::KeyEvent keyevent(&xev, false /* is_char */); 290 aura::KeyEvent keyevent(&xev, false /* is_char */);
291 rewriter.RewriteNumPadKeysForTesting(&keyevent); 291 rewriter.RewriteForTesting(&keyevent);
292 EXPECT_EQ(ui::VKEY_DECIMAL, keyevent.key_code()); 292 EXPECT_EQ(ui::VKEY_DECIMAL, keyevent.key_code());
293 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 293 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
294 const XKeyEvent& xkey = keyevent.native_event()->xkey; 294 const XKeyEvent& xkey = keyevent.native_event()->xkey;
295 EXPECT_EQ(kKeycodeNumPadDecimal, xkey.keycode); 295 EXPECT_EQ(kKeycodeNumPadDecimal, xkey.keycode);
296 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 296 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
297 } 297 }
298 { 298 {
299 // XK_KP_End (= NumPad 1 without Num Lock), Alt modifier. 299 // XK_KP_End (= NumPad 1 without Num Lock), Alt modifier.
300 InitXKeyEvent(ui::VKEY_END, ui::EF_ALT_DOWN, 300 InitXKeyEvent(ui::VKEY_END, ui::EF_ALT_DOWN,
301 kKeycodeNumPadEnd, Mod1Mask, &xev); 301 kKeycodeNumPadEnd, Mod1Mask, &xev);
302 aura::KeyEvent keyevent(&xev, false /* is_char */); 302 aura::KeyEvent keyevent(&xev, false /* is_char */);
303 rewriter.RewriteNumPadKeysForTesting(&keyevent); 303 rewriter.RewriteForTesting(&keyevent);
304 EXPECT_EQ(ui::VKEY_NUMPAD1, keyevent.key_code()); 304 EXPECT_EQ(ui::VKEY_NUMPAD1, keyevent.key_code());
305 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 305 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
306 const XKeyEvent& xkey = keyevent.native_event()->xkey; 306 const XKeyEvent& xkey = keyevent.native_event()->xkey;
307 EXPECT_EQ(kKeycodeNumPad1, xkey.keycode); 307 EXPECT_EQ(kKeycodeNumPad1, xkey.keycode);
308 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 308 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
309 } 309 }
310 { 310 {
311 // XK_KP_Down (= NumPad 2 without Num Lock), Alt modifier. 311 // XK_KP_Down (= NumPad 2 without Num Lock), Alt modifier.
312 InitXKeyEvent(ui::VKEY_DOWN, ui::EF_ALT_DOWN, 312 InitXKeyEvent(ui::VKEY_DOWN, ui::EF_ALT_DOWN,
313 kKeycodeNumPadDown, Mod1Mask, &xev); 313 kKeycodeNumPadDown, Mod1Mask, &xev);
314 aura::KeyEvent keyevent(&xev, false /* is_char */); 314 aura::KeyEvent keyevent(&xev, false /* is_char */);
315 rewriter.RewriteNumPadKeysForTesting(&keyevent); 315 rewriter.RewriteForTesting(&keyevent);
316 EXPECT_EQ(ui::VKEY_NUMPAD2, keyevent.key_code()); 316 EXPECT_EQ(ui::VKEY_NUMPAD2, keyevent.key_code());
317 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 317 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
318 const XKeyEvent& xkey = keyevent.native_event()->xkey; 318 const XKeyEvent& xkey = keyevent.native_event()->xkey;
319 EXPECT_EQ(kKeycodeNumPad2, xkey.keycode); 319 EXPECT_EQ(kKeycodeNumPad2, xkey.keycode);
320 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 320 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
321 } 321 }
322 { 322 {
323 // XK_KP_Next (= NumPad 3 without Num Lock), Alt modifier. 323 // XK_KP_Next (= NumPad 3 without Num Lock), Alt modifier.
324 InitXKeyEvent(ui::VKEY_NEXT, ui::EF_ALT_DOWN, 324 InitXKeyEvent(ui::VKEY_NEXT, ui::EF_ALT_DOWN,
325 kKeycodeNumPadNext, Mod1Mask, &xev); 325 kKeycodeNumPadNext, Mod1Mask, &xev);
326 aura::KeyEvent keyevent(&xev, false /* is_char */); 326 aura::KeyEvent keyevent(&xev, false /* is_char */);
327 rewriter.RewriteNumPadKeysForTesting(&keyevent); 327 rewriter.RewriteForTesting(&keyevent);
328 EXPECT_EQ(ui::VKEY_NUMPAD3, keyevent.key_code()); 328 EXPECT_EQ(ui::VKEY_NUMPAD3, keyevent.key_code());
329 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 329 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
330 const XKeyEvent& xkey = keyevent.native_event()->xkey; 330 const XKeyEvent& xkey = keyevent.native_event()->xkey;
331 EXPECT_EQ(kKeycodeNumPad3, xkey.keycode); 331 EXPECT_EQ(kKeycodeNumPad3, xkey.keycode);
332 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 332 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
333 } 333 }
334 { 334 {
335 // XK_KP_Left (= NumPad 4 without Num Lock), Alt modifier. 335 // XK_KP_Left (= NumPad 4 without Num Lock), Alt modifier.
336 InitXKeyEvent(ui::VKEY_LEFT, ui::EF_ALT_DOWN, 336 InitXKeyEvent(ui::VKEY_LEFT, ui::EF_ALT_DOWN,
337 kKeycodeNumPadLeft, Mod1Mask, &xev); 337 kKeycodeNumPadLeft, Mod1Mask, &xev);
338 aura::KeyEvent keyevent(&xev, false /* is_char */); 338 aura::KeyEvent keyevent(&xev, false /* is_char */);
339 rewriter.RewriteNumPadKeysForTesting(&keyevent); 339 rewriter.RewriteForTesting(&keyevent);
340 EXPECT_EQ(ui::VKEY_NUMPAD4, keyevent.key_code()); 340 EXPECT_EQ(ui::VKEY_NUMPAD4, keyevent.key_code());
341 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 341 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
342 const XKeyEvent& xkey = keyevent.native_event()->xkey; 342 const XKeyEvent& xkey = keyevent.native_event()->xkey;
343 EXPECT_EQ(kKeycodeNumPad4, xkey.keycode); 343 EXPECT_EQ(kKeycodeNumPad4, xkey.keycode);
344 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 344 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
345 } 345 }
346 { 346 {
347 // XK_KP_Begin (= NumPad 5 without Num Lock), Alt modifier. 347 // XK_KP_Begin (= NumPad 5 without Num Lock), Alt modifier.
348 InitXKeyEvent(ui::VKEY_CLEAR, ui::EF_ALT_DOWN, 348 InitXKeyEvent(ui::VKEY_CLEAR, ui::EF_ALT_DOWN,
349 kKeycodeNumPadBegin, Mod1Mask, &xev); 349 kKeycodeNumPadBegin, Mod1Mask, &xev);
350 aura::KeyEvent keyevent(&xev, false /* is_char */); 350 aura::KeyEvent keyevent(&xev, false /* is_char */);
351 rewriter.RewriteNumPadKeysForTesting(&keyevent); 351 rewriter.RewriteForTesting(&keyevent);
352 EXPECT_EQ(ui::VKEY_NUMPAD5, keyevent.key_code()); 352 EXPECT_EQ(ui::VKEY_NUMPAD5, keyevent.key_code());
353 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 353 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
354 const XKeyEvent& xkey = keyevent.native_event()->xkey; 354 const XKeyEvent& xkey = keyevent.native_event()->xkey;
355 EXPECT_EQ(kKeycodeNumPad5, xkey.keycode); 355 EXPECT_EQ(kKeycodeNumPad5, xkey.keycode);
356 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 356 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
357 } 357 }
358 { 358 {
359 // XK_KP_Right (= NumPad 6 without Num Lock), Alt modifier. 359 // XK_KP_Right (= NumPad 6 without Num Lock), Alt modifier.
360 InitXKeyEvent(ui::VKEY_RIGHT, ui::EF_ALT_DOWN, 360 InitXKeyEvent(ui::VKEY_RIGHT, ui::EF_ALT_DOWN,
361 kKeycodeNumPadRight, Mod1Mask, &xev); 361 kKeycodeNumPadRight, Mod1Mask, &xev);
362 aura::KeyEvent keyevent(&xev, false /* is_char */); 362 aura::KeyEvent keyevent(&xev, false /* is_char */);
363 rewriter.RewriteNumPadKeysForTesting(&keyevent); 363 rewriter.RewriteForTesting(&keyevent);
364 EXPECT_EQ(ui::VKEY_NUMPAD6, keyevent.key_code()); 364 EXPECT_EQ(ui::VKEY_NUMPAD6, keyevent.key_code());
365 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 365 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
366 const XKeyEvent& xkey = keyevent.native_event()->xkey; 366 const XKeyEvent& xkey = keyevent.native_event()->xkey;
367 EXPECT_EQ(kKeycodeNumPad6, xkey.keycode); 367 EXPECT_EQ(kKeycodeNumPad6, xkey.keycode);
368 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 368 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
369 } 369 }
370 { 370 {
371 // XK_KP_Home (= NumPad 7 without Num Lock), Alt modifier. 371 // XK_KP_Home (= NumPad 7 without Num Lock), Alt modifier.
372 InitXKeyEvent(ui::VKEY_HOME, ui::EF_ALT_DOWN, 372 InitXKeyEvent(ui::VKEY_HOME, ui::EF_ALT_DOWN,
373 kKeycodeNumPadHome, Mod1Mask, &xev); 373 kKeycodeNumPadHome, Mod1Mask, &xev);
374 aura::KeyEvent keyevent(&xev, false /* is_char */); 374 aura::KeyEvent keyevent(&xev, false /* is_char */);
375 rewriter.RewriteNumPadKeysForTesting(&keyevent); 375 rewriter.RewriteForTesting(&keyevent);
376 EXPECT_EQ(ui::VKEY_NUMPAD7, keyevent.key_code()); 376 EXPECT_EQ(ui::VKEY_NUMPAD7, keyevent.key_code());
377 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 377 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
378 const XKeyEvent& xkey = keyevent.native_event()->xkey; 378 const XKeyEvent& xkey = keyevent.native_event()->xkey;
379 EXPECT_EQ(kKeycodeNumPad7, xkey.keycode); 379 EXPECT_EQ(kKeycodeNumPad7, xkey.keycode);
380 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 380 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
381 } 381 }
382 { 382 {
383 // XK_KP_Up (= NumPad 8 without Num Lock), Alt modifier. 383 // XK_KP_Up (= NumPad 8 without Num Lock), Alt modifier.
384 InitXKeyEvent(ui::VKEY_UP, ui::EF_ALT_DOWN, 384 InitXKeyEvent(ui::VKEY_UP, ui::EF_ALT_DOWN,
385 kKeycodeNumPadUp, Mod1Mask, &xev); 385 kKeycodeNumPadUp, Mod1Mask, &xev);
386 aura::KeyEvent keyevent(&xev, false /* is_char */); 386 aura::KeyEvent keyevent(&xev, false /* is_char */);
387 rewriter.RewriteNumPadKeysForTesting(&keyevent); 387 rewriter.RewriteForTesting(&keyevent);
388 EXPECT_EQ(ui::VKEY_NUMPAD8, keyevent.key_code()); 388 EXPECT_EQ(ui::VKEY_NUMPAD8, keyevent.key_code());
389 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 389 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
390 const XKeyEvent& xkey = keyevent.native_event()->xkey; 390 const XKeyEvent& xkey = keyevent.native_event()->xkey;
391 EXPECT_EQ(kKeycodeNumPad8, xkey.keycode); 391 EXPECT_EQ(kKeycodeNumPad8, xkey.keycode);
392 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 392 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
393 } 393 }
394 { 394 {
395 // XK_KP_Prior (= NumPad 9 without Num Lock), Alt modifier. 395 // XK_KP_Prior (= NumPad 9 without Num Lock), Alt modifier.
396 InitXKeyEvent(ui::VKEY_PRIOR, ui::EF_ALT_DOWN, 396 InitXKeyEvent(ui::VKEY_PRIOR, ui::EF_ALT_DOWN,
397 kKeycodeNumPadPrior, Mod1Mask, &xev); 397 kKeycodeNumPadPrior, Mod1Mask, &xev);
398 aura::KeyEvent keyevent(&xev, false /* is_char */); 398 aura::KeyEvent keyevent(&xev, false /* is_char */);
399 rewriter.RewriteNumPadKeysForTesting(&keyevent); 399 rewriter.RewriteForTesting(&keyevent);
400 EXPECT_EQ(ui::VKEY_NUMPAD9, keyevent.key_code()); 400 EXPECT_EQ(ui::VKEY_NUMPAD9, keyevent.key_code());
401 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags()); 401 EXPECT_EQ(ui::EF_ALT_DOWN, keyevent.flags());
402 const XKeyEvent& xkey = keyevent.native_event()->xkey; 402 const XKeyEvent& xkey = keyevent.native_event()->xkey;
403 EXPECT_EQ(kKeycodeNumPad9, xkey.keycode); 403 EXPECT_EQ(kKeycodeNumPad9, xkey.keycode);
404 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state); 404 EXPECT_EQ(static_cast<unsigned int>(Mod1Mask | Mod2Mask), xkey.state);
405 } 405 }
406 { 406 {
407 // XK_KP_0 (= NumPad 0 with Num Lock), Num Lock modifier. 407 // XK_KP_0 (= NumPad 0 with Num Lock), Num Lock modifier.
408 InitXKeyEvent(ui::VKEY_NUMPAD0, 0, kKeycodeNumPad0, Mod2Mask, &xev); 408 InitXKeyEvent(ui::VKEY_NUMPAD0, 0, kKeycodeNumPad0, Mod2Mask, &xev);
409 aura::KeyEvent keyevent(&xev, false /* is_char */); 409 aura::KeyEvent keyevent(&xev, false /* is_char */);
410 rewriter.RewriteNumPadKeysForTesting(&keyevent); 410 rewriter.RewriteForTesting(&keyevent);
411 EXPECT_EQ(ui::VKEY_NUMPAD0, keyevent.key_code()); 411 EXPECT_EQ(ui::VKEY_NUMPAD0, keyevent.key_code());
412 EXPECT_EQ(0, keyevent.flags()); 412 EXPECT_EQ(0, keyevent.flags());
413 const XKeyEvent& xkey = keyevent.native_event()->xkey; 413 const XKeyEvent& xkey = keyevent.native_event()->xkey;
414 EXPECT_EQ(kKeycodeNumPad0, xkey.keycode); 414 EXPECT_EQ(kKeycodeNumPad0, xkey.keycode);
415 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 415 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
416 } 416 }
417 { 417 {
418 // XK_KP_DECIMAL (= NumPad . with Num Lock), Num Lock modifier. 418 // XK_KP_DECIMAL (= NumPad . with Num Lock), Num Lock modifier.
419 InitXKeyEvent(ui::VKEY_DECIMAL, 0, kKeycodeNumPadDecimal, Mod2Mask, &xev); 419 InitXKeyEvent(ui::VKEY_DECIMAL, 0, kKeycodeNumPadDecimal, Mod2Mask, &xev);
420 aura::KeyEvent keyevent(&xev, false /* is_char */); 420 aura::KeyEvent keyevent(&xev, false /* is_char */);
421 rewriter.RewriteNumPadKeysForTesting(&keyevent); 421 rewriter.RewriteForTesting(&keyevent);
422 EXPECT_EQ(ui::VKEY_DECIMAL, keyevent.key_code()); 422 EXPECT_EQ(ui::VKEY_DECIMAL, keyevent.key_code());
423 EXPECT_EQ(0, keyevent.flags()); 423 EXPECT_EQ(0, keyevent.flags());
424 const XKeyEvent& xkey = keyevent.native_event()->xkey; 424 const XKeyEvent& xkey = keyevent.native_event()->xkey;
425 EXPECT_EQ(kKeycodeNumPadDecimal, xkey.keycode); 425 EXPECT_EQ(kKeycodeNumPadDecimal, xkey.keycode);
426 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 426 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
427 } 427 }
428 { 428 {
429 // XK_KP_1 (= NumPad 1 with Num Lock), Num Lock modifier. 429 // XK_KP_1 (= NumPad 1 with Num Lock), Num Lock modifier.
430 InitXKeyEvent(ui::VKEY_NUMPAD1, 0, kKeycodeNumPad1, Mod2Mask, &xev); 430 InitXKeyEvent(ui::VKEY_NUMPAD1, 0, kKeycodeNumPad1, Mod2Mask, &xev);
431 aura::KeyEvent keyevent(&xev, false /* is_char */); 431 aura::KeyEvent keyevent(&xev, false /* is_char */);
432 rewriter.RewriteNumPadKeysForTesting(&keyevent); 432 rewriter.RewriteForTesting(&keyevent);
433 EXPECT_EQ(ui::VKEY_NUMPAD1, keyevent.key_code()); 433 EXPECT_EQ(ui::VKEY_NUMPAD1, keyevent.key_code());
434 EXPECT_EQ(0, keyevent.flags()); 434 EXPECT_EQ(0, keyevent.flags());
435 const XKeyEvent& xkey = keyevent.native_event()->xkey; 435 const XKeyEvent& xkey = keyevent.native_event()->xkey;
436 EXPECT_EQ(kKeycodeNumPad1, xkey.keycode); 436 EXPECT_EQ(kKeycodeNumPad1, xkey.keycode);
437 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 437 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
438 } 438 }
439 { 439 {
440 // XK_KP_2 (= NumPad 2 with Num Lock), Num Lock modifier. 440 // XK_KP_2 (= NumPad 2 with Num Lock), Num Lock modifier.
441 InitXKeyEvent(ui::VKEY_NUMPAD2, 0, kKeycodeNumPad2, Mod2Mask, &xev); 441 InitXKeyEvent(ui::VKEY_NUMPAD2, 0, kKeycodeNumPad2, Mod2Mask, &xev);
442 aura::KeyEvent keyevent(&xev, false /* is_char */); 442 aura::KeyEvent keyevent(&xev, false /* is_char */);
443 rewriter.RewriteNumPadKeysForTesting(&keyevent); 443 rewriter.RewriteForTesting(&keyevent);
444 EXPECT_EQ(ui::VKEY_NUMPAD2, keyevent.key_code()); 444 EXPECT_EQ(ui::VKEY_NUMPAD2, keyevent.key_code());
445 EXPECT_EQ(0, keyevent.flags()); 445 EXPECT_EQ(0, keyevent.flags());
446 const XKeyEvent& xkey = keyevent.native_event()->xkey; 446 const XKeyEvent& xkey = keyevent.native_event()->xkey;
447 EXPECT_EQ(kKeycodeNumPad2, xkey.keycode); 447 EXPECT_EQ(kKeycodeNumPad2, xkey.keycode);
448 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 448 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
449 } 449 }
450 { 450 {
451 // XK_KP_3 (= NumPad 3 with Num Lock), Num Lock modifier. 451 // XK_KP_3 (= NumPad 3 with Num Lock), Num Lock modifier.
452 InitXKeyEvent(ui::VKEY_NUMPAD3, 0, kKeycodeNumPad3, Mod2Mask, &xev); 452 InitXKeyEvent(ui::VKEY_NUMPAD3, 0, kKeycodeNumPad3, Mod2Mask, &xev);
453 aura::KeyEvent keyevent(&xev, false /* is_char */); 453 aura::KeyEvent keyevent(&xev, false /* is_char */);
454 rewriter.RewriteNumPadKeysForTesting(&keyevent); 454 rewriter.RewriteForTesting(&keyevent);
455 EXPECT_EQ(ui::VKEY_NUMPAD3, keyevent.key_code()); 455 EXPECT_EQ(ui::VKEY_NUMPAD3, keyevent.key_code());
456 EXPECT_EQ(0, keyevent.flags()); 456 EXPECT_EQ(0, keyevent.flags());
457 const XKeyEvent& xkey = keyevent.native_event()->xkey; 457 const XKeyEvent& xkey = keyevent.native_event()->xkey;
458 EXPECT_EQ(kKeycodeNumPad3, xkey.keycode); 458 EXPECT_EQ(kKeycodeNumPad3, xkey.keycode);
459 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 459 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
460 } 460 }
461 { 461 {
462 // XK_KP_4 (= NumPad 4 with Num Lock), Num Lock modifier. 462 // XK_KP_4 (= NumPad 4 with Num Lock), Num Lock modifier.
463 InitXKeyEvent(ui::VKEY_NUMPAD4, 0, kKeycodeNumPad4, Mod2Mask, &xev); 463 InitXKeyEvent(ui::VKEY_NUMPAD4, 0, kKeycodeNumPad4, Mod2Mask, &xev);
464 aura::KeyEvent keyevent(&xev, false /* is_char */); 464 aura::KeyEvent keyevent(&xev, false /* is_char */);
465 rewriter.RewriteNumPadKeysForTesting(&keyevent); 465 rewriter.RewriteForTesting(&keyevent);
466 EXPECT_EQ(ui::VKEY_NUMPAD4, keyevent.key_code()); 466 EXPECT_EQ(ui::VKEY_NUMPAD4, keyevent.key_code());
467 EXPECT_EQ(0, keyevent.flags()); 467 EXPECT_EQ(0, keyevent.flags());
468 const XKeyEvent& xkey = keyevent.native_event()->xkey; 468 const XKeyEvent& xkey = keyevent.native_event()->xkey;
469 EXPECT_EQ(kKeycodeNumPad4, xkey.keycode); 469 EXPECT_EQ(kKeycodeNumPad4, xkey.keycode);
470 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 470 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
471 } 471 }
472 { 472 {
473 // XK_KP_5 (= NumPad 5 with Num Lock), Num Lock modifier. 473 // XK_KP_5 (= NumPad 5 with Num Lock), Num Lock modifier.
474 InitXKeyEvent(ui::VKEY_NUMPAD5, 0, kKeycodeNumPad5, Mod2Mask, &xev); 474 InitXKeyEvent(ui::VKEY_NUMPAD5, 0, kKeycodeNumPad5, Mod2Mask, &xev);
475 aura::KeyEvent keyevent(&xev, false /* is_char */); 475 aura::KeyEvent keyevent(&xev, false /* is_char */);
476 rewriter.RewriteNumPadKeysForTesting(&keyevent); 476 rewriter.RewriteForTesting(&keyevent);
477 EXPECT_EQ(ui::VKEY_NUMPAD5, keyevent.key_code()); 477 EXPECT_EQ(ui::VKEY_NUMPAD5, keyevent.key_code());
478 EXPECT_EQ(0, keyevent.flags()); 478 EXPECT_EQ(0, keyevent.flags());
479 const XKeyEvent& xkey = keyevent.native_event()->xkey; 479 const XKeyEvent& xkey = keyevent.native_event()->xkey;
480 EXPECT_EQ(kKeycodeNumPad5, xkey.keycode); 480 EXPECT_EQ(kKeycodeNumPad5, xkey.keycode);
481 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 481 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
482 } 482 }
483 { 483 {
484 // XK_KP_6 (= NumPad 6 with Num Lock), Num Lock modifier. 484 // XK_KP_6 (= NumPad 6 with Num Lock), Num Lock modifier.
485 InitXKeyEvent(ui::VKEY_NUMPAD6, 0, kKeycodeNumPad6, Mod2Mask, &xev); 485 InitXKeyEvent(ui::VKEY_NUMPAD6, 0, kKeycodeNumPad6, Mod2Mask, &xev);
486 aura::KeyEvent keyevent(&xev, false /* is_char */); 486 aura::KeyEvent keyevent(&xev, false /* is_char */);
487 rewriter.RewriteNumPadKeysForTesting(&keyevent); 487 rewriter.RewriteForTesting(&keyevent);
488 EXPECT_EQ(ui::VKEY_NUMPAD6, keyevent.key_code()); 488 EXPECT_EQ(ui::VKEY_NUMPAD6, keyevent.key_code());
489 EXPECT_EQ(0, keyevent.flags()); 489 EXPECT_EQ(0, keyevent.flags());
490 const XKeyEvent& xkey = keyevent.native_event()->xkey; 490 const XKeyEvent& xkey = keyevent.native_event()->xkey;
491 EXPECT_EQ(kKeycodeNumPad6, xkey.keycode); 491 EXPECT_EQ(kKeycodeNumPad6, xkey.keycode);
492 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 492 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
493 } 493 }
494 { 494 {
495 // XK_KP_7 (= NumPad 7 with Num Lock), Num Lock modifier. 495 // XK_KP_7 (= NumPad 7 with Num Lock), Num Lock modifier.
496 InitXKeyEvent(ui::VKEY_NUMPAD7, 0, kKeycodeNumPad7, Mod2Mask, &xev); 496 InitXKeyEvent(ui::VKEY_NUMPAD7, 0, kKeycodeNumPad7, Mod2Mask, &xev);
497 aura::KeyEvent keyevent(&xev, false /* is_char */); 497 aura::KeyEvent keyevent(&xev, false /* is_char */);
498 rewriter.RewriteNumPadKeysForTesting(&keyevent); 498 rewriter.RewriteForTesting(&keyevent);
499 EXPECT_EQ(ui::VKEY_NUMPAD7, keyevent.key_code()); 499 EXPECT_EQ(ui::VKEY_NUMPAD7, keyevent.key_code());
500 EXPECT_EQ(0, keyevent.flags()); 500 EXPECT_EQ(0, keyevent.flags());
501 const XKeyEvent& xkey = keyevent.native_event()->xkey; 501 const XKeyEvent& xkey = keyevent.native_event()->xkey;
502 EXPECT_EQ(kKeycodeNumPad7, xkey.keycode); 502 EXPECT_EQ(kKeycodeNumPad7, xkey.keycode);
503 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 503 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
504 } 504 }
505 { 505 {
506 // XK_KP_8 (= NumPad 8 with Num Lock), Num Lock modifier. 506 // XK_KP_8 (= NumPad 8 with Num Lock), Num Lock modifier.
507 InitXKeyEvent(ui::VKEY_NUMPAD8, 0, kKeycodeNumPad8, Mod2Mask, &xev); 507 InitXKeyEvent(ui::VKEY_NUMPAD8, 0, kKeycodeNumPad8, Mod2Mask, &xev);
508 aura::KeyEvent keyevent(&xev, false /* is_char */); 508 aura::KeyEvent keyevent(&xev, false /* is_char */);
509 rewriter.RewriteNumPadKeysForTesting(&keyevent); 509 rewriter.RewriteForTesting(&keyevent);
510 EXPECT_EQ(ui::VKEY_NUMPAD8, keyevent.key_code()); 510 EXPECT_EQ(ui::VKEY_NUMPAD8, keyevent.key_code());
511 EXPECT_EQ(0, keyevent.flags()); 511 EXPECT_EQ(0, keyevent.flags());
512 const XKeyEvent& xkey = keyevent.native_event()->xkey; 512 const XKeyEvent& xkey = keyevent.native_event()->xkey;
513 EXPECT_EQ(kKeycodeNumPad8, xkey.keycode); 513 EXPECT_EQ(kKeycodeNumPad8, xkey.keycode);
514 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 514 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
515 } 515 }
516 { 516 {
517 // XK_KP_9 (= NumPad 9 with Num Lock), Num Lock modifier. 517 // XK_KP_9 (= NumPad 9 with Num Lock), Num Lock modifier.
518 InitXKeyEvent(ui::VKEY_NUMPAD9, 0, kKeycodeNumPad9, Mod2Mask, &xev); 518 InitXKeyEvent(ui::VKEY_NUMPAD9, 0, kKeycodeNumPad9, Mod2Mask, &xev);
519 aura::KeyEvent keyevent(&xev, false /* is_char */); 519 aura::KeyEvent keyevent(&xev, false /* is_char */);
520 rewriter.RewriteNumPadKeysForTesting(&keyevent); 520 rewriter.RewriteForTesting(&keyevent);
521 EXPECT_EQ(ui::VKEY_NUMPAD9, keyevent.key_code()); 521 EXPECT_EQ(ui::VKEY_NUMPAD9, keyevent.key_code());
522 EXPECT_EQ(0, keyevent.flags()); 522 EXPECT_EQ(0, keyevent.flags());
523 const XKeyEvent& xkey = keyevent.native_event()->xkey; 523 const XKeyEvent& xkey = keyevent.native_event()->xkey;
524 EXPECT_EQ(kKeycodeNumPad9, xkey.keycode); 524 EXPECT_EQ(kKeycodeNumPad9, xkey.keycode);
525 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state); 525 EXPECT_EQ(static_cast<unsigned int>(Mod2Mask), xkey.state);
526 } 526 }
527 } 527 }
528
529 // Tests if the rewriter can handle a Command + Num Pad event.
530 TEST(KeyRewriterTest, TestRewriteNumPadKeysOnAppleKeyboard) {
531 XEvent xev;
532 Display* display = ui::GetXDisplay();
533
534 const unsigned int kKeycodeNumPadEnd = XKeysymToKeycode(display, XK_KP_End);
535 const unsigned int kKeycodeNumPad1 = XKeysymToKeycode(display, XK_KP_1);
536
537 KeyRewriter rewriter;
538 rewriter.DeviceAddedForTesting(0, "Apple Keyboard");
539 rewriter.set_last_device_id_for_testing(0);
540 {
541 // XK_KP_End (= NumPad 1 without Num Lock), Win modifier.
542 InitXKeyEvent(ui::VKEY_END, 0, kKeycodeNumPadEnd, Mod4Mask, &xev);
543 aura::KeyEvent keyevent(&xev, false /* is_char */);
544 rewriter.RewriteForTesting(&keyevent);
545 // The result should be "Num Pad 1 with Control + Num Lock modifiers".
546 EXPECT_EQ(ui::VKEY_NUMPAD1, keyevent.key_code());
547 EXPECT_EQ(ui::EF_CONTROL_DOWN, keyevent.flags());
548 const XKeyEvent& xkey = keyevent.native_event()->xkey;
549 EXPECT_EQ(kKeycodeNumPad1, xkey.keycode);
550 EXPECT_EQ(static_cast<unsigned int>(ControlMask | Mod2Mask), xkey.state);
551 }
552 {
553 // XK_KP_1 (= NumPad 1 without Num Lock), Win modifier.
554 InitXKeyEvent(ui::VKEY_NUMPAD1, 0, kKeycodeNumPadEnd, Mod4Mask, &xev);
555 aura::KeyEvent keyevent(&xev, false /* is_char */);
556 rewriter.RewriteForTesting(&keyevent);
557 // The result should also be "Num Pad 1 with Control + Num Lock modifiers".
558 EXPECT_EQ(ui::VKEY_NUMPAD1, keyevent.key_code());
559 EXPECT_EQ(ui::EF_CONTROL_DOWN, keyevent.flags());
560 const XKeyEvent& xkey = keyevent.native_event()->xkey;
561 EXPECT_EQ(kKeycodeNumPad1, xkey.keycode);
562 EXPECT_EQ(static_cast<unsigned int>(ControlMask | Mod2Mask), xkey.state);
563 }
564 }
565
528 #endif // OS_CHROMEOS 566 #endif // OS_CHROMEOS
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/ash/key_rewriter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698