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

Unified Diff: ui/events/keycodes/platform_key_map_win_unittest.cc

Issue 1776673007: [Windows] Produce correct DomKey for NumPad when combined with Shift/NumLock (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
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 934ab00a8bbbbbf1722ff1b355d47808297b0bfd..f1be43ca4a095f201e63ac91905ee97fe0d5eb4a 100644
--- a/ui/events/keycodes/platform_key_map_win_unittest.cc
+++ b/ui/events/keycodes/platform_key_map_win_unittest.cc
@@ -35,32 +35,47 @@ void CheckDomCodeToKeyString(const char* label,
const PlatformKeyMap& keymap,
const TestKey& t,
HKL layout) {
- int scan_code = ::MapVirtualKeyEx(t.vk, MAPVK_VK_TO_VSC, layout);
+ KeyboardCode vk = t.vk;
+ int scan_code = ::MapVirtualKeyEx(vk, MAPVK_VK_TO_VSC, layout);
DomCode dom_code = KeycodeConverter::NativeKeycodeToDomCode(scan_code);
- EXPECT_STREQ(t.normal, KeycodeConverter::DomKeyToKeyString(
- keymap.DomCodeAndFlagsToDomKey(dom_code, EF_NONE)).c_str()
- ) << label;
- EXPECT_STREQ(t.shift, KeycodeConverter::DomKeyToKeyString(
- keymap.DomCodeAndFlagsToDomKey(dom_code, EF_SHIFT_DOWN)).c_str()
- ) << label;
+ EXPECT_STREQ(t.normal,
+ KeycodeConverter::DomKeyToKeyString(
+ keymap.DomCodeAndFlagsToDomKey(dom_code, vk, EF_NONE))
+ .c_str())
+ << label;
+ EXPECT_STREQ(t.shift,
+ KeycodeConverter::DomKeyToKeyString(
+ keymap.DomCodeAndFlagsToDomKey(dom_code, vk, EF_SHIFT_DOWN))
+ .c_str())
+ << label;
EXPECT_STREQ(t.capslock, KeycodeConverter::DomKeyToKeyString(
- keymap.DomCodeAndFlagsToDomKey(dom_code, EF_CAPS_LOCK_ON)).c_str()
- ) << label;
- EXPECT_STREQ(t.altgr, KeycodeConverter::DomKeyToKeyString(
- keymap.DomCodeAndFlagsToDomKey(dom_code, EF_ALTGR_DOWN)).c_str()
- ) << label;
- EXPECT_STREQ(t.shift_capslock, KeycodeConverter::DomKeyToKeyString(
- keymap.DomCodeAndFlagsToDomKey(dom_code,
- EF_SHIFT_DOWN | EF_CAPS_LOCK_ON)).c_str()
- ) << label;
- EXPECT_STREQ(t.shift_altgr, KeycodeConverter::DomKeyToKeyString(
- keymap.DomCodeAndFlagsToDomKey(dom_code,
- EF_SHIFT_DOWN | EF_ALTGR_DOWN)).c_str()
- ) << label;
- EXPECT_STREQ(t.altgr_capslock, KeycodeConverter::DomKeyToKeyString(
- keymap.DomCodeAndFlagsToDomKey(dom_code,
- EF_ALTGR_DOWN | EF_CAPS_LOCK_ON)).c_str()
- ) << label;
+ keymap.DomCodeAndFlagsToDomKey(dom_code, vk,
+ EF_CAPS_LOCK_ON))
+ .c_str())
+ << label;
+ EXPECT_STREQ(t.altgr,
+ KeycodeConverter::DomKeyToKeyString(
+ keymap.DomCodeAndFlagsToDomKey(dom_code, vk, EF_ALTGR_DOWN))
+ .c_str())
+ << label;
+ EXPECT_STREQ(t.shift_capslock,
+ KeycodeConverter::DomKeyToKeyString(
+ keymap.DomCodeAndFlagsToDomKey(
+ dom_code, vk, EF_SHIFT_DOWN | EF_CAPS_LOCK_ON))
+ .c_str())
+ << label;
+ EXPECT_STREQ(t.shift_altgr,
+ KeycodeConverter::DomKeyToKeyString(
+ keymap.DomCodeAndFlagsToDomKey(
+ dom_code, vk, EF_SHIFT_DOWN | EF_ALTGR_DOWN))
+ .c_str())
+ << label;
+ EXPECT_STREQ(t.altgr_capslock,
+ KeycodeConverter::DomKeyToKeyString(
+ keymap.DomCodeAndFlagsToDomKey(
+ dom_code, vk, EF_ALTGR_DOWN | EF_CAPS_LOCK_ON))
+ .c_str())
+ << label;
}
} // anonymous namespace
@@ -171,4 +186,54 @@ TEST_F(PlatformKeyMapTest, FRLayout) {
}
}
+TEST_F(PlatformKeyMapTest, NumPad) {
+ HKL layout = ::LoadKeyboardLayout(LAYOUT_US, 0);
+ PlatformKeyMap keymap(layout);
+
+ const struct TestCase {
+ KeyboardCode vk;
+ DomKey key;
+ } NumPadKeys[] = {
+ {VKEY_NUMPAD0, DomKey::FromCharacter('0')},
+ {VKEY_NUMPAD1, DomKey::FromCharacter('1')},
+ {VKEY_NUMPAD2, DomKey::FromCharacter('2')},
+ {VKEY_NUMPAD3, DomKey::FromCharacter('3')},
+ {VKEY_NUMPAD4, DomKey::FromCharacter('4')},
+ {VKEY_NUMPAD5, DomKey::FromCharacter('5')},
+ {VKEY_NUMPAD6, DomKey::FromCharacter('6')},
+ {VKEY_NUMPAD7, DomKey::FromCharacter('7')},
+ {VKEY_NUMPAD8, DomKey::FromCharacter('8')},
+ {VKEY_NUMPAD9, DomKey::FromCharacter('9')},
+ {VKEY_CLEAR, DomKey::CLEAR},
+ {VKEY_PRIOR, DomKey::PAGE_UP},
+ {VKEY_NEXT, DomKey::PAGE_DOWN},
+ {VKEY_END, DomKey::END},
+ {VKEY_HOME, DomKey::HOME},
+ {VKEY_LEFT, DomKey::ARROW_LEFT},
+ {VKEY_UP, DomKey::ARROW_UP},
+ {VKEY_RIGHT, DomKey::ARROW_RIGHT},
+ {VKEY_DOWN, DomKey::ARROW_DOWN},
+ {VKEY_INSERT, DomKey::INSERT},
+ {VKEY_DELETE, DomKey::DEL},
+ };
+
+ for (const auto& k : NumPadKeys) {
+ KeyboardCode vk = k.vk;
+ int scan_code = ::MapVirtualKeyEx(vk, MAPVK_VK_TO_VSC, layout);
+ DomCode dom_code = KeycodeConverter::NativeKeycodeToDomCode(scan_code);
+
+ EXPECT_EQ(k.key, keymap.DomCodeAndFlagsToDomKey(dom_code, vk, EF_NONE))
+ << vk;
+ EXPECT_EQ(k.key,
+ keymap.DomCodeAndFlagsToDomKey(dom_code, vk, EF_ALTGR_DOWN))
+ << vk;
+ EXPECT_EQ(k.key,
+ keymap.DomCodeAndFlagsToDomKey(dom_code, vk, EF_CONTROL_DOWN))
+ << vk;
+ EXPECT_EQ(k.key, keymap.DomCodeAndFlagsToDomKey(
+ dom_code, vk, EF_ALTGR_DOWN | EF_CONTROL_DOWN))
+ << vk;
+ }
+}
+
} // namespace ui
« ui/events/keycodes/platform_key_map_win.cc ('K') | « ui/events/keycodes/platform_key_map_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698