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/dom4/keycode_converter.h" | 5 #include "ui/events/keycodes/dom4/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" |
| 11 #include "ui/events/keycodes/dom3/dom_code.h" |
| 12 #include "ui/events/keycodes/dom3/dom_key.h" |
11 | 13 |
12 using ui::KeycodeConverter; | 14 using ui::KeycodeConverter; |
13 | 15 |
14 namespace { | 16 namespace { |
15 | 17 |
16 #if defined(OS_WIN) | 18 #if defined(OS_WIN) |
17 const size_t kExpectedMappedKeyCount = 138; | 19 const size_t kExpectedMappedKeyCount = 138; |
18 #elif defined(OS_LINUX) | 20 #elif defined(OS_LINUX) |
19 const size_t kExpectedMappedKeyCount = 145; | 21 const size_t kExpectedMappedKeyCount = 155; |
20 #elif defined(OS_MACOSX) | 22 #elif defined(OS_MACOSX) |
21 const size_t kExpectedMappedKeyCount = 118; | 23 const size_t kExpectedMappedKeyCount = 118; |
22 #else | 24 #else |
23 const size_t kExpectedMappedKeyCount = 0; | 25 const size_t kExpectedMappedKeyCount = 0; |
24 #endif | 26 #endif |
25 | 27 |
26 const uint32_t kUsbNonExistentKeycode = 0xffffff; | 28 const uint32_t kUsbNonExistentKeycode = 0xffffff; |
27 const uint32_t kUsbUsBackslash = 0x070031; | 29 const uint32_t kUsbUsBackslash = 0x070031; |
28 const uint32_t kUsbNonUsHash = 0x070032; | 30 const uint32_t kUsbNonUsHash = 0x070032; |
29 | 31 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 ui::KeycodeConverter::UsbKeycodeToNativeKeycode(kUsbNonExistentKeycode)); | 104 ui::KeycodeConverter::UsbKeycodeToNativeKeycode(kUsbNonExistentKeycode)); |
103 } | 105 } |
104 | 106 |
105 TEST(UsbKeycodeMap, UsBackslashIsNonUsHash) { | 107 TEST(UsbKeycodeMap, UsBackslashIsNonUsHash) { |
106 // Verify that UsbKeycodeToNativeKeycode treats the non-US "hash" key | 108 // Verify that UsbKeycodeToNativeKeycode treats the non-US "hash" key |
107 // as equivalent to the US "backslash" key. | 109 // as equivalent to the US "backslash" key. |
108 EXPECT_EQ(ui::KeycodeConverter::UsbKeycodeToNativeKeycode(kUsbUsBackslash), | 110 EXPECT_EQ(ui::KeycodeConverter::UsbKeycodeToNativeKeycode(kUsbUsBackslash), |
109 ui::KeycodeConverter::UsbKeycodeToNativeKeycode(kUsbNonUsHash)); | 111 ui::KeycodeConverter::UsbKeycodeToNativeKeycode(kUsbNonUsHash)); |
110 } | 112 } |
111 | 113 |
| 114 TEST(KeycodeConverter, DomCode) { |
| 115 // Test invalid and unknown arguments to CodeStringToDomCode() |
| 116 EXPECT_EQ(ui::DomCode::NONE, |
| 117 ui::KeycodeConverter::CodeStringToDomCode(nullptr)); |
| 118 EXPECT_EQ(ui::DomCode::NONE, ui::KeycodeConverter::CodeStringToDomCode("-")); |
| 119 EXPECT_EQ(ui::DomCode::NONE, ui::KeycodeConverter::CodeStringToDomCode("")); |
| 120 // Round-trip test DOM Level 3 .code strings. |
| 121 const ui::KeycodeMapEntry* keycode_map = |
| 122 ui::KeycodeConverter::GetKeycodeMapForTest(); |
| 123 size_t numEntries = ui::KeycodeConverter::NumKeycodeMapEntriesForTest(); |
| 124 for (size_t i = 0; i < numEntries; ++i) { |
| 125 SCOPED_TRACE(i); |
| 126 const ui::KeycodeMapEntry* entry = &keycode_map[i]; |
| 127 ui::DomCode code = ui::KeycodeConverter::CodeStringToDomCode(entry->code); |
| 128 if (entry->code) { |
| 129 EXPECT_STREQ(entry->code, |
| 130 ui::KeycodeConverter::DomCodeToCodeString(code)); |
| 131 } else { |
| 132 EXPECT_EQ(static_cast<int>(ui::DomCode::NONE), |
| 133 static_cast<int>(code)); |
| 134 } |
| 135 } |
| 136 } |
| 137 |
| 138 TEST(KeycodeConverter, DomKey) { |
| 139 // Test invalid and unknown arguments to KeyStringToDomKey() |
| 140 EXPECT_EQ(ui::DomKey::NONE, ui::KeycodeConverter::KeyStringToDomKey(nullptr)); |
| 141 EXPECT_EQ(ui::DomKey::NONE, ui::KeycodeConverter::KeyStringToDomKey("-")); |
| 142 // Round-trip test DOM Level 3 .key strings. |
| 143 const char* s = nullptr; |
| 144 for (size_t i = 0; |
| 145 (s = ui::KeycodeConverter::DomKeyStringForTest(i)) != nullptr; |
| 146 ++i) { |
| 147 SCOPED_TRACE(i); |
| 148 ui::DomKey key = ui::KeycodeConverter::KeyStringToDomKey(s); |
| 149 if (s) { |
| 150 EXPECT_STREQ(s, ui::KeycodeConverter::DomKeyToKeyString(key)); |
| 151 } else { |
| 152 EXPECT_EQ(ui::DomKey::NONE, key); |
| 153 } |
| 154 } |
| 155 } |
| 156 |
112 } // namespace | 157 } // namespace |
OLD | NEW |