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

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: IsDead 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
« no previous file with comments | « ui/events/keycodes/dom/keycode_converter.cc ('k') | ui/events/keycodes/dom_us_layout_data.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..09dc5af52910c7fb83546f87bdaa8953f022e6c3 100644
--- a/ui/events/keycodes/dom/keycode_converter_unittest.cc
+++ b/ui/events/keycodes/dom/keycode_converter_unittest.cc
@@ -131,18 +131,68 @@ TEST(KeycodeConverter, DomCode) {
}
TEST(KeycodeConverter, DomKey) {
- // 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.
+ const struct {
+ ui::DomKey::Base key;
+ bool is_character;
+ 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.
+ {ui::DomKey::Constant<'-'>::Character, true, false, true, "-"},
+ {ui::DomKey::Constant<'A'>::Character, true, false, true, "A"},
+ {ui::DomKey::Constant<0xE1>::Character, true, false, true, "\xC3\xA1"},
+ {ui::DomKey::Constant<0x1F648>::Character, 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"},
+ {ui::DomKey::Constant<'\b'>::Character, true, false, true, "Backspace"},
+ {ui::DomKey::Constant<'\t'>::Character, true, false, true, "Tab"},
+ {ui::DomKey::Constant<'\r'>::Character, true, false, true, "Enter"},
+ {ui::DomKey::Constant<0x1B>::Character, true, false, true, "Escape"},
+ {ui::DomKey::Constant<0x7F>::Character, true, false, true, "Delete"},
+ // 'Dead' key.
+ {ui::DomKey::Constant<0xFFFF>::Dead, 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_character, key.IsCharacter());
+ EXPECT_EQ(test.is_dead, key.IsDeadKey());
+ 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);
}
« no previous file with comments | « ui/events/keycodes/dom/keycode_converter.cc ('k') | ui/events/keycodes/dom_us_layout_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698