OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ui/events/keycodes/dom/keycode_converter.h" | 5 #include "ui/events/keycodes/dom/keycode_converter.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 | 31 |
32 TEST(UsbKeycodeMap, Basic) { | 32 TEST(UsbKeycodeMap, Basic) { |
33 // Verify that the first element in the table is the "invalid" code. | 33 // Verify that the first element in the table is the "invalid" code. |
34 const ui::KeycodeMapEntry* keycode_map = | 34 const ui::KeycodeMapEntry* keycode_map = |
35 ui::KeycodeConverter::GetKeycodeMapForTest(); | 35 ui::KeycodeConverter::GetKeycodeMapForTest(); |
36 EXPECT_EQ(ui::KeycodeConverter::InvalidUsbKeycode(), | 36 EXPECT_EQ(ui::KeycodeConverter::InvalidUsbKeycode(), |
37 keycode_map[0].usb_keycode); | 37 keycode_map[0].usb_keycode); |
38 EXPECT_EQ(ui::KeycodeConverter::InvalidNativeKeycode(), | 38 EXPECT_EQ(ui::KeycodeConverter::InvalidNativeKeycode(), |
39 keycode_map[0].native_keycode); | 39 keycode_map[0].native_keycode); |
40 EXPECT_EQ(ui::KeycodeConverter::InvalidNativeKeycode(), | 40 EXPECT_EQ(ui::KeycodeConverter::InvalidNativeKeycode(), |
41 ui::KeycodeConverter::CodeToNativeKeycode("Unidentified")); | 41 ui::KeycodeConverter::DomCodeToNativeKeycode(ui::DomCode::NONE)); |
42 | 42 |
43 // Verify that there are no duplicate entries in the mapping. | 43 // Verify that there are no duplicate entries in the mapping. |
44 std::map<uint32_t, uint16_t> usb_to_native; | 44 std::map<uint32_t, uint16_t> usb_to_native; |
45 std::map<uint16_t, uint32_t> native_to_usb; | 45 std::map<uint16_t, uint32_t> native_to_usb; |
46 size_t numEntries = ui::KeycodeConverter::NumKeycodeMapEntriesForTest(); | 46 size_t numEntries = ui::KeycodeConverter::NumKeycodeMapEntriesForTest(); |
47 for (size_t i = 0; i < numEntries; ++i) { | 47 for (size_t i = 0; i < numEntries; ++i) { |
48 const ui::KeycodeMapEntry* entry = &keycode_map[i]; | 48 const ui::KeycodeMapEntry* entry = &keycode_map[i]; |
49 // Don't test keys with no native keycode mapping on this platform. | 49 // Don't test keys with no native keycode mapping on this platform. |
50 if (entry->native_keycode == ui::KeycodeConverter::InvalidNativeKeycode()) | 50 if (entry->native_keycode == ui::KeycodeConverter::InvalidNativeKeycode()) |
51 continue; | 51 continue; |
52 | 52 |
53 // Verify UsbKeycodeToNativeKeycode works for this key. | 53 // Verify UsbKeycodeToNativeKeycode works for this key. |
54 EXPECT_EQ( | 54 EXPECT_EQ( |
55 entry->native_keycode, | 55 entry->native_keycode, |
56 ui::KeycodeConverter::UsbKeycodeToNativeKeycode(entry->usb_keycode)); | 56 ui::KeycodeConverter::UsbKeycodeToNativeKeycode(entry->usb_keycode)); |
57 | 57 |
58 // Verify CodeToNativeKeycode and NativeKeycodeToCode work correctly. | 58 // Verify DomCodeToNativeKeycode works correctly. |
| 59 ui::DomCode dom_code = |
| 60 ui::KeycodeConverter::CodeStringToDomCode(entry->code); |
59 if (entry->code) { | 61 if (entry->code) { |
60 EXPECT_EQ(entry->native_keycode, | 62 EXPECT_EQ(entry->native_keycode, |
61 ui::KeycodeConverter::CodeToNativeKeycode(entry->code)); | 63 ui::KeycodeConverter::DomCodeToNativeKeycode(dom_code)); |
62 EXPECT_STREQ( | 64 } else { |
63 entry->code, | 65 EXPECT_EQ(ui::DomCode::NONE, dom_code); |
64 ui::KeycodeConverter::NativeKeycodeToCode(entry->native_keycode)); | |
65 } | |
66 else { | |
67 EXPECT_EQ(ui::KeycodeConverter::InvalidNativeKeycode(), | |
68 ui::KeycodeConverter::CodeToNativeKeycode(entry->code)); | |
69 } | 66 } |
70 | 67 |
71 // Verify that the USB or native codes aren't duplicated. | 68 // Verify that the USB or native codes aren't duplicated. |
72 EXPECT_EQ(0U, usb_to_native.count(entry->usb_keycode)) | 69 EXPECT_EQ(0U, usb_to_native.count(entry->usb_keycode)) |
73 << " duplicate of USB code 0x" << std::hex << std::setfill('0') | 70 << " duplicate of USB code 0x" << std::hex << std::setfill('0') |
74 << std::setw(6) << entry->usb_keycode | 71 << std::setw(6) << entry->usb_keycode |
75 << " to native 0x" | 72 << " to native 0x" |
76 << std::setw(4) << entry->native_keycode | 73 << std::setw(4) << entry->native_keycode |
77 << " (previous was 0x" | 74 << " (previous was 0x" |
78 << std::setw(4) << usb_to_native[entry->usb_keycode] | 75 << std::setw(4) << usb_to_native[entry->usb_keycode] |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 ui::DomKey key = ui::KeycodeConverter::KeyStringToDomKey(s); | 143 ui::DomKey key = ui::KeycodeConverter::KeyStringToDomKey(s); |
147 if (s) { | 144 if (s) { |
148 EXPECT_STREQ(s, ui::KeycodeConverter::DomKeyToKeyString(key)); | 145 EXPECT_STREQ(s, ui::KeycodeConverter::DomKeyToKeyString(key)); |
149 } else { | 146 } else { |
150 EXPECT_EQ(ui::DomKey::NONE, key); | 147 EXPECT_EQ(ui::DomKey::NONE, key); |
151 } | 148 } |
152 } | 149 } |
153 } | 150 } |
154 | 151 |
155 } // namespace | 152 } // namespace |
OLD | NEW |