Chromium Code Reviews| Index: ui/events/keycodes/platform_key_map_win_unittest.cc |
| diff --git a/ui/events/keycodes/platform_key_map_win_unittest.cc b/ui/events/keycodes/platform_key_map_win_unittest.cc |
| index 44cbd58671528618ed25d93cee00ba9f4dfe800f..f9d2b105a3a85cc00d18b2cac8408fac707e7f14 100644 |
| --- a/ui/events/keycodes/platform_key_map_win_unittest.cc |
| +++ b/ui/events/keycodes/platform_key_map_win_unittest.cc |
| @@ -5,11 +5,13 @@ |
| #include "ui/events/keycodes/platform_key_map_win.h" |
| #include "base/macros.h" |
| +#include "base/strings/string16.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "ui/events/event_constants.h" |
| #include "ui/events/keycodes/dom/dom_code.h" |
| #include "ui/events/keycodes/dom/dom_key.h" |
| #include "ui/events/keycodes/dom/keycode_converter.h" |
| +#include "ui/events/keycodes/dom_us_layout_data.h" |
| namespace ui { |
| @@ -247,4 +249,40 @@ TEST_F(PlatformKeyMapTest, NumPad) { |
| } |
| } |
| +TEST_F(PlatformKeyMapTest, NonPrintableKey) { |
| + HKL layout = ::LoadKeyboardLayout(LAYOUT_US, 0); |
| + PlatformKeyMap keymap(layout); |
| + |
| + for (const auto& test_case : kNonPrintableCodeMap) { |
| + // Not available on |LAYOUT_US|. |
| + if (test_case.dom_code == DomCode::PAUSE || |
| + test_case.dom_code == DomCode::LANG2 || |
| + test_case.dom_code == DomCode::NON_CONVERT) |
| + continue; |
| + |
| + int scan_code = |
| + ui::KeycodeConverter::DomCodeToNativeKeycode(test_case.dom_code); |
| + KeyboardCode key_code = static_cast<KeyboardCode>( |
| + ::MapVirtualKeyEx(scan_code, MAPVK_VSC_TO_VK, layout)); |
| + |
| + if (!key_code) |
|
Wez
2016/06/03 00:00:52
nit: I'd explicitly test against VKEY_UNKNOWN here
|
| + continue; |
| + |
| + EXPECT_EQ(test_case.dom_key, |
| + DomKeyFromNativeImpl(keymap, DomCode::NONE, key_code, EF_NONE)) |
| + << key_code << ", " << scan_code; |
| + EXPECT_EQ(test_case.dom_key, DomKeyFromNativeImpl(keymap, DomCode::NONE, |
| + key_code, EF_ALTGR_DOWN)) |
| + << key_code << ", " << scan_code; |
| + EXPECT_EQ( |
| + test_case.dom_key, |
| + DomKeyFromNativeImpl(keymap, DomCode::NONE, key_code, EF_CONTROL_DOWN)) |
| + << key_code << ", " << scan_code; |
| + EXPECT_EQ(test_case.dom_key, |
| + DomKeyFromNativeImpl(keymap, DomCode::NONE, key_code, |
| + EF_ALTGR_DOWN | EF_CONTROL_DOWN)) |
| + << key_code << ", " << scan_code; |
| + } |
| +} |
| + |
| } // namespace ui |