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

Unified Diff: chrome/browser/chromeos/input_method/xkeyboard_unittest.cc

Issue 10383301: Move modifier remapping code from X to Ash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: reverted ui/base/keycodes/keyboard_code_conversion_x.cc (this was just for debugging) Created 8 years, 7 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 | « chrome/browser/chromeos/input_method/xkeyboard_data.h ('k') | chrome/browser/chromeos/preferences.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/input_method/xkeyboard_unittest.cc
diff --git a/chrome/browser/chromeos/input_method/xkeyboard_unittest.cc b/chrome/browser/chromeos/input_method/xkeyboard_unittest.cc
index 6658b3ae6664506e9624a5eac9a9bb3efdf6c3a7..55e687fab46a49420ff1879a75b2e614eb30765a 100644
--- a/chrome/browser/chromeos/input_method/xkeyboard_unittest.cc
+++ b/chrome/browser/chromeos/input_method/xkeyboard_unittest.cc
@@ -49,36 +49,6 @@ class XKeyboardTest : public testing::Test {
content::TestBrowserThread ui_thread_;
};
-// Returns a ModifierMap object that contains the following mapping:
-// - kSearchKey is mapped to |search|.
-// - kControl key is mapped to |control|.
-// - kAlt key is mapped to |alt|.
-ModifierMap GetMap(ModifierKey search, ModifierKey control, ModifierKey alt) {
- ModifierMap modifier_key;
- // Use the Search key as |search|.
- modifier_key.push_back(ModifierKeyPair(kSearchKey, search));
- modifier_key.push_back(ModifierKeyPair(kControlKey, control));
- modifier_key.push_back(ModifierKeyPair(kAltKey, alt));
- return modifier_key;
-}
-
-// Checks |modifier_map| and returns true if the following conditions are met:
-// - kSearchKey is mapped to |search|.
-// - kControl key is mapped to |control|.
-// - kAlt key is mapped to |alt|.
-bool CheckMap(const ModifierMap& modifier_map,
- ModifierKey search, ModifierKey control, ModifierKey alt) {
- ModifierMap::const_iterator begin = modifier_map.begin();
- ModifierMap::const_iterator end = modifier_map.end();
- if ((std::count(begin, end, ModifierKeyPair(kSearchKey, search)) == 1) &&
- (std::count(begin, end,
- ModifierKeyPair(kControlKey, control)) == 1) &&
- (std::count(begin, end, ModifierKeyPair(kAltKey, alt)) == 1)) {
- return true;
- }
- return false;
-}
-
// Returns true if X display is available.
bool DisplayAvailable() {
return ui::GetXDisplay() ? true : false;
@@ -88,139 +58,31 @@ bool DisplayAvailable() {
// Tests CreateFullXkbLayoutName() function.
TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameBasic) {
- // CreateFullXkbLayoutName should not accept an empty |layout_name|.
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
- "", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
-
- // CreateFullXkbLayoutName should not accept an empty ModifierMap.
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
- "us", ModifierMap()).c_str());
-
- // CreateFullXkbLayoutName should not accept an incomplete ModifierMap.
- ModifierMap tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
- tmp_map.pop_back();
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
-
- // CreateFullXkbLayoutName should not accept redundant ModifierMaps.
- tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
- tmp_map.push_back(ModifierKeyPair(kSearchKey, kVoidKey)); // two search maps
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
- tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
- tmp_map.push_back(ModifierKeyPair(kControlKey, kVoidKey)); // two ctrls
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
- tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
- tmp_map.push_back(ModifierKeyPair(kAltKey, kVoidKey)); // two alts.
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
-
- // CreateFullXkbLayoutName should not accept invalid ModifierMaps.
- tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
- tmp_map.push_back(ModifierKeyPair(kVoidKey, kSearchKey)); // can't remap void
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
- tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
- tmp_map.push_back(ModifierKeyPair(kCapsLockKey, kSearchKey)); // ditto
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
-
- // CreateFullXkbLayoutName can remap Search/Ctrl/Alt to CapsLock.
- EXPECT_STREQ("us+chromeos(capslock_disabled_disabled)",
- xkey_->CreateFullXkbLayoutName(
- "us",
- GetMap(kCapsLockKey, kVoidKey, kVoidKey)).c_str());
- EXPECT_STREQ("us+chromeos(disabled_capslock_disabled)",
- xkey_->CreateFullXkbLayoutName(
- "us",
- GetMap(kVoidKey, kCapsLockKey, kVoidKey)).c_str());
- EXPECT_STREQ("us+chromeos(disabled_disabled_capslock)",
- xkey_->CreateFullXkbLayoutName(
- "us",
- GetMap(kVoidKey, kVoidKey, kCapsLockKey)).c_str());
-
// CreateFullXkbLayoutName should not accept non-alphanumeric characters
// except "()-_".
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
- "us!", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
- "us; /bin/sh", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
- EXPECT_STREQ("ab-c_12+chromeos(disabled_disabled_disabled)",
- xkey_->CreateFullXkbLayoutName(
- "ab-c_12",
- GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
+ EXPECT_EQ("", xkey_->CreateFullXkbLayoutName("us!"));
+ EXPECT_EQ("", xkey_->CreateFullXkbLayoutName("us; /bin/sh"));
+ EXPECT_EQ("ab-c_12+chromeos(search_leftcontrol_leftalt_keepralt)",
+ xkey_->CreateFullXkbLayoutName("ab-c_12"));
// CreateFullXkbLayoutName should not accept upper-case ascii characters.
- EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
- "US", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
+ EXPECT_EQ("", xkey_->CreateFullXkbLayoutName("US"));
// CreateFullXkbLayoutName should accept lower-case ascii characters.
for (int c = 'a'; c <= 'z'; ++c) {
- EXPECT_STRNE("", xkey_->CreateFullXkbLayoutName(
- std::string(3, c),
- GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
+ EXPECT_NE("", xkey_->CreateFullXkbLayoutName(std::string(3, c)));
}
// CreateFullXkbLayoutName should accept numbers.
for (int c = '0'; c <= '9'; ++c) {
- EXPECT_STRNE("", xkey_->CreateFullXkbLayoutName(
- std::string(3, c),
- GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
+ EXPECT_NE("", xkey_->CreateFullXkbLayoutName(std::string(3, c)));
}
// CreateFullXkbLayoutName should accept a layout with a variant name.
- EXPECT_STREQ("us(dvorak)+chromeos(disabled_disabled_disabled)",
- xkey_->CreateFullXkbLayoutName(
- "us(dvorak)",
- GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
- EXPECT_STREQ("jp+chromeos(disabled_disabled_disabled)",
- xkey_->CreateFullXkbLayoutName(
- "jp", // does not use AltGr, therefore no _keepralt.
- GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
-}
-
-TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameKeepCapsLock) {
- EXPECT_STREQ("us(colemak)+chromeos(search_disabled_disabled)",
- xkey_->CreateFullXkbLayoutName(
- "us(colemak)",
- // The 1st kVoidKey should be ignored.
- GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
- EXPECT_STREQ("de(neo)+chromeos(search_leftcontrol_leftcontrol_keepralt)",
- xkey_->CreateFullXkbLayoutName(
- // The 1st kControlKey should be ignored.
- "de(neo)", GetMap(kControlKey,
- kControlKey,
- kControlKey)).c_str());
- EXPECT_STREQ("gb(extd)+chromeos(disabled_disabled_disabled_keepralt)",
- xkey_->CreateFullXkbLayoutName(
- "gb(extd)",
- GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
-}
-
-TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameKeepAlt) {
- EXPECT_STREQ("us(intl)+chromeos(disabled_disabled_disabled_keepralt)",
- xkey_->CreateFullXkbLayoutName(
- "us(intl)", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
- EXPECT_STREQ("kr(kr104)+"
- "chromeos(leftcontrol_leftcontrol_leftcontrol_keepralt)",
- xkey_->CreateFullXkbLayoutName(
- "kr(kr104)", GetMap(kControlKey,
- kControlKey,
- kControlKey)).c_str());
-}
-
-// Tests if CreateFullXkbLayoutName and ExtractLayoutNameFromFullXkbLayoutName
-// functions could handle all combinations of modifier remapping.
-TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameModifierKeys) {
- std::set<std::string> layouts;
- for (int i = 0; i < static_cast<int>(kNumModifierKeys); ++i) {
- for (int j = 0; j < static_cast<int>(kNumModifierKeys); ++j) {
- for (int k = 0; k < static_cast<int>(kNumModifierKeys); ++k) {
- const std::string layout = xkey_->CreateFullXkbLayoutName(
- "us", GetMap(ModifierKey(i), ModifierKey(j), ModifierKey(k)));
- // CreateFullXkbLayoutName should succeed (i.e. should not return "".)
- EXPECT_STREQ("us+", layout.substr(0, 3).c_str())
- << "layout: " << layout;
- // All 4*3*3 layouts should be different.
- EXPECT_TRUE(layouts.insert(layout).second) << "layout: " << layout;
- }
- }
- }
+ EXPECT_EQ("us(dvorak)+chromeos(search_leftcontrol_leftalt_keepralt)",
+ xkey_->CreateFullXkbLayoutName("us(dvorak)"));
+ EXPECT_EQ("jp+chromeos(search_leftcontrol_leftalt_keepralt)",
+ xkey_->CreateFullXkbLayoutName("jp"));
}
TEST_F(XKeyboardTest, TestSetCapsLockEnabled) {
@@ -322,23 +184,6 @@ TEST_F(XKeyboardTest, TestSetCapsLockAndNumLockAtTheSameTime) {
xkey_->GetLockedModifiers(NULL, NULL);
}
-TEST_F(XKeyboardTest, TestContainsModifierKeyAsReplacement) {
- EXPECT_FALSE(XKeyboard::ContainsModifierKeyAsReplacement(
- GetMap(kVoidKey, kVoidKey, kVoidKey), kCapsLockKey));
- EXPECT_TRUE(XKeyboard::ContainsModifierKeyAsReplacement(
- GetMap(kCapsLockKey, kVoidKey, kVoidKey), kCapsLockKey));
- EXPECT_TRUE(XKeyboard::ContainsModifierKeyAsReplacement(
- GetMap(kVoidKey, kCapsLockKey, kVoidKey), kCapsLockKey));
- EXPECT_TRUE(XKeyboard::ContainsModifierKeyAsReplacement(
- GetMap(kVoidKey, kVoidKey, kCapsLockKey), kCapsLockKey));
- EXPECT_TRUE(XKeyboard::ContainsModifierKeyAsReplacement(
- GetMap(kCapsLockKey, kCapsLockKey, kVoidKey), kCapsLockKey));
- EXPECT_TRUE(XKeyboard::ContainsModifierKeyAsReplacement(
- GetMap(kCapsLockKey, kCapsLockKey, kCapsLockKey), kCapsLockKey));
- EXPECT_TRUE(XKeyboard::ContainsModifierKeyAsReplacement(
- GetMap(kSearchKey, kVoidKey, kVoidKey), kSearchKey));
-}
-
TEST_F(XKeyboardTest, TestSetAutoRepeatEnabled) {
if (!DisplayAvailable()) {
DVLOG(1) << "X server is not available. Skip the test.";
« no previous file with comments | « chrome/browser/chromeos/input_method/xkeyboard_data.h ('k') | chrome/browser/chromeos/preferences.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698