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

Side by Side Diff: chrome/browser/chromeos/events/event_rewriter_unittest.cc

Issue 286103004: Blocked volume up/down events that originated from remapped function keys. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated AllowsVolumeControl comment and ifdefed events_test_utils_x11.h include. Created 6 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
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 "chrome/browser/chromeos/events/event_rewriter.h" 5 #include "chrome/browser/chromeos/events/event_rewriter.h"
6 6
7 #include <X11/keysym.h> 7 #include <X11/keysym.h>
8 #include <X11/XF86keysym.h> 8 #include <X11/XF86keysym.h>
9 #include <X11/Xlib.h> 9 #include <X11/Xlib.h>
10 #undef Bool 10 #undef Bool
(...skipping 1168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1179 EventRewriter rewriter; 1179 EventRewriter rewriter;
1180 rewriter.set_pref_service_for_testing(&prefs); 1180 rewriter.set_pref_service_for_testing(&prefs);
1181 1181
1182 struct { 1182 struct {
1183 ui::KeyboardCode input; 1183 ui::KeyboardCode input;
1184 unsigned int input_mods; 1184 unsigned int input_mods;
1185 ui::KeyboardCode output; 1185 ui::KeyboardCode output;
1186 unsigned int output_mods; 1186 unsigned int output_mods;
1187 } tests[] = { 1187 } tests[] = {
1188 // F1 -> Back 1188 // F1 -> Back
1189 {ui::VKEY_F1, ui::EF_NONE, ui::VKEY_BROWSER_BACK, ui::EF_NONE}, 1189 {ui::VKEY_F1, ui::EF_NONE, ui::VKEY_BROWSER_BACK, ui::EF_FUNCTION_KEY},
1190 {ui::VKEY_F1, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_BACK, 1190 {ui::VKEY_F1, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_BACK,
1191 ui::EF_CONTROL_DOWN}, 1191 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1192 {ui::VKEY_F1, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_BACK, ui::EF_ALT_DOWN}, 1192 {ui::VKEY_F1, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_BACK,
1193 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1193 // F2 -> Forward 1194 // F2 -> Forward
1194 {ui::VKEY_F2, ui::EF_NONE, ui::VKEY_BROWSER_FORWARD, ui::EF_NONE}, 1195 {ui::VKEY_F2, ui::EF_NONE, ui::VKEY_BROWSER_FORWARD,
1196 ui::EF_FUNCTION_KEY},
1195 {ui::VKEY_F2, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_FORWARD, 1197 {ui::VKEY_F2, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_FORWARD,
1196 ui::EF_CONTROL_DOWN}, 1198 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1197 {ui::VKEY_F2, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_FORWARD, 1199 {ui::VKEY_F2, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_FORWARD,
1198 ui::EF_ALT_DOWN}, 1200 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1199 // F3 -> Refresh 1201 // F3 -> Refresh
1200 {ui::VKEY_F3, ui::EF_NONE, ui::VKEY_BROWSER_REFRESH, ui::EF_NONE}, 1202 {ui::VKEY_F3, ui::EF_NONE, ui::VKEY_BROWSER_REFRESH,
1203 ui::EF_FUNCTION_KEY},
1201 {ui::VKEY_F3, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_REFRESH, 1204 {ui::VKEY_F3, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_REFRESH,
1202 ui::EF_CONTROL_DOWN}, 1205 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1203 {ui::VKEY_F3, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_REFRESH, 1206 {ui::VKEY_F3, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_REFRESH,
1204 ui::EF_ALT_DOWN}, 1207 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1205 // F4 -> Launch App 2 1208 // F4 -> Launch App 2
1206 {ui::VKEY_F4, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE}, 1209 {ui::VKEY_F4, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP2,
1210 ui::EF_FUNCTION_KEY},
1207 {ui::VKEY_F4, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2, 1211 {ui::VKEY_F4, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2,
1208 ui::EF_CONTROL_DOWN}, 1212 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1209 {ui::VKEY_F4, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2, 1213 {ui::VKEY_F4, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2,
1210 ui::EF_ALT_DOWN}, 1214 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1211 // F5 -> Launch App 1 1215 // F5 -> Launch App 1
1212 {ui::VKEY_F5, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE}, 1216 {ui::VKEY_F5, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP1,
1217 ui::EF_FUNCTION_KEY},
1213 {ui::VKEY_F5, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1, 1218 {ui::VKEY_F5, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1,
1214 ui::EF_CONTROL_DOWN}, 1219 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1215 {ui::VKEY_F5, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1, 1220 {ui::VKEY_F5, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1,
1216 ui::EF_ALT_DOWN}, 1221 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1217 // F6 -> Brightness down 1222 // F6 -> Brightness down
1218 {ui::VKEY_F6, ui::EF_NONE, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE}, 1223 {ui::VKEY_F6, ui::EF_NONE, ui::VKEY_BRIGHTNESS_DOWN,
1224 ui::EF_FUNCTION_KEY},
1219 {ui::VKEY_F6, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_DOWN, 1225 {ui::VKEY_F6, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_DOWN,
1220 ui::EF_CONTROL_DOWN}, 1226 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1221 {ui::VKEY_F6, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_DOWN, 1227 {ui::VKEY_F6, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_DOWN,
1222 ui::EF_ALT_DOWN}, 1228 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1223 // F7 -> Brightness up 1229 // F7 -> Brightness up
1224 {ui::VKEY_F7, ui::EF_NONE, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE}, 1230 {ui::VKEY_F7, ui::EF_NONE, ui::VKEY_BRIGHTNESS_UP, ui::EF_FUNCTION_KEY},
1225 {ui::VKEY_F7, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_UP, 1231 {ui::VKEY_F7, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_UP,
1226 ui::EF_CONTROL_DOWN}, 1232 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1227 {ui::VKEY_F7, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN}, 1233 {ui::VKEY_F7, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_UP,
1234 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1228 // F8 -> Volume Mute 1235 // F8 -> Volume Mute
1229 {ui::VKEY_F8, ui::EF_NONE, ui::VKEY_VOLUME_MUTE, ui::EF_NONE}, 1236 {ui::VKEY_F8, ui::EF_NONE, ui::VKEY_VOLUME_MUTE, ui::EF_FUNCTION_KEY},
1230 {ui::VKEY_F8, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_MUTE, 1237 {ui::VKEY_F8, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_MUTE,
1231 ui::EF_CONTROL_DOWN}, 1238 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1232 {ui::VKEY_F8, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_MUTE, ui::EF_ALT_DOWN}, 1239 {ui::VKEY_F8, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_MUTE,
1240 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1233 // F9 -> Volume Down 1241 // F9 -> Volume Down
1234 {ui::VKEY_F9, ui::EF_NONE, ui::VKEY_VOLUME_DOWN, ui::EF_NONE}, 1242 {ui::VKEY_F9, ui::EF_NONE, ui::VKEY_VOLUME_DOWN, ui::EF_FUNCTION_KEY},
1235 {ui::VKEY_F9, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_DOWN, 1243 {ui::VKEY_F9, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_DOWN,
1236 ui::EF_CONTROL_DOWN}, 1244 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1237 {ui::VKEY_F9, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_DOWN, ui::EF_ALT_DOWN}, 1245 {ui::VKEY_F9, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_DOWN,
1246 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1238 // F10 -> Volume Up 1247 // F10 -> Volume Up
1239 {ui::VKEY_F10, ui::EF_NONE, ui::VKEY_VOLUME_UP, ui::EF_NONE}, 1248 {ui::VKEY_F10, ui::EF_NONE, ui::VKEY_VOLUME_UP, ui::EF_FUNCTION_KEY},
1240 {ui::VKEY_F10, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_UP, 1249 {ui::VKEY_F10, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_UP,
1241 ui::EF_CONTROL_DOWN}, 1250 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1242 {ui::VKEY_F10, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_UP, ui::EF_ALT_DOWN}, 1251 {ui::VKEY_F10, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_UP,
1252 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1243 // F11 -> F11 1253 // F11 -> F11
1244 {ui::VKEY_F11, ui::EF_NONE, ui::VKEY_F11, ui::EF_NONE}, 1254 {ui::VKEY_F11, ui::EF_NONE, ui::VKEY_F11, ui::EF_FUNCTION_KEY},
1245 {ui::VKEY_F11, ui::EF_CONTROL_DOWN, ui::VKEY_F11, ui::EF_CONTROL_DOWN}, 1255 {ui::VKEY_F11, ui::EF_CONTROL_DOWN, ui::VKEY_F11,
1246 {ui::VKEY_F11, ui::EF_ALT_DOWN, ui::VKEY_F11, ui::EF_ALT_DOWN}, 1256 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1257 {ui::VKEY_F11, ui::EF_ALT_DOWN, ui::VKEY_F11,
1258 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1247 // F12 -> F12 1259 // F12 -> F12
1248 {ui::VKEY_F12, ui::EF_NONE, ui::VKEY_F12, ui::EF_NONE}, 1260 {ui::VKEY_F12, ui::EF_NONE, ui::VKEY_F12, ui::EF_FUNCTION_KEY},
1249 {ui::VKEY_F12, ui::EF_CONTROL_DOWN, ui::VKEY_F12, ui::EF_CONTROL_DOWN}, 1261 {ui::VKEY_F12, ui::EF_CONTROL_DOWN, ui::VKEY_F12,
1250 {ui::VKEY_F12, ui::EF_ALT_DOWN, ui::VKEY_F12, ui::EF_ALT_DOWN}, 1262 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY},
1263 {ui::VKEY_F12, ui::EF_ALT_DOWN, ui::VKEY_F12,
1264 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY},
1251 1265
1252 // The number row should not be rewritten without Search key. 1266 // The number row should not be rewritten without Search key.
1253 {ui::VKEY_1, ui::EF_NONE, ui::VKEY_1, ui::EF_NONE}, 1267 {ui::VKEY_1, ui::EF_NONE, ui::VKEY_1, ui::EF_NONE},
1254 {ui::VKEY_2, ui::EF_NONE, ui::VKEY_2, ui::EF_NONE}, 1268 {ui::VKEY_2, ui::EF_NONE, ui::VKEY_2, ui::EF_NONE},
1255 {ui::VKEY_3, ui::EF_NONE, ui::VKEY_3, ui::EF_NONE}, 1269 {ui::VKEY_3, ui::EF_NONE, ui::VKEY_3, ui::EF_NONE},
1256 {ui::VKEY_4, ui::EF_NONE, ui::VKEY_4, ui::EF_NONE}, 1270 {ui::VKEY_4, ui::EF_NONE, ui::VKEY_4, ui::EF_NONE},
1257 {ui::VKEY_5, ui::EF_NONE, ui::VKEY_5, ui::EF_NONE}, 1271 {ui::VKEY_5, ui::EF_NONE, ui::VKEY_5, ui::EF_NONE},
1258 {ui::VKEY_6, ui::EF_NONE, ui::VKEY_6, ui::EF_NONE}, 1272 {ui::VKEY_6, ui::EF_NONE, ui::VKEY_6, ui::EF_NONE},
1259 {ui::VKEY_7, ui::EF_NONE, ui::VKEY_7, ui::EF_NONE}, 1273 {ui::VKEY_7, ui::EF_NONE, ui::VKEY_7, ui::EF_NONE},
1260 {ui::VKEY_8, ui::EF_NONE, ui::VKEY_8, ui::EF_NONE}, 1274 {ui::VKEY_8, ui::EF_NONE, ui::VKEY_8, ui::EF_NONE},
(...skipping 11 matching lines...) Expand all
1272 {ui::VKEY_5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_NONE}, 1286 {ui::VKEY_5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_NONE},
1273 {ui::VKEY_6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_NONE}, 1287 {ui::VKEY_6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_NONE},
1274 {ui::VKEY_7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_NONE}, 1288 {ui::VKEY_7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_NONE},
1275 {ui::VKEY_8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_NONE}, 1289 {ui::VKEY_8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_NONE},
1276 {ui::VKEY_9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_NONE}, 1290 {ui::VKEY_9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_NONE},
1277 {ui::VKEY_0, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_NONE}, 1291 {ui::VKEY_0, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_NONE},
1278 {ui::VKEY_OEM_MINUS, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_NONE}, 1292 {ui::VKEY_OEM_MINUS, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_NONE},
1279 {ui::VKEY_OEM_PLUS, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_NONE}, 1293 {ui::VKEY_OEM_PLUS, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_NONE},
1280 1294
1281 // The function keys should not be rewritten with Search key pressed. 1295 // The function keys should not be rewritten with Search key pressed.
1282 {ui::VKEY_F1, ui::EF_COMMAND_DOWN, ui::VKEY_F1, ui::EF_NONE}, 1296 {ui::VKEY_F1, ui::EF_COMMAND_DOWN, ui::VKEY_F1, ui::EF_FUNCTION_KEY},
1283 {ui::VKEY_F2, ui::EF_COMMAND_DOWN, ui::VKEY_F2, ui::EF_NONE}, 1297 {ui::VKEY_F2, ui::EF_COMMAND_DOWN, ui::VKEY_F2, ui::EF_FUNCTION_KEY},
1284 {ui::VKEY_F3, ui::EF_COMMAND_DOWN, ui::VKEY_F3, ui::EF_NONE}, 1298 {ui::VKEY_F3, ui::EF_COMMAND_DOWN, ui::VKEY_F3, ui::EF_FUNCTION_KEY},
1285 {ui::VKEY_F4, ui::EF_COMMAND_DOWN, ui::VKEY_F4, ui::EF_NONE}, 1299 {ui::VKEY_F4, ui::EF_COMMAND_DOWN, ui::VKEY_F4, ui::EF_FUNCTION_KEY},
1286 {ui::VKEY_F5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_NONE}, 1300 {ui::VKEY_F5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_FUNCTION_KEY},
1287 {ui::VKEY_F6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_NONE}, 1301 {ui::VKEY_F6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_FUNCTION_KEY},
1288 {ui::VKEY_F7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_NONE}, 1302 {ui::VKEY_F7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_FUNCTION_KEY},
1289 {ui::VKEY_F8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_NONE}, 1303 {ui::VKEY_F8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_FUNCTION_KEY},
1290 {ui::VKEY_F9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_NONE}, 1304 {ui::VKEY_F9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_FUNCTION_KEY},
1291 {ui::VKEY_F10, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_NONE}, 1305 {ui::VKEY_F10, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_FUNCTION_KEY},
1292 {ui::VKEY_F11, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_NONE}, 1306 {ui::VKEY_F11, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_FUNCTION_KEY},
1293 {ui::VKEY_F12, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_NONE}, 1307 {ui::VKEY_F12, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_FUNCTION_KEY},
1294 }; 1308 };
1295 1309
1296 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1310 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1297 EXPECT_EQ(GetExpectedResultNumbered( 1311 EXPECT_EQ(GetExpectedResultNumbered(
1298 i, tests[i].output, tests[i].output_mods, ui::ET_KEY_PRESSED), 1312 i, tests[i].output, tests[i].output_mods, ui::ET_KEY_PRESSED),
1299 GetRewrittenEventNumbered(i, 1313 GetRewrittenEventNumbered(i,
1300 &rewriter, 1314 &rewriter,
1301 tests[i].input, 1315 tests[i].input,
1302 tests[i].input_mods, 1316 tests[i].input_mods,
1303 ui::ET_KEY_PRESSED)); 1317 ui::ET_KEY_PRESSED));
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1439 // Create a simulated keypress of F1 targetted at the window. 1453 // Create a simulated keypress of F1 targetted at the window.
1440 ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, 0, false); 1454 ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, 0, false);
1441 1455
1442 // Simulate an apps v2 window that has requested top row keys as function 1456 // Simulate an apps v2 window that has requested top row keys as function
1443 // keys. The event should not be rewritten. 1457 // keys. The event should not be rewritten.
1444 window_state->set_top_row_keys_are_function_keys(true); 1458 window_state->set_top_row_keys_are_function_keys(true);
1445 scoped_ptr<ui::Event> rewritten_event; 1459 scoped_ptr<ui::Event> rewritten_event;
1446 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event)); 1460 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event));
1447 ASSERT_FALSE(rewritten_event); 1461 ASSERT_FALSE(rewritten_event);
1448 EXPECT_EQ( 1462 EXPECT_EQ(
1449 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_NONE, ui::ET_KEY_PRESSED), 1463 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_FUNCTION_KEY,
1464 ui::ET_KEY_PRESSED),
1450 GetKeyEventAsString(press_f1)); 1465 GetKeyEventAsString(press_f1));
1451 1466
1452 // The event should also not be rewritten if the send-function-keys pref is 1467 // The event should also not be rewritten if the send-function-keys pref is
1453 // additionally set, for both apps v2 and regular windows. 1468 // additionally set, for both apps v2 and regular windows.
1454 BooleanPrefMember send_function_keys_pref; 1469 BooleanPrefMember send_function_keys_pref;
1455 send_function_keys_pref.Init(prefs::kLanguageSendFunctionKeys, &prefs_); 1470 send_function_keys_pref.Init(prefs::kLanguageSendFunctionKeys, &prefs_);
1456 send_function_keys_pref.SetValue(true); 1471 send_function_keys_pref.SetValue(true);
1457 window_state->set_top_row_keys_are_function_keys(false); 1472 window_state->set_top_row_keys_are_function_keys(false);
1458 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event)); 1473 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event));
1459 ASSERT_FALSE(rewritten_event); 1474 ASSERT_FALSE(rewritten_event);
1460 EXPECT_EQ( 1475 EXPECT_EQ(
1461 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_NONE, ui::ET_KEY_PRESSED), 1476 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_FUNCTION_KEY,
1477 ui::ET_KEY_PRESSED),
1462 GetKeyEventAsString(press_f1)); 1478 GetKeyEventAsString(press_f1));
1463 1479
1464 // If the pref isn't set when an event is sent to a regular window, F1 is 1480 // If the pref isn't set when an event is sent to a regular window, F1 is
1465 // rewritten to the back key. 1481 // rewritten to the back key.
1466 send_function_keys_pref.SetValue(false); 1482 send_function_keys_pref.SetValue(false);
1467 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event)); 1483 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event));
1468 ASSERT_TRUE(rewritten_event); 1484 ASSERT_TRUE(rewritten_event);
1469 EXPECT_EQ(GetExpectedResultAsString( 1485 EXPECT_EQ(GetExpectedResultAsString(
1470 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED), 1486 ui::VKEY_BROWSER_BACK, ui::EF_FUNCTION_KEY,
1487 ui::ET_KEY_PRESSED),
1471 GetKeyEventAsString( 1488 GetKeyEventAsString(
1472 *static_cast<const ui::KeyEvent*>(rewritten_event.get()))); 1489 *static_cast<const ui::KeyEvent*>(rewritten_event.get())));
1473 } 1490 }
1474 1491
1475 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { 1492 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) {
1476 std::vector<unsigned int> device_list; 1493 std::vector<unsigned int> device_list;
1477 device_list.push_back(10); 1494 device_list.push_back(10);
1478 device_list.push_back(11); 1495 device_list.push_back(11);
1479 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); 1496 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
1480 TestingPrefServiceSyncable prefs; 1497 TestingPrefServiceSyncable prefs;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1540 ui::ScopedXI2Event xev; 1557 ui::ScopedXI2Event xev;
1541 xev.InitGenericButtonEvent( 1558 xev.InitGenericButtonEvent(
1542 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); 1559 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag);
1543 ui::MouseEvent release(xev); 1560 ui::MouseEvent release(xev);
1544 int flags = RewriteMouseEvent(&rewriter, release); 1561 int flags = RewriteMouseEvent(&rewriter, release);
1545 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags); 1562 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags);
1546 } 1563 }
1547 } 1564 }
1548 1565
1549 } // namespace chromeos 1566 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698