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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/input_method/xkeyboard.h" 5 #include "chrome/browser/chromeos/input_method/xkeyboard.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 // Change access rights. 42 // Change access rights.
43 using XKeyboard::CreateFullXkbLayoutName; 43 using XKeyboard::CreateFullXkbLayoutName;
44 using XKeyboard::ContainsModifierKeyAsReplacement; 44 using XKeyboard::ContainsModifierKeyAsReplacement;
45 }; 45 };
46 46
47 class XKeyboardTest : public testing::Test { 47 class XKeyboardTest : public testing::Test {
48 public: 48 public:
49 XKeyboardTest() 49 XKeyboardTest()
50 : controller_(IBusController::Create()), 50 : controller_(IBusController::Create()),
51 util_(controller_->GetSupportedInputMethods()), 51 util_(controller_->GetSupportedInputMethods()),
52 xkey_(util_),
53 ui_thread_(BrowserThread::UI, &message_loop_) { 52 ui_thread_(BrowserThread::UI, &message_loop_) {
54 } 53 }
55 54
56 static void SetUpTestCase() { 55 virtual void SetUp() {
56 xkey_.reset(new TestableXKeyboard(util_));
57 }
58
59 virtual void TearDown() {
60 xkey_.reset();
57 } 61 }
58 62
59 scoped_ptr<IBusController> controller_; 63 scoped_ptr<IBusController> controller_;
60 InputMethodUtil util_; 64 InputMethodUtil util_;
61 TestableXKeyboard xkey_; 65 scoped_ptr<TestableXKeyboard> xkey_;
62 66
63 MessageLoopForUI message_loop_; 67 MessageLoopForUI message_loop_;
64 content::TestBrowserThread ui_thread_; 68 content::TestBrowserThread ui_thread_;
65 }; 69 };
66 70
67 // Returns a ModifierMap object that contains the following mapping: 71 // Returns a ModifierMap object that contains the following mapping:
68 // - kSearchKey is mapped to |search|. 72 // - kSearchKey is mapped to |search|.
69 // - kLeftControl key is mapped to |control|. 73 // - kLeftControl key is mapped to |control|.
70 // - kLeftAlt key is mapped to |alt|. 74 // - kLeftAlt key is mapped to |alt|.
71 ModifierMap GetMap(ModifierKey search, ModifierKey control, ModifierKey alt) { 75 ModifierMap GetMap(ModifierKey search, ModifierKey control, ModifierKey alt) {
(...skipping 25 matching lines...) Expand all
97 // Returns true if X display is available. 101 // Returns true if X display is available.
98 bool DisplayAvailable() { 102 bool DisplayAvailable() {
99 return ui::GetXDisplay() ? true : false; 103 return ui::GetXDisplay() ? true : false;
100 } 104 }
101 105
102 } // namespace 106 } // namespace
103 107
104 // Tests CreateFullXkbLayoutName() function. 108 // Tests CreateFullXkbLayoutName() function.
105 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameBasic) { 109 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameBasic) {
106 // CreateFullXkbLayoutName should not accept an empty |layout_name|. 110 // CreateFullXkbLayoutName should not accept an empty |layout_name|.
107 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName( 111 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
108 "", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 112 "", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
109 113
110 // CreateFullXkbLayoutName should not accept an empty ModifierMap. 114 // CreateFullXkbLayoutName should not accept an empty ModifierMap.
111 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName( 115 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
112 "us", ModifierMap()).c_str()); 116 "us", ModifierMap()).c_str());
113 117
114 // CreateFullXkbLayoutName should not accept an incomplete ModifierMap. 118 // CreateFullXkbLayoutName should not accept an incomplete ModifierMap.
115 ModifierMap tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey); 119 ModifierMap tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
116 tmp_map.pop_back(); 120 tmp_map.pop_back();
117 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str()); 121 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
118 122
119 // CreateFullXkbLayoutName should not accept redundant ModifierMaps. 123 // CreateFullXkbLayoutName should not accept redundant ModifierMaps.
120 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey); 124 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
121 tmp_map.push_back(ModifierKeyPair(kSearchKey, kVoidKey)); // two search maps 125 tmp_map.push_back(ModifierKeyPair(kSearchKey, kVoidKey)); // two search maps
122 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str()); 126 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
123 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey); 127 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
124 tmp_map.push_back(ModifierKeyPair(kLeftControlKey, kVoidKey)); // two ctrls 128 tmp_map.push_back(ModifierKeyPair(kLeftControlKey, kVoidKey)); // two ctrls
125 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str()); 129 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
126 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey); 130 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
127 tmp_map.push_back(ModifierKeyPair(kLeftAltKey, kVoidKey)); // two alts. 131 tmp_map.push_back(ModifierKeyPair(kLeftAltKey, kVoidKey)); // two alts.
128 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str()); 132 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
129 133
130 // CreateFullXkbLayoutName should not accept invalid ModifierMaps. 134 // CreateFullXkbLayoutName should not accept invalid ModifierMaps.
131 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey); 135 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
132 tmp_map.push_back(ModifierKeyPair(kVoidKey, kSearchKey)); // can't remap void 136 tmp_map.push_back(ModifierKeyPair(kVoidKey, kSearchKey)); // can't remap void
133 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str()); 137 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
134 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey); 138 tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
135 tmp_map.push_back(ModifierKeyPair(kCapsLockKey, kSearchKey)); // ditto 139 tmp_map.push_back(ModifierKeyPair(kCapsLockKey, kSearchKey)); // ditto
136 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName("us", tmp_map).c_str()); 140 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName("us", tmp_map).c_str());
137 141
138 // CreateFullXkbLayoutName can remap Search/Ctrl/Alt to CapsLock. 142 // CreateFullXkbLayoutName can remap Search/Ctrl/Alt to CapsLock.
139 EXPECT_STREQ("us+chromeos(capslock_disabled_disabled)", 143 EXPECT_STREQ("us+chromeos(capslock_disabled_disabled)",
140 xkey_.CreateFullXkbLayoutName( 144 xkey_->CreateFullXkbLayoutName(
141 "us", 145 "us",
142 GetMap(kCapsLockKey, kVoidKey, kVoidKey)).c_str()); 146 GetMap(kCapsLockKey, kVoidKey, kVoidKey)).c_str());
143 EXPECT_STREQ("us+chromeos(disabled_capslock_disabled)", 147 EXPECT_STREQ("us+chromeos(disabled_capslock_disabled)",
144 xkey_.CreateFullXkbLayoutName( 148 xkey_->CreateFullXkbLayoutName(
145 "us", 149 "us",
146 GetMap(kVoidKey, kCapsLockKey, kVoidKey)).c_str()); 150 GetMap(kVoidKey, kCapsLockKey, kVoidKey)).c_str());
147 EXPECT_STREQ("us+chromeos(disabled_disabled_capslock)", 151 EXPECT_STREQ("us+chromeos(disabled_disabled_capslock)",
148 xkey_.CreateFullXkbLayoutName( 152 xkey_->CreateFullXkbLayoutName(
149 "us", 153 "us",
150 GetMap(kVoidKey, kVoidKey, kCapsLockKey)).c_str()); 154 GetMap(kVoidKey, kVoidKey, kCapsLockKey)).c_str());
151 155
152 // CreateFullXkbLayoutName should not accept non-alphanumeric characters 156 // CreateFullXkbLayoutName should not accept non-alphanumeric characters
153 // except "()-_". 157 // except "()-_".
154 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName( 158 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
155 "us!", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 159 "us!", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
156 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName( 160 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
157 "us; /bin/sh", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 161 "us; /bin/sh", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
158 EXPECT_STREQ("ab-c_12+chromeos(disabled_disabled_disabled),us", 162 EXPECT_STREQ("ab-c_12+chromeos(disabled_disabled_disabled),us",
159 xkey_.CreateFullXkbLayoutName( 163 xkey_->CreateFullXkbLayoutName(
160 "ab-c_12", 164 "ab-c_12",
161 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 165 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
162 166
163 // CreateFullXkbLayoutName should not accept upper-case ascii characters. 167 // CreateFullXkbLayoutName should not accept upper-case ascii characters.
164 EXPECT_STREQ("", xkey_.CreateFullXkbLayoutName( 168 EXPECT_STREQ("", xkey_->CreateFullXkbLayoutName(
165 "US", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 169 "US", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
166 170
167 // CreateFullXkbLayoutName should accept lower-case ascii characters. 171 // CreateFullXkbLayoutName should accept lower-case ascii characters.
168 for (int c = 'a'; c <= 'z'; ++c) { 172 for (int c = 'a'; c <= 'z'; ++c) {
169 EXPECT_STRNE("", xkey_.CreateFullXkbLayoutName( 173 EXPECT_STRNE("", xkey_->CreateFullXkbLayoutName(
170 std::string(3, c), 174 std::string(3, c),
171 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 175 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
172 } 176 }
173 177
174 // CreateFullXkbLayoutName should accept numbers. 178 // CreateFullXkbLayoutName should accept numbers.
175 for (int c = '0'; c <= '9'; ++c) { 179 for (int c = '0'; c <= '9'; ++c) {
176 EXPECT_STRNE("", xkey_.CreateFullXkbLayoutName( 180 EXPECT_STRNE("", xkey_->CreateFullXkbLayoutName(
177 std::string(3, c), 181 std::string(3, c),
178 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 182 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
179 } 183 }
180 184
181 // CreateFullXkbLayoutName should accept a layout with a variant name. 185 // CreateFullXkbLayoutName should accept a layout with a variant name.
182 EXPECT_STREQ("us(dvorak)+chromeos(disabled_disabled_disabled)", 186 EXPECT_STREQ("us(dvorak)+chromeos(disabled_disabled_disabled)",
183 xkey_.CreateFullXkbLayoutName( 187 xkey_->CreateFullXkbLayoutName(
184 "us(dvorak)", 188 "us(dvorak)",
185 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 189 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
186 EXPECT_STREQ("jp+chromeos(disabled_disabled_disabled),us", 190 EXPECT_STREQ("jp+chromeos(disabled_disabled_disabled),us",
187 xkey_.CreateFullXkbLayoutName( 191 xkey_->CreateFullXkbLayoutName(
188 "jp", // does not use AltGr, therefore no _keepralt. 192 "jp", // does not use AltGr, therefore no _keepralt.
189 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 193 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
190 194
191 // When the layout name is not "us", the second layout should be added. 195 // When the layout name is not "us", the second layout should be added.
192 EXPECT_EQ(std::string::npos, xkey_.CreateFullXkbLayoutName( 196 EXPECT_EQ(std::string::npos, xkey_->CreateFullXkbLayoutName(
193 "us", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us")); 197 "us", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
194 EXPECT_EQ(std::string::npos, xkey_.CreateFullXkbLayoutName( 198 EXPECT_EQ(std::string::npos, xkey_->CreateFullXkbLayoutName(
195 "us(dvorak)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us")); 199 "us(dvorak)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
196 EXPECT_NE(std::string::npos, xkey_.CreateFullXkbLayoutName( 200 EXPECT_NE(std::string::npos, xkey_->CreateFullXkbLayoutName(
197 "gb(extd)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us")); 201 "gb(extd)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
198 EXPECT_NE(std::string::npos, xkey_.CreateFullXkbLayoutName( 202 EXPECT_NE(std::string::npos, xkey_->CreateFullXkbLayoutName(
199 "jp", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us")); 203 "jp", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
200 } 204 }
201 205
202 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameKeepCapsLock) { 206 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameKeepCapsLock) {
203 EXPECT_STREQ("us(colemak)+chromeos(search_disabled_disabled)", 207 EXPECT_STREQ("us(colemak)+chromeos(search_disabled_disabled)",
204 xkey_.CreateFullXkbLayoutName( 208 xkey_->CreateFullXkbLayoutName(
205 "us(colemak)", 209 "us(colemak)",
206 // The 1st kVoidKey should be ignored. 210 // The 1st kVoidKey should be ignored.
207 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 211 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
208 EXPECT_STREQ("de(neo)+" 212 EXPECT_STREQ("de(neo)+"
209 "chromeos(search_leftcontrol_leftcontrol_keepralt),us", 213 "chromeos(search_leftcontrol_leftcontrol_keepralt),us",
210 xkey_.CreateFullXkbLayoutName( 214 xkey_->CreateFullXkbLayoutName(
211 // The 1st kLeftControlKey should be ignored. 215 // The 1st kLeftControlKey should be ignored.
212 "de(neo)", GetMap(kLeftControlKey, 216 "de(neo)", GetMap(kLeftControlKey,
213 kLeftControlKey, 217 kLeftControlKey,
214 kLeftControlKey)).c_str()); 218 kLeftControlKey)).c_str());
215 EXPECT_STREQ("gb(extd)+chromeos(disabled_disabled_disabled_keepralt),us", 219 EXPECT_STREQ("gb(extd)+chromeos(disabled_disabled_disabled_keepralt),us",
216 xkey_.CreateFullXkbLayoutName( 220 xkey_->CreateFullXkbLayoutName(
217 "gb(extd)", 221 "gb(extd)",
218 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 222 GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
219 } 223 }
220 224
221 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameKeepAlt) { 225 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameKeepAlt) {
222 EXPECT_STREQ("us(intl)+chromeos(disabled_disabled_disabled_keepralt)", 226 EXPECT_STREQ("us(intl)+chromeos(disabled_disabled_disabled_keepralt)",
223 xkey_.CreateFullXkbLayoutName( 227 xkey_->CreateFullXkbLayoutName(
224 "us(intl)", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str()); 228 "us(intl)", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
225 EXPECT_STREQ("kr(kr104)+" 229 EXPECT_STREQ("kr(kr104)+"
226 "chromeos(leftcontrol_leftcontrol_leftcontrol_keepralt),us", 230 "chromeos(leftcontrol_leftcontrol_leftcontrol_keepralt),us",
227 xkey_.CreateFullXkbLayoutName( 231 xkey_->CreateFullXkbLayoutName(
228 "kr(kr104)", GetMap(kLeftControlKey, 232 "kr(kr104)", GetMap(kLeftControlKey,
229 kLeftControlKey, 233 kLeftControlKey,
230 kLeftControlKey)).c_str()); 234 kLeftControlKey)).c_str());
231 } 235 }
232 236
233 // Tests if CreateFullXkbLayoutName and ExtractLayoutNameFromFullXkbLayoutName 237 // Tests if CreateFullXkbLayoutName and ExtractLayoutNameFromFullXkbLayoutName
234 // functions could handle all combinations of modifier remapping. 238 // functions could handle all combinations of modifier remapping.
235 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameModifierKeys) { 239 TEST_F(XKeyboardTest, TestCreateFullXkbLayoutNameModifierKeys) {
236 std::set<std::string> layouts; 240 std::set<std::string> layouts;
237 for (int i = 0; i < static_cast<int>(kNumModifierKeys); ++i) { 241 for (int i = 0; i < static_cast<int>(kNumModifierKeys); ++i) {
238 for (int j = 0; j < static_cast<int>(kNumModifierKeys); ++j) { 242 for (int j = 0; j < static_cast<int>(kNumModifierKeys); ++j) {
239 for (int k = 0; k < static_cast<int>(kNumModifierKeys); ++k) { 243 for (int k = 0; k < static_cast<int>(kNumModifierKeys); ++k) {
240 const std::string layout = xkey_.CreateFullXkbLayoutName( 244 const std::string layout = xkey_->CreateFullXkbLayoutName(
241 "us", GetMap(ModifierKey(i), ModifierKey(j), ModifierKey(k))); 245 "us", GetMap(ModifierKey(i), ModifierKey(j), ModifierKey(k)));
242 // CreateFullXkbLayoutName should succeed (i.e. should not return "".) 246 // CreateFullXkbLayoutName should succeed (i.e. should not return "".)
243 EXPECT_STREQ("us+", layout.substr(0, 3).c_str()) 247 EXPECT_STREQ("us+", layout.substr(0, 3).c_str())
244 << "layout: " << layout; 248 << "layout: " << layout;
245 // All 4*3*3 layouts should be different. 249 // All 4*3*3 layouts should be different.
246 EXPECT_TRUE(layouts.insert(layout).second) << "layout: " << layout; 250 EXPECT_TRUE(layouts.insert(layout).second) << "layout: " << layout;
247 } 251 }
248 } 252 }
249 } 253 }
250 } 254 }
251 255
252 TEST_F(XKeyboardTest, TestSetCapsLockIsEnabled) { 256 TEST_F(XKeyboardTest, TestSetCapsLockEnabled) {
253 if (!DisplayAvailable()) { 257 if (!DisplayAvailable()) {
254 return; 258 return;
255 } 259 }
256 const bool initial_lock_state = XKeyboard::CapsLockIsEnabled(); 260 const bool initial_lock_state = xkey_->CapsLockIsEnabled();
257 XKeyboard::SetCapsLockEnabled(true); 261 xkey_->SetCapsLockEnabled(true);
258 EXPECT_TRUE(XKeyboard::CapsLockIsEnabled()); 262 EXPECT_TRUE(TestableXKeyboard::CapsLockIsEnabled());
259 XKeyboard::SetCapsLockEnabled(false); 263 xkey_->SetCapsLockEnabled(false);
260 EXPECT_FALSE(XKeyboard::CapsLockIsEnabled()); 264 EXPECT_FALSE(TestableXKeyboard::CapsLockIsEnabled());
261 XKeyboard::SetCapsLockEnabled(true); 265 xkey_->SetCapsLockEnabled(true);
262 EXPECT_TRUE(XKeyboard::CapsLockIsEnabled()); 266 EXPECT_TRUE(TestableXKeyboard::CapsLockIsEnabled());
263 XKeyboard::SetCapsLockEnabled(false); 267 xkey_->SetCapsLockEnabled(false);
264 EXPECT_FALSE(XKeyboard::CapsLockIsEnabled()); 268 EXPECT_FALSE(TestableXKeyboard::CapsLockIsEnabled());
265 XKeyboard::SetCapsLockEnabled(initial_lock_state); 269 xkey_->SetCapsLockEnabled(initial_lock_state);
270 }
271
272 TEST_F(XKeyboardTest, TestSetNumLockEnabled) {
273 if (!DisplayAvailable()) {
274 return;
275 }
276 const unsigned int num_lock_mask = TestableXKeyboard::GetNumLockMask();
277 ASSERT_NE(0U, num_lock_mask);
278
279 const bool initial_lock_state = xkey_->NumLockIsEnabled(num_lock_mask);
280 xkey_->SetNumLockEnabled(true);
281 EXPECT_TRUE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
282 xkey_->SetNumLockEnabled(false);
283 EXPECT_FALSE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
284 xkey_->SetNumLockEnabled(true);
285 EXPECT_TRUE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
286 xkey_->SetNumLockEnabled(false);
287 EXPECT_FALSE(TestableXKeyboard::NumLockIsEnabled(num_lock_mask));
288 xkey_->SetNumLockEnabled(initial_lock_state);
266 } 289 }
267 290
268 TEST_F(XKeyboardTest, TestContainsModifierKeyAsReplacement) { 291 TEST_F(XKeyboardTest, TestContainsModifierKeyAsReplacement) {
269 EXPECT_FALSE(TestableXKeyboard::ContainsModifierKeyAsReplacement( 292 EXPECT_FALSE(TestableXKeyboard::ContainsModifierKeyAsReplacement(
270 GetMap(kVoidKey, kVoidKey, kVoidKey), kCapsLockKey)); 293 GetMap(kVoidKey, kVoidKey, kVoidKey), kCapsLockKey));
271 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement( 294 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement(
272 GetMap(kCapsLockKey, kVoidKey, kVoidKey), kCapsLockKey)); 295 GetMap(kCapsLockKey, kVoidKey, kVoidKey), kCapsLockKey));
273 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement( 296 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement(
274 GetMap(kVoidKey, kCapsLockKey, kVoidKey), kCapsLockKey)); 297 GetMap(kVoidKey, kCapsLockKey, kVoidKey), kCapsLockKey));
275 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement( 298 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement(
276 GetMap(kVoidKey, kVoidKey, kCapsLockKey), kCapsLockKey)); 299 GetMap(kVoidKey, kVoidKey, kCapsLockKey), kCapsLockKey));
277 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement( 300 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement(
278 GetMap(kCapsLockKey, kCapsLockKey, kVoidKey), kCapsLockKey)); 301 GetMap(kCapsLockKey, kCapsLockKey, kVoidKey), kCapsLockKey));
279 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement( 302 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement(
280 GetMap(kCapsLockKey, kCapsLockKey, kCapsLockKey), kCapsLockKey)); 303 GetMap(kCapsLockKey, kCapsLockKey, kCapsLockKey), kCapsLockKey));
281 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement( 304 EXPECT_TRUE(TestableXKeyboard::ContainsModifierKeyAsReplacement(
282 GetMap(kSearchKey, kVoidKey, kVoidKey), kSearchKey)); 305 GetMap(kSearchKey, kVoidKey, kVoidKey), kSearchKey));
283 } 306 }
284 307
285 } // namespace input_method 308 } // namespace input_method
286 } // namespace chromeos 309 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698