Index: ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc |
diff --git a/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc b/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc |
index 5af74e1373df64d10b71d6b8a96eea04254a8f6c..0ae34b6151d95e891416a6bc3f15c2d21217de49 100644 |
--- a/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc |
+++ b/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc |
@@ -39,6 +39,12 @@ class VkTestXkbKeyboardLayoutEngine : public XkbKeyboardLayoutEngine { |
ui::KeyboardCode key_code; |
}; |
+ struct RuleNames { |
+ std::string layout_name; |
+ std::string layout; |
+ std::string variant; |
+ }; |
+ |
public: |
VkTestXkbKeyboardLayoutEngine(const XkbKeyCodeConverter& keycode_converter) |
: XkbKeyboardLayoutEngine(keycode_converter), entry_(nullptr) { |
@@ -743,4 +749,69 @@ TEST_F(XkbLayoutEngineVkTest, KeyboardCodeForPrintable) { |
} |
} |
+TEST_F(XkbLayoutEngineVkTest, XkbRuleNamesForLayoutName) { |
+ static const VkTestXkbKeyboardLayoutEngine::RuleNames kVkeyTestCase[] = { |
+ /* 0 */ {"us", "us", ""}, |
+ /* 1 */ {"jp", "jp", ""}, |
+ /* 2 */ {"us(intl)", "us", "intl"}, |
+ /* 3 */ {"us(altgr-intl)", "us", "altgr-intl"}, |
+ /* 4 */ {"us(dvorak)", "us", "dvorak"}, |
+ /* 5 */ {"us(colemak)", "us", "colemak"}, |
+ /* 6 */ {"be", "be", ""}, |
+ /* 7 */ {"fr", "fr", ""}, |
+ /* 8 */ {"ca", "ca", ""}, |
+ /* 9 */ {"ch(fr)", "ch", "fr"}, |
+ /* 10 */ {"ca(multix)", "ca", "multix"}, |
+ /* 11 */ {"de", "de", ""}, |
+ /* 12 */ {"de(neo)", "de", "neo"}, |
+ /* 13 */ {"ch", "ch", ""}, |
+ /* 14 */ {"ru", "ru", ""}, |
+ /* 15 */ {"ru(phonetic)", "ru", "phonetic"}, |
+ /* 16 */ {"br", "br", ""}, |
+ /* 17 */ {"bg", "bg", ""}, |
+ /* 18 */ {"bg(phonetic)", "bg", "phonetic"}, |
+ /* 19 */ {"ca(eng)", "ca", "eng"}, |
+ /* 20 */ {"cz", "cz", ""}, |
+ /* 21 */ {"cz(qwerty)", "cz", "qwerty"}, |
+ /* 22 */ {"ee", "ee", ""}, |
+ /* 23 */ {"es", "es", ""}, |
+ /* 24 */ {"es(cat)", "es", "cat"}, |
+ /* 25 */ {"dk", "dk", ""}, |
+ /* 26 */ {"gr", "gr", ""}, |
+ /* 27 */ {"il", "il", ""}, |
+ /* 28 */ {"latam", "latam", ""}, |
+ /* 29 */ {"lt", "lt", ""}, |
+ /* 30 */ {"lv(apostrophe)", "lv", "apostrophe"}, |
+ /* 31 */ {"hr", "hr", ""}, |
+ /* 32 */ {"gb(extd)", "gb", "extd"}, |
+ /* 33 */ {"gb(dvorak)", "gb", "dvorak"}, |
+ /* 34 */ {"fi", "fi", ""}, |
+ /* 35 */ {"hu", "hu", ""}, |
+ /* 36 */ {"it", "it", ""}, |
+ /* 37 */ {"is", "is", ""}, |
+ /* 38 */ {"no", "no", ""}, |
+ /* 39 */ {"pl", "pl", ""}, |
+ /* 40 */ {"pt", "pt", ""}, |
+ /* 41 */ {"ro", "ro", ""}, |
+ /* 42 */ {"se", "se", ""}, |
+ /* 43 */ {"sk", "sk", ""}, |
+ /* 44 */ {"si", "si", ""}, |
+ /* 45 */ {"rs", "rs", ""}, |
+ /* 46 */ {"tr", "tr", ""}, |
+ /* 47 */ {"ua", "ua", ""}, |
+ /* 48 */ {"by", "by", ""}, |
+ /* 49 */ {"am", "am", ""}, |
+ /* 50 */ {"ge", "ge", ""}, |
+ /* 51 */ {"mn", "mn", ""}, |
+ /* 52 */ {"ie", "ie", ""}}; |
+ for (size_t i = 0; i < arraysize(kVkeyTestCase); ++i) { |
+ SCOPED_TRACE(i); |
+ const VkTestXkbKeyboardLayoutEngine::RuleNames* e = &kVkeyTestCase[i]; |
+ scoped_ptr<xkb_rule_names> names = |
+ layout_engine_->GetXkbRuleNames(e->layout_name); |
+ EXPECT_EQ(names.get()->layout, e->layout); |
+ EXPECT_EQ(names.get()->variant, e->variant); |
+ } |
+} |
+ |
} // namespace ui |