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

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

Issue 8356040: Reapply Caps Lock and Num Lock to core keyboard whenever new X input device is added (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix unit_tests Created 9 years, 1 month 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: 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 810bfcb4300e1bfefe105f00dac61a4c86698883..3e44d455fe169ddbc349881ebc7bedf489cd0129 100644
--- a/chrome/browser/chromeos/input_method/xkeyboard_unittest.cc
+++ b/chrome/browser/chromeos/input_method/xkeyboard_unittest.cc
@@ -49,16 +49,20 @@ class XKeyboardTest : public testing::Test {
XKeyboardTest()
: controller_(IBusController::Create()),
util_(controller_->GetSupportedInputMethods()),
- xkey_(util_),
ui_thread_(BrowserThread::UI, &message_loop_) {
}
- static void SetUpTestCase() {
+ virtual void SetUp() {
+ xkey_.reset(new TestableXKeyboard(util_));
+ }
+
+ virtual void TearDown() {
+ xkey_.reset();
}
scoped_ptr<IBusController> controller_;
InputMethodUtil util_;
- TestableXKeyboard xkey_;
+ scoped_ptr<TestableXKeyboard> xkey_;
MessageLoopForUI message_loop_;
content::TestBrowserThread ui_thread_;
@@ -104,127 +108,127 @@ bool DisplayAvailable() {
// Tests CreateFullXkbLayoutName() function.
TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameBasic) {
// CreateFullXkbLayoutName should not accept an empty |layout_name|.
- EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName(
+ EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
"", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
// CreateFullXkbLayoutName should not accept an empty ModifierMap.
- EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName(
+ 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());
+ 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());
+ EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
tmp_map.push_back(ModifierKeyPair(kLeftControlKey, kVoidKey)); // two ctrls
- EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str());
+ EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
tmp_map.push_back(ModifierKeyPair(kLeftAltKey, kVoidKey)); // two alts.
- EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str());
+ 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());
+ 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());
+ 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(
+ xkey_->CreateFullXkbLayoutName(
"us",
GetMap(kCapsLockKey, kVoidKey, kVoidKey)).c_str());
EXPECT_STREQ("us+chromeos(disabled_capslock_disabled)",
- xkey_.CreateFullXkbLayoutName(
+ xkey_->CreateFullXkbLayoutName(
"us",
GetMap(kVoidKey, kCapsLockKey, kVoidKey)).c_str());
EXPECT_STREQ("us+chromeos(disabled_disabled_capslock)",
- xkey_.CreateFullXkbLayoutName(
+ xkey_->CreateFullXkbLayoutName(
"us",
GetMap(kVoidKey, kVoidKey, kCapsLockKey)).c_str());
// CreateFullXkbLayoutName should not accept non-alphanumeric characters
// except "()-_".
- EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName(
+ EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
"us!", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
- EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName(
+ EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
"us; /bin/sh", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
EXPECT_STREQ("ab-c_12+chromeos(disabled_disabled_disabled),us",
- xkey_.CreateFullXkbLayoutName(
+ xkey_->CreateFullXkbLayoutName(
"ab-c_12",
GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
// CreateFullXkbLayoutName should not accept upper-case ascii characters.
- EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName(
+ EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
"US", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
// CreateFullXkbLayoutName should accept lower-case ascii characters.
for (int c = 'a'; c <= 'z'; ++c) {
- EXPECT_STRNE("", xkey_.CreateFullXkbLayoutName(
+ EXPECT_STRNE("", xkey_->CreateFullXkbLayoutName(
std::string(3, c),
GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
}
// CreateFullXkbLayoutName should accept numbers.
for (int c = '0'; c <= '9'; ++c) {
- EXPECT_STRNE("", xkey_.CreateFullXkbLayoutName(
+ EXPECT_STRNE("", xkey_->CreateFullXkbLayoutName(
std::string(3, c),
GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
}
// CreateFullXkbLayoutName should accept a layout with a variant name.
EXPECT_STREQ("us(dvorak)+chromeos(disabled_disabled_disabled)",
- xkey_.CreateFullXkbLayoutName(
+ xkey_->CreateFullXkbLayoutName(
"us(dvorak)",
GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
EXPECT_STREQ("jp+chromeos(disabled_disabled_disabled),us",
- xkey_.CreateFullXkbLayoutName(
+ xkey_->CreateFullXkbLayoutName(
"jp", // does not use AltGr, therefore no _keepralt.
GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
// When the layout name is not "us", the second layout should be added.
- EXPECT_EQ(std::string::npos, xkey_.CreateFullXkbLayoutName(
+ EXPECT_EQ(std::string::npos, xkey_->CreateFullXkbLayoutName(
"us", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
- EXPECT_EQ(std::string::npos, xkey_.CreateFullXkbLayoutName(
+ EXPECT_EQ(std::string::npos, xkey_->CreateFullXkbLayoutName(
"us(dvorak)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
- EXPECT_NE(std::string::npos, xkey_.CreateFullXkbLayoutName(
+ EXPECT_NE(std::string::npos, xkey_->CreateFullXkbLayoutName(
"gb(extd)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
- EXPECT_NE(std::string::npos, xkey_.CreateFullXkbLayoutName(
+ EXPECT_NE(std::string::npos, xkey_->CreateFullXkbLayoutName(
"jp", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
}
TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameKeepCapsLock) {
EXPECT_STREQ("us(colemak)+chromeos(search_disabled_disabled)",
- xkey_.CreateFullXkbLayoutName(
+ 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),us",
- xkey_.CreateFullXkbLayoutName(
+ xkey_->CreateFullXkbLayoutName(
// The 1st kLeftControlKey should be ignored.
"de(neo)", GetMap(kLeftControlKey,
kLeftControlKey,
kLeftControlKey)).c_str());
EXPECT_STREQ("gb(extd)+chromeos(disabled_disabled_disabled_keepralt),us",
- xkey_.CreateFullXkbLayoutName(
+ 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(
+ xkey_->CreateFullXkbLayoutName(
"us(intl)", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
EXPECT_STREQ("kr(kr104)+"
"chromeos(leftcontrol_leftcontrol_leftcontrol_keepralt),us",
- xkey_.CreateFullXkbLayoutName(
+ xkey_->CreateFullXkbLayoutName(
"kr(kr104)", GetMap(kLeftControlKey,
kLeftControlKey,
kLeftControlKey)).c_str());
@@ -237,7 +241,7 @@ TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameModifierKeys) {
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(
+ 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())
@@ -249,20 +253,39 @@ TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameModifierKeys) {
}
}
-TEST_F(XKeyboardTest, TestSetCapsLockIsEnabled) {
+TEST_F(XKeyboardTest, TestSetCapsLockEnabled) {
+ if (!DisplayAvailable()) {
+ return;
+ }
+ const bool initial_lock_state = xkey_->CapsLockIsEnabled();
+ xkey_->SetCapsLockEnabled(true);
+ EXPECT_TRUE(TestableXKeyboard::CapsLockIsEnabled());
+ xkey_->SetCapsLockEnabled(false);
+ EXPECT_FALSE(TestableXKeyboard::CapsLockIsEnabled());
+ xkey_->SetCapsLockEnabled(true);
+ EXPECT_TRUE(TestableXKeyboard::CapsLockIsEnabled());
+ xkey_->SetCapsLockEnabled(false);
+ EXPECT_FALSE(TestableXKeyboard::CapsLockIsEnabled());
+ xkey_->SetCapsLockEnabled(initial_lock_state);
+}
+
+TEST_F(XKeyboardTest, TestSetNumLockEnabled) {
if (!DisplayAvailable()) {
return;
}
- const bool initial_lock_state = XKeyboard::CapsLockIsEnabled();
- XKeyboard::SetCapsLockEnabled(true);
- EXPECT_TRUE(XKeyboard::CapsLockIsEnabled());
- XKeyboard::SetCapsLockEnabled(false);
- EXPECT_FALSE(XKeyboard::CapsLockIsEnabled());
- XKeyboard::SetCapsLockEnabled(true);
- EXPECT_TRUE(XKeyboard::CapsLockIsEnabled());
- XKeyboard::SetCapsLockEnabled(false);
- EXPECT_FALSE(XKeyboard::CapsLockIsEnabled());
- XKeyboard::SetCapsLockEnabled(initial_lock_state);
+ const unsigned int num_lock_mask = TestableXKeyboard::GetNumLockMask();
+ ASSERT_NE(0U, num_lock_mask);
+
+ const bool initial_lock_state = xkey_->NumLockIsEnabled(num_lock_mask);
+ xkey_->SetNumLockEnabled(true);
+ EXPECT_TRUE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
+ xkey_->SetNumLockEnabled(false);
+ EXPECT_FALSE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
+ xkey_->SetNumLockEnabled(true);
+ EXPECT_TRUE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
+ xkey_->SetNumLockEnabled(false);
+ EXPECT_FALSE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
+ xkey_->SetNumLockEnabled(initial_lock_state);
}
TEST_F(XKeyboardTest, TestContainsModifierKeyAsReplacement) {

Powered by Google App Engine
This is Rietveld 408576698