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

Side by Side Diff: ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc

Issue 1566463002: Generate located Windows keycodes for number pad keys under Ozone (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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
« no previous file with comments | « ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/events/event_constants.h" 10 #include "ui/events/event_constants.h"
(...skipping 27 matching lines...) Expand all
38 enum class EntryType { NONE, PRINTABLE, KEYSYM }; 38 enum class EntryType { NONE, PRINTABLE, KEYSYM };
39 struct PrintableEntry { 39 struct PrintableEntry {
40 base::char16 plain_character; 40 base::char16 plain_character;
41 base::char16 shift_character; 41 base::char16 shift_character;
42 base::char16 altgr_character; 42 base::char16 altgr_character;
43 DomCode dom_code; 43 DomCode dom_code;
44 }; 44 };
45 struct KeysymEntry { 45 struct KeysymEntry {
46 DomCode dom_code; 46 DomCode dom_code;
47 xkb_keysym_t keysym; 47 xkb_keysym_t keysym;
48 base::char16 character;
48 }; 49 };
49 50
50 struct RuleNames { 51 struct RuleNames {
51 std::string layout_name; 52 std::string layout_name;
52 std::string layout; 53 std::string layout;
53 std::string variant; 54 std::string variant;
54 }; 55 };
55 56
56 public: 57 public:
57 VkTestXkbKeyboardLayoutEngine(const XkbKeyCodeConverter& keycode_converter) 58 VkTestXkbKeyboardLayoutEngine(const XkbKeyCodeConverter& keycode_converter)
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 *character = printable_entry_->plain_character; 122 *character = printable_entry_->plain_character;
122 *xkb_keysym = CharacterToKeySym(*character); 123 *xkb_keysym = CharacterToKeySym(*character);
123 return *character != 0; 124 return *character != 0;
124 case EntryType::KEYSYM: 125 case EntryType::KEYSYM:
125 if (!keysym_entry_ || 126 if (!keysym_entry_ ||
126 (xkb_keycode != 127 (xkb_keycode !=
127 static_cast<xkb_keycode_t>(keysym_entry_->dom_code))) { 128 static_cast<xkb_keycode_t>(keysym_entry_->dom_code))) {
128 return false; 129 return false;
129 } 130 }
130 *xkb_keysym = keysym_entry_->keysym; 131 *xkb_keysym = keysym_entry_->keysym;
131 *character = 0; 132 *character = keysym_entry_->character;
132 return true; 133 return true;
133 } 134 }
134 return false; 135 return false;
135 } 136 }
136 137
137 private: 138 private:
138 EntryType entry_type_; 139 EntryType entry_type_;
139 const PrintableEntry* printable_entry_; 140 const PrintableEntry* printable_entry_;
140 const KeysymEntry* keysym_entry_; 141 const KeysymEntry* keysym_entry_;
141 }; 142 };
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 {{DomCode::OS_RIGHT, XKB_KEY_Super_R}, VKEY_LWIN}, 809 {{DomCode::OS_RIGHT, XKB_KEY_Super_R}, VKEY_LWIN},
809 {{DomCode::ALT_LEFT, XKB_KEY_Alt_L}, VKEY_MENU}, 810 {{DomCode::ALT_LEFT, XKB_KEY_Alt_L}, VKEY_MENU},
810 {{DomCode::ALT_RIGHT, XKB_KEY_Alt_R}, VKEY_MENU}, 811 {{DomCode::ALT_RIGHT, XKB_KEY_Alt_R}, VKEY_MENU},
811 {{DomCode::ALT_RIGHT, XKB_KEY_ISO_Level3_Shift}, VKEY_ALTGR}, 812 {{DomCode::ALT_RIGHT, XKB_KEY_ISO_Level3_Shift}, VKEY_ALTGR},
812 {{DomCode::DIGIT1, XKB_KEY_1}, VKEY_1}, 813 {{DomCode::DIGIT1, XKB_KEY_1}, VKEY_1},
813 {{DomCode::NUMPAD1, XKB_KEY_KP_1}, VKEY_1}, 814 {{DomCode::NUMPAD1, XKB_KEY_KP_1}, VKEY_1},
814 {{DomCode::CAPS_LOCK, XKB_KEY_Caps_Lock}, VKEY_CAPITAL}, 815 {{DomCode::CAPS_LOCK, XKB_KEY_Caps_Lock}, VKEY_CAPITAL},
815 {{DomCode::ENTER, XKB_KEY_Return}, VKEY_RETURN}, 816 {{DomCode::ENTER, XKB_KEY_Return}, VKEY_RETURN},
816 {{DomCode::NUMPAD_ENTER, XKB_KEY_KP_Enter}, VKEY_RETURN}, 817 {{DomCode::NUMPAD_ENTER, XKB_KEY_KP_Enter}, VKEY_RETURN},
817 {{DomCode::SLEEP, XKB_KEY_XF86Sleep}, VKEY_SLEEP}, 818 {{DomCode::SLEEP, XKB_KEY_XF86Sleep}, VKEY_SLEEP},
819 // Verify that number pad digits produce located VKEY codes.
820 {{DomCode::NUMPAD0, XKB_KEY_KP_0, '0'}, VKEY_NUMPAD0},
821 {{DomCode::NUMPAD9, XKB_KEY_KP_9, '9'}, VKEY_NUMPAD9},
818 }; 822 };
819 for (const auto& e : kVkeyTestCase) { 823 for (const auto& e : kVkeyTestCase) {
820 SCOPED_TRACE(static_cast<int>(e.test.dom_code)); 824 SCOPED_TRACE(static_cast<int>(e.test.dom_code));
821 layout_engine_->SetEntry(&e.test); 825 layout_engine_->SetEntry(&e.test);
822 DomKey dom_key = DomKey::NONE; 826 DomKey dom_key = DomKey::NONE;
823 KeyboardCode key_code = VKEY_UNKNOWN; 827 KeyboardCode key_code = VKEY_UNKNOWN;
824 EXPECT_TRUE(layout_engine_->Lookup(e.test.dom_code, EF_NONE, &dom_key, 828 EXPECT_TRUE(layout_engine_->Lookup(e.test.dom_code, EF_NONE, &dom_key,
825 &key_code)); 829 &key_code));
826 EXPECT_EQ(e.key_code, key_code); 830 EXPECT_EQ(e.key_code, key_code);
827 } 831 }
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
889 std::string layout_id; 893 std::string layout_id;
890 std::string layout_variant; 894 std::string layout_variant;
891 XkbKeyboardLayoutEngine::ParseLayoutName(e->layout_name, &layout_id, 895 XkbKeyboardLayoutEngine::ParseLayoutName(e->layout_name, &layout_id,
892 &layout_variant); 896 &layout_variant);
893 EXPECT_EQ(layout_id, e->layout); 897 EXPECT_EQ(layout_id, e->layout);
894 EXPECT_EQ(layout_variant, e->variant); 898 EXPECT_EQ(layout_variant, e->variant);
895 } 899 }
896 } 900 }
897 901
898 } // namespace ui 902 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698