| 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 dd2f6888d22848937ba5e71083193bd462b83d12..98689d18300618eca5f18ef3aedf123e6df60c81 100644
|
| --- a/ui/events/keycodes/platform_key_map_win_unittest.cc
|
| +++ b/ui/events/keycodes/platform_key_map_win_unittest.cc
|
| @@ -12,46 +12,12 @@
|
| #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"
|
| +#include "ui/events/test/keyboard_layout.h"
|
|
|
| namespace ui {
|
|
|
| namespace {
|
|
|
| -enum Layout {
|
| - LAYOUT_US,
|
| - LAYOUT_FR,
|
| - LAYOUT_KR,
|
| - LAYOUT_JP,
|
| -};
|
| -
|
| -// |LoadKeyboardLayout()| ensures the locale to be loaded into the system
|
| -// (Similar to temporarily adding a locale in Control Panel), otherwise
|
| -// |ToUnicodeEx()| will fall-back to the default locale.
|
| -// See MSDN LoadKeyboardLayout():
|
| -// https://msdn.microsoft.com/en-us/library/windows/desktop/ms646305(v=vs.85).aspx
|
| -// And language constants and strings:
|
| -// https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx
|
| -HKL GetInputLocale(Layout layout) {
|
| - switch (layout) {
|
| - case LAYOUT_US:
|
| - return ::LoadKeyboardLayout(L"00000409", KLF_ACTIVATE);
|
| - case LAYOUT_FR:
|
| - return ::LoadKeyboardLayout(L"0000040c", KLF_ACTIVATE);
|
| - case LAYOUT_KR:
|
| - // |LoadKeyboardLayout(L"00000412", KLF_ACTIVATE)| returns the correct
|
| - // Korean locale, but it will fail on DrMemory tests.
|
| - // See https://crbug.com/612736#c6
|
| - // However we could bypass it since we are only testing non-printable keys
|
| - // on Korean locale.
|
| - // (This issue only happens on Korean and Japanese).
|
| - return reinterpret_cast<HKL>(0x04120412);
|
| - case LAYOUT_JP:
|
| - return reinterpret_cast<HKL>(0x04110411);
|
| - default:
|
| - return 0;
|
| - }
|
| -}
|
| -
|
| struct TestKey {
|
| KeyboardCode key_code;
|
| const char* normal;
|
| @@ -126,7 +92,7 @@ class PlatformKeyMapTest : public testing::Test {
|
| };
|
|
|
| TEST_F(PlatformKeyMapTest, USLayout) {
|
| - PlatformKeyMap keymap(GetInputLocale(LAYOUT_US));
|
| + PlatformKeyMap keymap(GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_ENGLISH_US));
|
|
|
| const TestKey kUSLayoutTestCases[] = {
|
| // n s c a sc sa ac
|
| @@ -174,7 +140,7 @@ TEST_F(PlatformKeyMapTest, USLayout) {
|
| }
|
|
|
| TEST_F(PlatformKeyMapTest, FRLayout) {
|
| - PlatformKeyMap keymap(GetInputLocale(LAYOUT_FR));
|
| + PlatformKeyMap keymap(GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_FRENCH));
|
|
|
| const TestKey kFRLayoutTestCases[] = {
|
| // n s c a sc sa ac
|
| @@ -222,7 +188,7 @@ TEST_F(PlatformKeyMapTest, FRLayout) {
|
| }
|
|
|
| TEST_F(PlatformKeyMapTest, NumPad) {
|
| - PlatformKeyMap keymap(GetInputLocale(LAYOUT_US));
|
| + PlatformKeyMap keymap(GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_ENGLISH_US));
|
|
|
| const struct TestCase {
|
| KeyboardCode key_code;
|
| @@ -271,7 +237,7 @@ TEST_F(PlatformKeyMapTest, NumPad) {
|
| }
|
|
|
| TEST_F(PlatformKeyMapTest, NonPrintableKey) {
|
| - HKL layout = GetInputLocale(LAYOUT_US);
|
| + HKL layout = GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_ENGLISH_US);
|
| PlatformKeyMap keymap(layout);
|
|
|
| for (const auto& test_case : kNonPrintableCodeMap) {
|
| @@ -317,8 +283,9 @@ TEST_F(PlatformKeyMapTest, KoreanSpecificKeys) {
|
| {VKEY_HANJA, DomKey::HANJA_MODE, DomKey::UNIDENTIFIED},
|
| };
|
|
|
| - PlatformKeyMap us_keymap(GetInputLocale(LAYOUT_US));
|
| - PlatformKeyMap kr_keymap(GetInputLocale(LAYOUT_KR));
|
| + PlatformKeyMap us_keymap(
|
| + GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_ENGLISH_US));
|
| + PlatformKeyMap kr_keymap(GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_KOREAN));
|
| for (const auto& test_case : kKoreanTestCases) {
|
| EXPECT_EQ(test_case.us_key, DomKeyFromKeyboardCodeImpl(
|
| us_keymap, test_case.key_code, EF_NONE))
|
| @@ -346,8 +313,9 @@ TEST_F(PlatformKeyMapTest, JapaneseSpecificKeys) {
|
| {VKEY_ATTN, DomKey::KANA_MODE, DomKey::ATTN},
|
| };
|
|
|
| - PlatformKeyMap us_keymap(GetInputLocale(LAYOUT_US));
|
| - PlatformKeyMap jp_keymap(GetInputLocale(LAYOUT_JP));
|
| + PlatformKeyMap us_keymap(
|
| + GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_ENGLISH_US));
|
| + PlatformKeyMap jp_keymap(GetPlatformKeyboardLayout(KEYBOARD_LAYOUT_JAPANESE));
|
| for (const auto& test_case : kJapaneseTestCases) {
|
| EXPECT_EQ(test_case.us_key, DomKeyFromKeyboardCodeImpl(
|
| us_keymap, test_case.key_code, EF_NONE))
|
|
|