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

Side by Side Diff: ui/base/ime/chromeos/character_composer_unittest.cc

Issue 1560293002: Rename KEY_ constants to avoid conflict with <linux/input.h> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments (Wez) Created 4 years, 11 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 unified diff | Download patch
« no previous file with comments | « remoting/test/app_remoting_latency_test_fixture.cc ('k') | ui/events/event.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ui/base/ime/chromeos/character_composer.h" 5 #include "ui/base/ime/chromeos/character_composer.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 } 100 }
101 101
102 CharacterComposer character_composer_; 102 CharacterComposer character_composer_;
103 }; 103 };
104 104
105 TEST_F(CharacterComposerTest, InitialState) { 105 TEST_F(CharacterComposerTest, InitialState) {
106 EXPECT_TRUE(character_composer_.composed_character().empty()); 106 EXPECT_TRUE(character_composer_.composed_character().empty());
107 } 107 }
108 108
109 TEST_F(CharacterComposerTest, NormalKeyIsNotFiltered) { 109 TEST_F(CharacterComposerTest, NormalKeyIsNotFiltered) {
110 ExpectUnicodeKeyNotFiltered(VKEY_B, DomCode::KEY_B, EF_NONE, 'B'); 110 ExpectUnicodeKeyNotFiltered(VKEY_B, DomCode::US_B, EF_NONE, 'B');
111 ExpectUnicodeKeyNotFiltered(VKEY_Z, DomCode::KEY_Z, EF_NONE, 'Z'); 111 ExpectUnicodeKeyNotFiltered(VKEY_Z, DomCode::US_Z, EF_NONE, 'Z');
112 ExpectUnicodeKeyNotFiltered(VKEY_C, DomCode::KEY_C, EF_NONE, 'c'); 112 ExpectUnicodeKeyNotFiltered(VKEY_C, DomCode::US_C, EF_NONE, 'c');
113 ExpectUnicodeKeyNotFiltered(VKEY_M, DomCode::KEY_M, EF_NONE, 'm'); 113 ExpectUnicodeKeyNotFiltered(VKEY_M, DomCode::US_M, EF_NONE, 'm');
114 ExpectUnicodeKeyNotFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0'); 114 ExpectUnicodeKeyNotFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0');
115 ExpectUnicodeKeyNotFiltered(VKEY_1, DomCode::DIGIT1, EF_NONE, '1'); 115 ExpectUnicodeKeyNotFiltered(VKEY_1, DomCode::DIGIT1, EF_NONE, '1');
116 ExpectUnicodeKeyNotFiltered(VKEY_8, DomCode::DIGIT8, EF_NONE, '8'); 116 ExpectUnicodeKeyNotFiltered(VKEY_8, DomCode::DIGIT8, EF_NONE, '8');
117 } 117 }
118 118
119 TEST_F(CharacterComposerTest, PartiallyMatchingSequence) { 119 TEST_F(CharacterComposerTest, PartiallyMatchingSequence) {
120 // Composition with sequence ['dead acute', '1'] will fail. 120 // Composition with sequence ['dead acute', '1'] will fail.
121 ExpectDeadKeyFiltered(kCombiningAcute); 121 ExpectDeadKeyFiltered(kCombiningAcute);
122 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1'); 122 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1');
123 123
124 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail. 124 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail.
125 ExpectDeadKeyFiltered(kCombiningAcute); 125 ExpectDeadKeyFiltered(kCombiningAcute);
126 ExpectDeadKeyFiltered(kCombiningCircumflex); 126 ExpectDeadKeyFiltered(kCombiningCircumflex);
127 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1'); 127 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1');
128 } 128 }
129 129
130 TEST_F(CharacterComposerTest, FullyMatchingSequences) { 130 TEST_F(CharacterComposerTest, FullyMatchingSequences) {
131 // LATIN SMALL LETTER A WITH ACUTE 131 // LATIN SMALL LETTER A WITH ACUTE
132 ExpectDeadKeyFiltered(kCombiningAcute); 132 ExpectDeadKeyFiltered(kCombiningAcute);
133 ExpectUnicodeKeyComposed(VKEY_A, DomCode::KEY_A, EF_NONE, 'a', 133 ExpectUnicodeKeyComposed(VKEY_A, DomCode::US_A, EF_NONE, 'a',
134 base::string16(1, 0x00E1)); 134 base::string16(1, 0x00E1));
135 // LATIN CAPITAL LETTER A WITH ACUTE 135 // LATIN CAPITAL LETTER A WITH ACUTE
136 ExpectDeadKeyFiltered(kCombiningAcute); 136 ExpectDeadKeyFiltered(kCombiningAcute);
137 ExpectUnicodeKeyComposed(VKEY_A, DomCode::KEY_A, EF_NONE, 'A', 137 ExpectUnicodeKeyComposed(VKEY_A, DomCode::US_A, EF_NONE, 'A',
138 base::string16(1, 0x00C1)); 138 base::string16(1, 0x00C1));
139 // GRAVE ACCENT 139 // GRAVE ACCENT
140 ExpectDeadKeyFiltered(kCombiningGrave); 140 ExpectDeadKeyFiltered(kCombiningGrave);
141 ExpectDeadKeyComposed(kCombiningGrave, base::string16(1, 0x0060)); 141 ExpectDeadKeyComposed(kCombiningGrave, base::string16(1, 0x0060));
142 // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 142 // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
143 ExpectDeadKeyFiltered(kCombiningAcute); 143 ExpectDeadKeyFiltered(kCombiningAcute);
144 ExpectDeadKeyFiltered(kCombiningCircumflex); 144 ExpectDeadKeyFiltered(kCombiningCircumflex);
145 ExpectUnicodeKeyComposed(VKEY_A, DomCode::KEY_A, EF_NONE, 'a', 145 ExpectUnicodeKeyComposed(VKEY_A, DomCode::US_A, EF_NONE, 'a',
146 base::string16(1, 0x1EA5)); 146 base::string16(1, 0x1EA5));
147 // LATIN CAPITAL LETTER U WITH HORN AND GRAVE 147 // LATIN CAPITAL LETTER U WITH HORN AND GRAVE
148 ExpectDeadKeyFiltered(kCombiningGrave); 148 ExpectDeadKeyFiltered(kCombiningGrave);
149 ExpectDeadKeyFiltered(kCombiningHorn); 149 ExpectDeadKeyFiltered(kCombiningHorn);
150 ExpectUnicodeKeyComposed(VKEY_U, DomCode::KEY_U, EF_NONE, 'U', 150 ExpectUnicodeKeyComposed(VKEY_U, DomCode::US_U, EF_NONE, 'U',
151 base::string16(1, 0x1EEA)); 151 base::string16(1, 0x1EEA));
152 // LATIN CAPITAL LETTER C WITH CEDILLA 152 // LATIN CAPITAL LETTER C WITH CEDILLA
153 ExpectDeadKeyFiltered(kCombiningAcute); 153 ExpectDeadKeyFiltered(kCombiningAcute);
154 ExpectUnicodeKeyComposed(VKEY_C, DomCode::KEY_C, EF_NONE, 'C', 154 ExpectUnicodeKeyComposed(VKEY_C, DomCode::US_C, EF_NONE, 'C',
155 base::string16(1, 0x00C7)); 155 base::string16(1, 0x00C7));
156 // LATIN SMALL LETTER C WITH CEDILLA 156 // LATIN SMALL LETTER C WITH CEDILLA
157 ExpectDeadKeyFiltered(kCombiningAcute); 157 ExpectDeadKeyFiltered(kCombiningAcute);
158 ExpectUnicodeKeyComposed(VKEY_C, DomCode::KEY_C, EF_NONE, 'c', 158 ExpectUnicodeKeyComposed(VKEY_C, DomCode::US_C, EF_NONE, 'c',
159 base::string16(1, 0x00E7)); 159 base::string16(1, 0x00E7));
160 // GREEK SMALL LETTER EPSILON WITH TONOS 160 // GREEK SMALL LETTER EPSILON WITH TONOS
161 ExpectDeadKeyFiltered(kCombiningAcute); 161 ExpectDeadKeyFiltered(kCombiningAcute);
162 ExpectUnicodeKeyComposed(VKEY_E, DomCode::KEY_E, EF_NONE, 0x03B5, 162 ExpectUnicodeKeyComposed(VKEY_E, DomCode::US_E, EF_NONE, 0x03B5,
163 base::string16(1, 0x03AD)); 163 base::string16(1, 0x03AD));
164 } 164 }
165 165
166 TEST_F(CharacterComposerTest, FullyMatchingSequencesAfterMatchingFailure) { 166 TEST_F(CharacterComposerTest, FullyMatchingSequencesAfterMatchingFailure) {
167 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail. 167 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail.
168 ExpectDeadKeyFiltered(kCombiningAcute); 168 ExpectDeadKeyFiltered(kCombiningAcute);
169 ExpectDeadKeyFiltered(kCombiningCircumflex); 169 ExpectDeadKeyFiltered(kCombiningCircumflex);
170 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1'); 170 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1');
171 // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 171 // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
172 ExpectDeadKeyFiltered(kCombiningAcute); 172 ExpectDeadKeyFiltered(kCombiningAcute);
173 ExpectDeadKeyFiltered(kCombiningCircumflex); 173 ExpectDeadKeyFiltered(kCombiningCircumflex);
174 ExpectUnicodeKeyComposed(VKEY_A, DomCode::KEY_A, EF_NONE, 'a', 174 ExpectUnicodeKeyComposed(VKEY_A, DomCode::US_A, EF_NONE, 'a',
175 base::string16(1, 0x1EA5)); 175 base::string16(1, 0x1EA5));
176 } 176 }
177 177
178 TEST_F(CharacterComposerTest, ComposedCharacterIsClearedAfterReset) { 178 TEST_F(CharacterComposerTest, ComposedCharacterIsClearedAfterReset) {
179 ExpectDeadKeyFiltered(kCombiningAcute); 179 ExpectDeadKeyFiltered(kCombiningAcute);
180 ExpectUnicodeKeyComposed(VKEY_A, DomCode::KEY_A, EF_NONE, 'a', 180 ExpectUnicodeKeyComposed(VKEY_A, DomCode::US_A, EF_NONE, 'a',
181 base::string16(1, 0x00E1)); 181 base::string16(1, 0x00E1));
182 character_composer_.Reset(); 182 character_composer_.Reset();
183 EXPECT_TRUE(character_composer_.composed_character().empty()); 183 EXPECT_TRUE(character_composer_.composed_character().empty());
184 } 184 }
185 185
186 TEST_F(CharacterComposerTest, CompositionStateIsClearedAfterReset) { 186 TEST_F(CharacterComposerTest, CompositionStateIsClearedAfterReset) {
187 // Even though sequence ['dead acute', 'a'] will compose 'a with acute', 187 // Even though sequence ['dead acute', 'a'] will compose 'a with acute',
188 // no character is composed here because of reset. 188 // no character is composed here because of reset.
189 ExpectDeadKeyFiltered(kCombiningAcute); 189 ExpectDeadKeyFiltered(kCombiningAcute);
190 character_composer_.Reset(); 190 character_composer_.Reset();
191 ExpectUnicodeKeyNotFiltered(VKEY_A, DomCode::KEY_A, EF_NONE, 'a'); 191 ExpectUnicodeKeyNotFiltered(VKEY_A, DomCode::US_A, EF_NONE, 'a');
192 } 192 }
193 193
194 TEST_F(CharacterComposerTest, KeySequenceCompositionPreedit) { 194 TEST_F(CharacterComposerTest, KeySequenceCompositionPreedit) {
195 // LATIN SMALL LETTER A WITH ACUTE 195 // LATIN SMALL LETTER A WITH ACUTE
196 // preedit_string() is always empty in key sequence composition mode. 196 // preedit_string() is always empty in key sequence composition mode.
197 ExpectDeadKeyFiltered(kCombiningAcute); 197 ExpectDeadKeyFiltered(kCombiningAcute);
198 EXPECT_TRUE(character_composer_.preedit_string().empty()); 198 EXPECT_TRUE(character_composer_.preedit_string().empty());
199 ExpectUnicodeKeyComposed(VKEY_A, DomCode::KEY_A, EF_NONE, 'a', 199 ExpectUnicodeKeyComposed(VKEY_A, DomCode::US_A, EF_NONE, 'a',
200 base::string16(1, 0x00E1)); 200 base::string16(1, 0x00E1));
201 EXPECT_TRUE(character_composer_.preedit_string().empty()); 201 EXPECT_TRUE(character_composer_.preedit_string().empty());
202 } 202 }
203 203
204 // Verify the structure of the primary |TreeComposeChecker| table. 204 // Verify the structure of the primary |TreeComposeChecker| table.
205 TEST_F(CharacterComposerTest, MainTableIsCorrectlyOrdered) { 205 TEST_F(CharacterComposerTest, MainTableIsCorrectlyOrdered) {
206 // This file is included here intentionally, instead of the top of the file, 206 // This file is included here intentionally, instead of the top of the file,
207 // because including this file at the top of the file will define a 207 // because including this file at the top of the file will define a
208 // global constant and contaminate the global namespace. 208 // global constant and contaminate the global namespace.
209 #include "ui/base/ime/chromeos/character_composer_data.h" 209 #include "ui/base/ime/chromeos/character_composer_data.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 EXPECT_LT(previous_key, key) << index; 259 EXPECT_LT(previous_key, key) << index;
260 previous_key = key; 260 previous_key = key;
261 index += 2; 261 index += 2;
262 } 262 }
263 } 263 }
264 } 264 }
265 } 265 }
266 266
267 TEST_F(CharacterComposerTest, HexadecimalComposition) { 267 TEST_F(CharacterComposerTest, HexadecimalComposition) {
268 // HIRAGANA LETTER A (U+3042) 268 // HIRAGANA LETTER A (U+3042)
269 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 269 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
270 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U'); 270 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U');
271 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 271 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
272 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0'); 272 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0');
273 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4'); 273 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4');
274 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2'); 274 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2');
275 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ', 275 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ',
276 base::string16(1, 0x3042)); 276 base::string16(1, 0x3042));
277 // MUSICAL KEYBOARD (U+1F3B9) 277 // MUSICAL KEYBOARD (U+1F3B9)
278 const base::char16 kMusicalKeyboard[] = {0xd83c, 0xdfb9}; 278 const base::char16 kMusicalKeyboard[] = {0xd83c, 0xdfb9};
279 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 279 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
280 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U'); 280 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U');
281 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, EF_NONE, '1'); 281 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, EF_NONE, '1');
282 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::KEY_F, EF_NONE, 'f'); 282 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::US_F, EF_NONE, 'f');
283 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 283 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
284 ExpectUnicodeKeyFiltered(VKEY_B, DomCode::KEY_B, EF_NONE, 'b'); 284 ExpectUnicodeKeyFiltered(VKEY_B, DomCode::US_B, EF_NONE, 'b');
285 ExpectUnicodeKeyFiltered(VKEY_9, DomCode::DIGIT9, EF_NONE, '9'); 285 ExpectUnicodeKeyFiltered(VKEY_9, DomCode::DIGIT9, EF_NONE, '9');
286 ExpectUnicodeKeyComposed( 286 ExpectUnicodeKeyComposed(
287 VKEY_RETURN, DomCode::ENTER, EF_NONE, '\r', 287 VKEY_RETURN, DomCode::ENTER, EF_NONE, '\r',
288 base::string16(kMusicalKeyboard, 288 base::string16(kMusicalKeyboard,
289 kMusicalKeyboard + arraysize(kMusicalKeyboard))); 289 kMusicalKeyboard + arraysize(kMusicalKeyboard)));
290 } 290 }
291 291
292 TEST_F(CharacterComposerTest, HexadecimalCompositionPreedit) { 292 TEST_F(CharacterComposerTest, HexadecimalCompositionPreedit) {
293 // HIRAGANA LETTER A (U+3042) 293 // HIRAGANA LETTER A (U+3042)
294 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 294 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
295 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U'); 295 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U');
296 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string()); 296 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string());
297 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3'); 297 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3');
298 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string()); 298 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string());
299 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0'); 299 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0');
300 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string()); 300 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string());
301 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, 0, '4'); 301 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, 0, '4');
302 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string()); 302 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string());
303 ExpectUnicodeKeyFiltered(VKEY_A, DomCode::KEY_A, 0, 'a'); 303 ExpectUnicodeKeyFiltered(VKEY_A, DomCode::US_A, 0, 'a');
304 EXPECT_EQ(ASCIIToUTF16("u304a"), character_composer_.preedit_string()); 304 EXPECT_EQ(ASCIIToUTF16("u304a"), character_composer_.preedit_string());
305 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b'); 305 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b');
306 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string()); 306 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string());
307 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2'); 307 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2');
308 ExpectUnicodeKeyComposed(VKEY_RETURN, DomCode::ENTER, EF_NONE, 308 ExpectUnicodeKeyComposed(VKEY_RETURN, DomCode::ENTER, EF_NONE,
309 '\r', 309 '\r',
310 base::string16(1, 0x3042)); 310 base::string16(1, 0x3042));
311 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string()); 311 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string());
312 312
313 // Sequence with an ignored character ('x') and Escape. 313 // Sequence with an ignored character ('x') and Escape.
314 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 314 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
315 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U'); 315 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 'U');
316 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string()); 316 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string());
317 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3'); 317 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3');
318 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string()); 318 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string());
319 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0'); 319 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0');
320 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string()); 320 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string());
321 ExpectUnicodeKeyFiltered(VKEY_X, DomCode::KEY_X, 0, 'x'); 321 ExpectUnicodeKeyFiltered(VKEY_X, DomCode::US_X, 0, 'x');
322 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string()); 322 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string());
323 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, 0, '4'); 323 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, 0, '4');
324 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string()); 324 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string());
325 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, 0, '2'); 325 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, 0, '2');
326 EXPECT_EQ(ASCIIToUTF16("u3042"), character_composer_.preedit_string()); 326 EXPECT_EQ(ASCIIToUTF16("u3042"), character_composer_.preedit_string());
327 ExpectUnicodeKeyFiltered(VKEY_ESCAPE, DomCode::ESCAPE, EF_NONE, 0x1B); 327 ExpectUnicodeKeyFiltered(VKEY_ESCAPE, DomCode::ESCAPE, EF_NONE, 0x1B);
328 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string()); 328 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string());
329 } 329 }
330 330
331 TEST_F(CharacterComposerTest, HexadecimalCompositionWithNonHexKey) { 331 TEST_F(CharacterComposerTest, HexadecimalCompositionWithNonHexKey) {
332 // Sequence [Ctrl+Shift+U, x, space] does not compose a character. 332 // Sequence [Ctrl+Shift+U, x, space] does not compose a character.
333 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 333 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
334 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 334 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
335 ExpectUnicodeKeyFiltered(VKEY_X, DomCode::KEY_X, 0, 'x'); 335 ExpectUnicodeKeyFiltered(VKEY_X, DomCode::US_X, 0, 'x');
336 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' '); 336 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ');
337 EXPECT_TRUE(character_composer_.composed_character().empty()); 337 EXPECT_TRUE(character_composer_.composed_character().empty());
338 338
339 // HIRAGANA LETTER A (U+3042) with a sequence [3, 0, x, 4, 2]. 339 // HIRAGANA LETTER A (U+3042) with a sequence [3, 0, x, 4, 2].
340 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 340 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
341 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 341 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
342 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 342 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
343 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0'); 343 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0');
344 ExpectUnicodeKeyFiltered(VKEY_X, DomCode::KEY_X, EF_NONE, 'x'); 344 ExpectUnicodeKeyFiltered(VKEY_X, DomCode::US_X, EF_NONE, 'x');
345 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4'); 345 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4');
346 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2'); 346 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2');
347 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ', 347 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ',
348 base::string16(1, 0x3042)); 348 base::string16(1, 0x3042));
349 } 349 }
350 350
351 TEST_F(CharacterComposerTest, HexadecimalCompositionWithAdditionalModifiers) { 351 TEST_F(CharacterComposerTest, HexadecimalCompositionWithAdditionalModifiers) {
352 // Ctrl+Shift+Alt+U 352 // Ctrl+Shift+Alt+U
353 // HIRAGANA LETTER A (U+3042) 353 // HIRAGANA LETTER A (U+3042)
354 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 354 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
355 EF_SHIFT_DOWN | EF_CONTROL_DOWN | EF_ALT_DOWN, 0x15); 355 EF_SHIFT_DOWN | EF_CONTROL_DOWN | EF_ALT_DOWN, 0x15);
356 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 356 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
357 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0'); 357 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0');
358 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4'); 358 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4');
359 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2'); 359 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2');
360 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ', 360 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ',
361 base::string16(1, 0x3042)); 361 base::string16(1, 0x3042));
362 362
363 // Ctrl+Shift+u (CapsLock enabled) 363 // Ctrl+Shift+u (CapsLock enabled)
364 ExpectUnicodeKeyNotFiltered( 364 ExpectUnicodeKeyNotFiltered(
365 VKEY_U, DomCode::KEY_U, 365 VKEY_U, DomCode::US_U,
366 EF_SHIFT_DOWN | EF_CONTROL_DOWN | EF_CAPS_LOCK_DOWN, 'u'); 366 EF_SHIFT_DOWN | EF_CONTROL_DOWN | EF_CAPS_LOCK_DOWN, 'u');
367 } 367 }
368 368
369 TEST_F(CharacterComposerTest, CancelHexadecimalComposition) { 369 TEST_F(CharacterComposerTest, CancelHexadecimalComposition) {
370 // Cancel composition with ESC. 370 // Cancel composition with ESC.
371 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 371 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
372 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 372 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
373 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1'); 373 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1');
374 ExpectUnicodeKeyFiltered(VKEY_ESCAPE, DomCode::ESCAPE, EF_NONE, 0x1B); 374 ExpectUnicodeKeyFiltered(VKEY_ESCAPE, DomCode::ESCAPE, EF_NONE, 0x1B);
375 375
376 // Now we can start composition again since the last composition was 376 // Now we can start composition again since the last composition was
377 // cancelled. 377 // cancelled.
378 // HIRAGANA LETTER A (U+3042) 378 // HIRAGANA LETTER A (U+3042)
379 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 379 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
380 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 380 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
381 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 381 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
382 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0'); 382 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0');
383 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4'); 383 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4');
384 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2'); 384 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2');
385 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ', 385 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ',
386 base::string16(1, 0x3042)); 386 base::string16(1, 0x3042));
387 } 387 }
388 388
389 TEST_F(CharacterComposerTest, HexadecimalCompositionWithBackspace) { 389 TEST_F(CharacterComposerTest, HexadecimalCompositionWithBackspace) {
390 // HIRAGANA LETTER A (U+3042) 390 // HIRAGANA LETTER A (U+3042)
391 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 391 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
392 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 392 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
393 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3'); 393 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3');
394 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0'); 394 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0');
395 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::KEY_F, 0, 'f'); 395 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::US_F, 0, 'f');
396 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b'); 396 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b');
397 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4'); 397 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4');
398 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2'); 398 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2');
399 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ', 399 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ',
400 base::string16(1, 0x3042)); 400 base::string16(1, 0x3042));
401 } 401 }
402 402
403 TEST_F(CharacterComposerTest, CancelHexadecimalCompositionWithBackspace) { 403 TEST_F(CharacterComposerTest, CancelHexadecimalCompositionWithBackspace) {
404 // Backspace just after Ctrl+Shift+U. 404 // Backspace just after Ctrl+Shift+U.
405 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 405 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
406 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 406 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
407 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b'); 407 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b');
408 ExpectUnicodeKeyNotFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 408 ExpectUnicodeKeyNotFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
409 409
410 // Backspace twice after Ctrl+Shift+U and 3. 410 // Backspace twice after Ctrl+Shift+U and 3.
411 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 411 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
412 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 412 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
413 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3'); 413 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, 0, '3');
414 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b'); 414 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b');
415 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b'); 415 ExpectUnicodeKeyFiltered(VKEY_BACK, DomCode::BACKSPACE, EF_NONE, '\b');
416 ExpectUnicodeKeyNotFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 416 ExpectUnicodeKeyNotFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
417 } 417 }
418 418
419 TEST_F(CharacterComposerTest, 419 TEST_F(CharacterComposerTest,
420 HexadecimalCompositionPreeditWithModifierPressed) { 420 HexadecimalCompositionPreeditWithModifierPressed) {
421 // This test case supposes X Window System uses 101 keyboard layout. 421 // This test case supposes X Window System uses 101 keyboard layout.
422 const int kControlShift = EF_CONTROL_DOWN | EF_SHIFT_DOWN; 422 const int kControlShift = EF_CONTROL_DOWN | EF_SHIFT_DOWN;
423 // HIRAGANA LETTER A (U+3042) 423 // HIRAGANA LETTER A (U+3042)
424 ExpectUnicodeKeyFiltered(ui::VKEY_U, DomCode::KEY_U, kControlShift, 0x15); 424 ExpectUnicodeKeyFiltered(ui::VKEY_U, DomCode::US_U, kControlShift, 0x15);
425 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string()); 425 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string());
426 ExpectUnicodeKeyFiltered(ui::VKEY_3, DomCode::DIGIT3, kControlShift, '#'); 426 ExpectUnicodeKeyFiltered(ui::VKEY_3, DomCode::DIGIT3, kControlShift, '#');
427 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string()); 427 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string());
428 ExpectUnicodeKeyFiltered(ui::VKEY_0, DomCode::DIGIT0, kControlShift, ')'); 428 ExpectUnicodeKeyFiltered(ui::VKEY_0, DomCode::DIGIT0, kControlShift, ')');
429 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string()); 429 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string());
430 ExpectUnicodeKeyFiltered(ui::VKEY_4, DomCode::DIGIT4, kControlShift, '$'); 430 ExpectUnicodeKeyFiltered(ui::VKEY_4, DomCode::DIGIT4, kControlShift, '$');
431 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string()); 431 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string());
432 ExpectUnicodeKeyFiltered(ui::VKEY_A, DomCode::KEY_A, kControlShift, 0x01); 432 ExpectUnicodeKeyFiltered(ui::VKEY_A, DomCode::US_A, kControlShift, 0x01);
433 EXPECT_EQ(ASCIIToUTF16("u304a"), character_composer_.preedit_string()); 433 EXPECT_EQ(ASCIIToUTF16("u304a"), character_composer_.preedit_string());
434 ExpectUnicodeKeyFiltered(ui::VKEY_BACK, DomCode::BACKSPACE, kControlShift, 434 ExpectUnicodeKeyFiltered(ui::VKEY_BACK, DomCode::BACKSPACE, kControlShift,
435 '\b'); 435 '\b');
436 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string()); 436 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string());
437 ExpectUnicodeKeyFiltered(ui::VKEY_2, DomCode::DIGIT2, kControlShift, 0); 437 ExpectUnicodeKeyFiltered(ui::VKEY_2, DomCode::DIGIT2, kControlShift, 0);
438 EXPECT_EQ(ASCIIToUTF16("u3042"), character_composer_.preedit_string()); 438 EXPECT_EQ(ASCIIToUTF16("u3042"), character_composer_.preedit_string());
439 ExpectUnicodeKeyComposed(VKEY_RETURN, DomCode::ENTER, kControlShift, 439 ExpectUnicodeKeyComposed(VKEY_RETURN, DomCode::ENTER, kControlShift,
440 '\r', 440 '\r',
441 base::string16(1, 0x3042)); 441 base::string16(1, 0x3042));
442 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string()); 442 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string());
443 443
444 // Sequence with an ignored character (control + shift + 'x') and Escape. 444 // Sequence with an ignored character (control + shift + 'x') and Escape.
445 ExpectUnicodeKeyFiltered(ui::VKEY_U, DomCode::KEY_U, kControlShift, 'U'); 445 ExpectUnicodeKeyFiltered(ui::VKEY_U, DomCode::US_U, kControlShift, 'U');
446 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string()); 446 EXPECT_EQ(ASCIIToUTF16("u"), character_composer_.preedit_string());
447 ExpectUnicodeKeyFiltered(ui::VKEY_3, DomCode::DIGIT3, kControlShift, '#'); 447 ExpectUnicodeKeyFiltered(ui::VKEY_3, DomCode::DIGIT3, kControlShift, '#');
448 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string()); 448 EXPECT_EQ(ASCIIToUTF16("u3"), character_composer_.preedit_string());
449 ExpectUnicodeKeyFiltered(ui::VKEY_0, DomCode::DIGIT0, kControlShift, ')'); 449 ExpectUnicodeKeyFiltered(ui::VKEY_0, DomCode::DIGIT0, kControlShift, ')');
450 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string()); 450 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string());
451 ExpectUnicodeKeyFiltered(ui::VKEY_X, DomCode::KEY_X, kControlShift, 'X'); 451 ExpectUnicodeKeyFiltered(ui::VKEY_X, DomCode::US_X, kControlShift, 'X');
452 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string()); 452 EXPECT_EQ(ASCIIToUTF16("u30"), character_composer_.preedit_string());
453 ExpectUnicodeKeyFiltered(ui::VKEY_4, DomCode::DIGIT4, kControlShift, '$'); 453 ExpectUnicodeKeyFiltered(ui::VKEY_4, DomCode::DIGIT4, kControlShift, '$');
454 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string()); 454 EXPECT_EQ(ASCIIToUTF16("u304"), character_composer_.preedit_string());
455 ExpectUnicodeKeyFiltered(ui::VKEY_2, DomCode::DIGIT2, kControlShift, 0); 455 ExpectUnicodeKeyFiltered(ui::VKEY_2, DomCode::DIGIT2, kControlShift, 0);
456 EXPECT_EQ(ASCIIToUTF16("u3042"), character_composer_.preedit_string()); 456 EXPECT_EQ(ASCIIToUTF16("u3042"), character_composer_.preedit_string());
457 ExpectUnicodeKeyFiltered(ui::VKEY_ESCAPE, DomCode::ESCAPE, kControlShift, 457 ExpectUnicodeKeyFiltered(ui::VKEY_ESCAPE, DomCode::ESCAPE, kControlShift,
458 0x1B); 458 0x1B);
459 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string()); 459 EXPECT_EQ(ASCIIToUTF16(""), character_composer_.preedit_string());
460 } 460 }
461 461
462 TEST_F(CharacterComposerTest, InvalidHexadecimalSequence) { 462 TEST_F(CharacterComposerTest, InvalidHexadecimalSequence) {
463 // U+FFFFFFFF 463 // U+FFFFFFFF
464 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 464 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
465 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 465 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
466 for (int i = 0; i < 8; ++i) 466 for (int i = 0; i < 8; ++i)
467 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::KEY_F, 0, 'f'); 467 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::US_F, 0, 'f');
468 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' '); 468 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ');
469 469
470 // U+0000 (Actually, this is a valid unicode character, but we don't 470 // U+0000 (Actually, this is a valid unicode character, but we don't
471 // compose a string with a character '\0') 471 // compose a string with a character '\0')
472 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 472 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
473 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 473 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
474 for (int i = 0; i < 4; ++i) 474 for (int i = 0; i < 4; ++i)
475 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0'); 475 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0');
476 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' '); 476 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ');
477 477
478 // U+10FFFF 478 // U+10FFFF
479 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 479 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
480 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 480 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
481 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1'); 481 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1');
482 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0'); 482 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0');
483 for (int i = 0; i < 4; ++i) 483 for (int i = 0; i < 4; ++i)
484 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::KEY_F, 0, 'f'); 484 ExpectUnicodeKeyFiltered(VKEY_F, DomCode::US_F, 0, 'f');
485 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' '); 485 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ');
486 486
487 // U+110000 487 // U+110000
488 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 488 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
489 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 489 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
490 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1'); 490 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1');
491 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1'); 491 ExpectUnicodeKeyFiltered(VKEY_1, DomCode::DIGIT1, 0, '1');
492 for (int i = 0; i < 4; ++i) 492 for (int i = 0; i < 4; ++i)
493 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0'); 493 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, 0, '0');
494 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' '); 494 ExpectUnicodeKeyFiltered(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ');
495 } 495 }
496 496
497 TEST_F(CharacterComposerTest, HexadecimalSequenceAndDeadKey) { 497 TEST_F(CharacterComposerTest, HexadecimalSequenceAndDeadKey) {
498 // LATIN SMALL LETTER A WITH ACUTE 498 // LATIN SMALL LETTER A WITH ACUTE
499 ExpectDeadKeyFiltered(kCombiningAcute); 499 ExpectDeadKeyFiltered(kCombiningAcute);
500 ExpectUnicodeKeyComposed(VKEY_A, DomCode::KEY_A, EF_NONE, 'a', 500 ExpectUnicodeKeyComposed(VKEY_A, DomCode::US_A, EF_NONE, 'a',
501 base::string16(1, 0x00E1)); 501 base::string16(1, 0x00E1));
502 // HIRAGANA LETTER A (U+3042) with dead_acute ignored. 502 // HIRAGANA LETTER A (U+3042) with dead_acute ignored.
503 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::KEY_U, 503 ExpectUnicodeKeyFiltered(VKEY_U, DomCode::US_U,
504 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15); 504 EF_SHIFT_DOWN | EF_CONTROL_DOWN, 0x15);
505 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3'); 505 ExpectUnicodeKeyFiltered(VKEY_3, DomCode::DIGIT3, EF_NONE, '3');
506 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0'); 506 ExpectUnicodeKeyFiltered(VKEY_0, DomCode::DIGIT0, EF_NONE, '0');
507 ExpectDeadKeyFiltered(kCombiningAcute); 507 ExpectDeadKeyFiltered(kCombiningAcute);
508 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4'); 508 ExpectUnicodeKeyFiltered(VKEY_4, DomCode::DIGIT4, EF_NONE, '4');
509 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2'); 509 ExpectUnicodeKeyFiltered(VKEY_2, DomCode::DIGIT2, EF_NONE, '2');
510 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ', 510 ExpectUnicodeKeyComposed(VKEY_SPACE, DomCode::SPACE, EF_NONE, ' ',
511 base::string16(1, 0x3042)); 511 base::string16(1, 0x3042));
512 } 512 }
513 513
514 } // namespace ui 514 } // namespace ui
OLDNEW
« no previous file with comments | « remoting/test/app_remoting_latency_test_fixture.cc ('k') | ui/events/event.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698