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

Unified Diff: ui/events/keycodes/dom/keycode_converter_unittest.cc

Issue 1284433002: Revise ui::DomKey to unify character and non-character codes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: ui/events/keycodes/dom/keycode_converter_unittest.cc
diff --git a/ui/events/keycodes/dom/keycode_converter_unittest.cc b/ui/events/keycodes/dom/keycode_converter_unittest.cc
index f5da9a09226a447f0b7f82d77038ec84f134f507..6a719abe1d132a62ed6fd90baa22e1b476dab56e 100644
--- a/ui/events/keycodes/dom/keycode_converter_unittest.cc
+++ b/ui/events/keycodes/dom/keycode_converter_unittest.cc
@@ -131,18 +131,67 @@ TEST(KeycodeConverter, DomCode) {
}
TEST(KeycodeConverter, DomKey) {
kpschoedel 2015/08/07 20:42:12 Added cases for Unicode characters.
- // Test invalid and unknown arguments to KeyStringToDomKey()
- EXPECT_EQ(ui::DomKey::NONE, ui::KeycodeConverter::KeyStringToDomKey(nullptr));
- EXPECT_EQ(ui::DomKey::NONE, ui::KeycodeConverter::KeyStringToDomKey("-"));
- // Round-trip test DOM Level 3 .key strings.
+ static const struct {
+ ui::DomKey key;
+ bool is_unicode;
+ bool is_dead;
+ bool test_to_string;
+ const char *const string;
+ } test_cases[] = {
+ // Invalid arguments to KeyStringToDomKey().
+ {ui::DomKey::NONE, false, false, false, nullptr},
+ {ui::DomKey::NONE, false, false, true, ""},
+ {ui::DomKey::NONE, false, false, false, "?!?"},
+ {ui::DomKey::NONE, false, false, false, "\x61\xCC\x81"},
+ // Some single Unicode characters.
+ {'-', true, false, true, "-" },
+ {'A', true, false, true, "A"},
+ {0xE1, true, false, true, "\xC3\xA1"},
+ {0x1F648, true, false, true, "\xF0\x9F\x99\x88"},
+ // Unicode-equivalent named values.
+ {ui::DomKey::BACKSPACE, true, false, true, "Backspace"},
+ {ui::DomKey::TAB, true, false, true, "Tab"},
+ {ui::DomKey::ENTER, true, false, true, "Enter"},
+ {ui::DomKey::ESCAPE, true, false, true, "Escape"},
+ {ui::DomKey::DEL, true, false, true, "Delete"},
+ {ui::DomKey::BACKSPACE, true, false, false, "\b"},
+ {ui::DomKey::TAB, true, false, false, "\t"},
+ {ui::DomKey::ENTER, true, false, false, "\r"},
+ {ui::DomKey::ESCAPE, true, false, false, "\x1B"},
+ {ui::DomKey::DEL, true, false, false, "\x7F"},
+ {'\b', true, false, true, "Backspace"},
+ {'\t', true, false, true, "Tab"},
+ {'\r', true, false, true, "Enter"},
+ {0x1B, true, false, true, "Escape"},
+ {0x7F, true, false, true, "Delete"},
+ // 'Dead' key.
+ {ui::DomKey::Dead(0xFFFF), false, true, true, "Dead"},
+ // Sample non-Unicode key names.
+ {ui::DomKey::SHIFT, false, false, true, "Shift"},
+ {ui::DomKey::F16, false, false, true, "F16"},
+ {ui::DomKey::ZOOM_IN, false, false, true, "ZoomIn"},
+ {ui::DomKey::UNIDENTIFIED, false, false, true, "Unidentified"},
+ };
+ for (const auto& test : test_cases) {
+ // Check KeyStringToDomKey().
+ ui::DomKey key = ui::KeycodeConverter::KeyStringToDomKey(test.string);
+ EXPECT_EQ(test.is_unicode, key.IsUnicode());
+ EXPECT_EQ(test.is_dead, key.IsDead());
+ EXPECT_EQ(test.key, key);
+ // Check |DomKeyToKeyString()|.
+ if (test.test_to_string) {
+ std::string s(ui::KeycodeConverter::DomKeyToKeyString(test.key));
+ EXPECT_STREQ(test.string, s.c_str());
+ }
+ }
+ // Round-trip test all UI Events KeyboardEvent.key strings.
const char* s = nullptr;
for (size_t i = 0;
- (s = ui::KeycodeConverter::DomKeyStringForTest(i)) != nullptr;
- ++i) {
+ (s = ui::KeycodeConverter::DomKeyStringForTest(i)) != nullptr; ++i) {
SCOPED_TRACE(i);
ui::DomKey key = ui::KeycodeConverter::KeyStringToDomKey(s);
if (s) {
- EXPECT_STREQ(s, ui::KeycodeConverter::DomKeyToKeyString(key));
+ EXPECT_STREQ(s, ui::KeycodeConverter::DomKeyToKeyString(key).c_str());
} else {
EXPECT_EQ(ui::DomKey::NONE, key);
}

Powered by Google App Engine
This is Rietveld 408576698