OLD | NEW |
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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
6 #include "ui/events/event_constants.h" | 6 #include "ui/events/event_constants.h" |
7 #include "ui/events/keycodes/dom/dom_code.h" | 7 #include "ui/events/keycodes/dom/dom_code.h" |
8 #include "ui/events/keycodes/dom/dom_key.h" | 8 #include "ui/events/keycodes/dom/dom_key.h" |
9 #include "ui/events/keycodes/keyboard_code_conversion.h" | 9 #include "ui/events/keycodes/keyboard_code_conversion.h" |
10 #include "ui/events/ozone/layout/keyboard_layout_engine_manager.h" | 10 #include "ui/events/ozone/layout/keyboard_layout_engine_manager.h" |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 | 78 |
79 xkb_keysym_t CharacterToKeySym(base::char16 c) const { | 79 xkb_keysym_t CharacterToKeySym(base::char16 c) const { |
80 return 0x01000000u + c; | 80 return 0x01000000u + c; |
81 } | 81 } |
82 | 82 |
83 KeyboardCode GetKeyboardCode(DomCode dom_code, | 83 KeyboardCode GetKeyboardCode(DomCode dom_code, |
84 int flags, | 84 int flags, |
85 base::char16 character) const { | 85 base::char16 character) const { |
86 KeyboardCode key_code = DifficultKeyboardCode( | 86 KeyboardCode key_code = DifficultKeyboardCode( |
87 dom_code, flags, key_code_converter_.DomCodeToXkbKeyCode(dom_code), | 87 dom_code, flags, key_code_converter_.DomCodeToXkbKeyCode(dom_code), |
88 flags, CharacterToKeySym(character), DomKey::CHARACTER, character); | 88 flags, CharacterToKeySym(character), character); |
89 if (key_code == VKEY_UNKNOWN) { | 89 if (key_code == VKEY_UNKNOWN) { |
90 DomKey dummy_dom_key; | 90 DomKey dummy_dom_key; |
91 base::char16 dummy_character; | |
92 // If this fails, key_code remains VKEY_UNKNOWN. | 91 // If this fails, key_code remains VKEY_UNKNOWN. |
93 ignore_result(DomCodeToUsLayoutMeaning(dom_code, EF_NONE, &dummy_dom_key, | 92 ignore_result(DomCodeToUsLayoutDomKey(dom_code, EF_NONE, &dummy_dom_key, |
94 &dummy_character, &key_code)); | 93 &key_code)); |
95 } | 94 } |
96 return key_code; | 95 return key_code; |
97 } | 96 } |
98 | 97 |
99 // XkbKeyboardLayoutEngine overrides: | 98 // XkbKeyboardLayoutEngine overrides: |
100 bool XkbLookup(xkb_keycode_t xkb_keycode, | 99 bool XkbLookup(xkb_keycode_t xkb_keycode, |
101 xkb_mod_mask_t xkb_flags, | 100 xkb_mod_mask_t xkb_flags, |
102 xkb_keysym_t* xkb_keysym, | 101 xkb_keysym_t* xkb_keysym, |
103 base::char16* character) const override { | 102 uint32_t* character) const override { |
104 switch (entry_type_) { | 103 switch (entry_type_) { |
105 case EntryType::NONE: | 104 case EntryType::NONE: |
106 break; | 105 break; |
107 case EntryType::PRINTABLE: | 106 case EntryType::PRINTABLE: |
108 if (!printable_entry_ || | 107 if (!printable_entry_ || |
109 (xkb_keycode != | 108 (xkb_keycode != |
110 static_cast<xkb_keycode_t>(printable_entry_->dom_code))) { | 109 static_cast<xkb_keycode_t>(printable_entry_->dom_code))) { |
111 return false; | 110 return false; |
112 } | 111 } |
113 if (xkb_flags & EF_ALTGR_DOWN) | 112 if (xkb_flags & EF_ALTGR_DOWN) |
(...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
810 {{DomCode::NUMPAD1, XKB_KEY_KP_1}, VKEY_1}, | 809 {{DomCode::NUMPAD1, XKB_KEY_KP_1}, VKEY_1}, |
811 {{DomCode::CAPS_LOCK, XKB_KEY_Caps_Lock}, VKEY_CAPITAL}, | 810 {{DomCode::CAPS_LOCK, XKB_KEY_Caps_Lock}, VKEY_CAPITAL}, |
812 {{DomCode::ENTER, XKB_KEY_Return}, VKEY_RETURN}, | 811 {{DomCode::ENTER, XKB_KEY_Return}, VKEY_RETURN}, |
813 {{DomCode::NUMPAD_ENTER, XKB_KEY_KP_Enter}, VKEY_RETURN}, | 812 {{DomCode::NUMPAD_ENTER, XKB_KEY_KP_Enter}, VKEY_RETURN}, |
814 {{DomCode::SLEEP, XKB_KEY_XF86Sleep}, VKEY_SLEEP}, | 813 {{DomCode::SLEEP, XKB_KEY_XF86Sleep}, VKEY_SLEEP}, |
815 }; | 814 }; |
816 for (const auto& e : kVkeyTestCase) { | 815 for (const auto& e : kVkeyTestCase) { |
817 SCOPED_TRACE(static_cast<int>(e.test.dom_code)); | 816 SCOPED_TRACE(static_cast<int>(e.test.dom_code)); |
818 layout_engine_->SetEntry(&e.test); | 817 layout_engine_->SetEntry(&e.test); |
819 DomKey dom_key = DomKey::NONE; | 818 DomKey dom_key = DomKey::NONE; |
820 base::char16 character = 0; | |
821 KeyboardCode key_code = VKEY_UNKNOWN; | 819 KeyboardCode key_code = VKEY_UNKNOWN; |
822 uint32_t keysym; | 820 uint32_t keysym; |
823 EXPECT_TRUE(layout_engine_->Lookup(e.test.dom_code, EF_NONE, &dom_key, | 821 EXPECT_TRUE(layout_engine_->Lookup(e.test.dom_code, EF_NONE, &dom_key, |
824 &character, &key_code, &keysym)); | 822 &key_code, &keysym)); |
825 EXPECT_EQ(e.test.keysym, keysym); | 823 EXPECT_EQ(e.test.keysym, keysym); |
826 EXPECT_EQ(e.key_code, key_code); | 824 EXPECT_EQ(e.key_code, key_code); |
827 } | 825 } |
828 } | 826 } |
829 | 827 |
830 | 828 |
831 TEST_F(XkbLayoutEngineVkTest, XkbRuleNamesForLayoutName) { | 829 TEST_F(XkbLayoutEngineVkTest, XkbRuleNamesForLayoutName) { |
832 static const VkTestXkbKeyboardLayoutEngine::RuleNames kVkeyTestCase[] = { | 830 static const VkTestXkbKeyboardLayoutEngine::RuleNames kVkeyTestCase[] = { |
833 /* 0 */ {"us", "us", ""}, | 831 /* 0 */ {"us", "us", ""}, |
834 /* 1 */ {"jp", "jp", ""}, | 832 /* 1 */ {"jp", "jp", ""}, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
889 std::string layout_id; | 887 std::string layout_id; |
890 std::string layout_variant; | 888 std::string layout_variant; |
891 XkbKeyboardLayoutEngine::ParseLayoutName(e->layout_name, &layout_id, | 889 XkbKeyboardLayoutEngine::ParseLayoutName(e->layout_name, &layout_id, |
892 &layout_variant); | 890 &layout_variant); |
893 EXPECT_EQ(layout_id, e->layout); | 891 EXPECT_EQ(layout_id, e->layout); |
894 EXPECT_EQ(layout_variant, e->variant); | 892 EXPECT_EQ(layout_variant, e->variant); |
895 } | 893 } |
896 } | 894 } |
897 | 895 |
898 } // namespace ui | 896 } // namespace ui |
OLD | NEW |