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

Side by Side Diff: views/ime/character_composer_unittest.cc

Issue 7264015: CL for readability review (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Style fixes Created 9 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « views/ime/character_composer.cc ('k') | views/ime/input_method_ibus.cc » ('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 (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 "views/ime/character_composer.h" 5 #include "views/ime/character_composer.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "third_party/gtk+/gdk/gdkkeysyms.h" 8 #include "third_party/gtk+/gdk/gdkkeysyms.h"
9 9
10 namespace views { 10 namespace views {
11 11
12 namespace { 12 namespace {
13 13
14 // Expects key is not filtered and no character is composed 14 // Expects key is not filtered and no character is composed.
15 void ExpectKeyNotFiltered(CharacterComposer* character_composer, uint key) { 15 void ExpectKeyNotFiltered(CharacterComposer* character_composer, uint key) {
16 EXPECT_FALSE(character_composer->FilterKeyPress(key)); 16 EXPECT_FALSE(character_composer->FilterKeyPress(key));
17 EXPECT_TRUE(character_composer->GetComposedCharacter().empty()); 17 EXPECT_TRUE(character_composer->composed_character().empty());
18 } 18 }
19 19
20 // Expects key is filtered and no character is composed 20 // Expects key is filtered and no character is composed.
21 void ExpectKeyFiltered(CharacterComposer* character_composer, uint key) { 21 void ExpectKeyFiltered(CharacterComposer* character_composer, uint key) {
22 EXPECT_TRUE(character_composer->FilterKeyPress(key)); 22 EXPECT_TRUE(character_composer->FilterKeyPress(key));
23 EXPECT_TRUE(character_composer->GetComposedCharacter().empty()); 23 EXPECT_TRUE(character_composer->composed_character().empty());
24 } 24 }
25 25
26 // Expects |expected_character| is composed after sequence [key1, key2] 26 // Expects |expected_character| is composed after sequence [key1, key2].
27 void ExpectCharacterComposed(CharacterComposer* character_composer, 27 void ExpectCharacterComposed(CharacterComposer* character_composer,
28 uint key1, 28 uint key1,
29 uint key2, 29 uint key2,
30 const string16& expected_character) { 30 const string16& expected_character) {
31 ExpectKeyFiltered(character_composer, key1); 31 ExpectKeyFiltered(character_composer, key1);
32 EXPECT_TRUE(character_composer->FilterKeyPress(key2)); 32 EXPECT_TRUE(character_composer->FilterKeyPress(key2));
33 EXPECT_EQ(character_composer->GetComposedCharacter(), expected_character); 33 EXPECT_EQ(character_composer->composed_character(), expected_character);
34 } 34 }
35 35
36 // Expects |expected_character| is composed after sequence [key1, key2, key3] 36 // Expects |expected_character| is composed after sequence [key1, key2, key3].
37 void ExpectCharacterComposed(CharacterComposer* character_composer, 37 void ExpectCharacterComposed(CharacterComposer* character_composer,
38 uint key1, 38 uint key1,
39 uint key2, 39 uint key2,
40 uint key3, 40 uint key3,
41 const string16& expected_character) { 41 const string16& expected_character) {
42 ExpectKeyFiltered(character_composer, key1); 42 ExpectKeyFiltered(character_composer, key1);
43 ExpectCharacterComposed(character_composer, key2, key3, expected_character); 43 ExpectCharacterComposed(character_composer, key2, key3, expected_character);
44 } 44 }
45 45
46 // Expects |expected_character| is composed after sequence [key1, key2, key3, 46 // Expects |expected_character| is composed after sequence [key1, key2, key3,
47 // key 4] 47 // key 4].
48 void ExpectCharacterComposed(CharacterComposer* character_composer, 48 void ExpectCharacterComposed(CharacterComposer* character_composer,
49 uint key1, 49 uint key1,
50 uint key2, 50 uint key2,
51 uint key3, 51 uint key3,
52 uint key4, 52 uint key4,
53 const string16& expected_character) { 53 const string16& expected_character) {
54 ExpectKeyFiltered(character_composer, key1); 54 ExpectKeyFiltered(character_composer, key1);
55 ExpectCharacterComposed(character_composer, key2, key3, key4, 55 ExpectCharacterComposed(character_composer, key2, key3, key4,
56 expected_character); 56 expected_character);
57 } 57 }
58 58
59 } // anonymous namespace 59 } // namespace
60 60
61 TEST(CharacterComposerTest, InitialState) { 61 TEST(CharacterComposerTest, InitialState) {
62 CharacterComposer character_composer; 62 CharacterComposer character_composer;
63 EXPECT_TRUE(character_composer.GetComposedCharacter().empty()); 63 EXPECT_TRUE(character_composer.composed_character().empty());
64 } 64 }
65 65
66 TEST(CharacterComposerTest, NormalKeyIsNotFiltered) { 66 TEST(CharacterComposerTest, NormalKeyIsNotFiltered) {
67 CharacterComposer character_composer; 67 CharacterComposer character_composer;
68 ExpectKeyNotFiltered(&character_composer, GDK_KEY_B); 68 ExpectKeyNotFiltered(&character_composer, GDK_KEY_B);
69 ExpectKeyNotFiltered(&character_composer, GDK_KEY_Z); 69 ExpectKeyNotFiltered(&character_composer, GDK_KEY_Z);
70 ExpectKeyNotFiltered(&character_composer, GDK_KEY_c); 70 ExpectKeyNotFiltered(&character_composer, GDK_KEY_c);
71 ExpectKeyNotFiltered(&character_composer, GDK_KEY_m); 71 ExpectKeyNotFiltered(&character_composer, GDK_KEY_m);
72 ExpectKeyNotFiltered(&character_composer, GDK_KEY_0); 72 ExpectKeyNotFiltered(&character_composer, GDK_KEY_0);
73 ExpectKeyNotFiltered(&character_composer, GDK_KEY_1); 73 ExpectKeyNotFiltered(&character_composer, GDK_KEY_1);
74 ExpectKeyNotFiltered(&character_composer, GDK_KEY_8); 74 ExpectKeyNotFiltered(&character_composer, GDK_KEY_8);
75 } 75 }
76 76
77 TEST(CharacterComposerTest, PartiallyMatchingSequence) { 77 TEST(CharacterComposerTest, PartiallyMatchingSequence) {
78 CharacterComposer character_composer; 78 CharacterComposer character_composer;
79 79
80 // Composition with sequence ['dead acute', '1'] will fail 80 // Composition with sequence ['dead acute', '1'] will fail.
81 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute); 81 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute);
82 EXPECT_TRUE(character_composer.FilterKeyPress(GDK_KEY_1)); 82 EXPECT_TRUE(character_composer.FilterKeyPress(GDK_KEY_1));
83 EXPECT_TRUE(character_composer.GetComposedCharacter().empty()); 83 EXPECT_TRUE(character_composer.composed_character().empty());
84 84
85 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail 85 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail.
86 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute); 86 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute);
87 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_circumflex); 87 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_circumflex);
88 EXPECT_TRUE(character_composer.FilterKeyPress(GDK_KEY_1)); 88 EXPECT_TRUE(character_composer.FilterKeyPress(GDK_KEY_1));
89 EXPECT_TRUE(character_composer.GetComposedCharacter().empty()); 89 EXPECT_TRUE(character_composer.composed_character().empty());
90 } 90 }
91 91
92 TEST(CharacterComposerTest, FullyMatchingSequences) { 92 TEST(CharacterComposerTest, FullyMatchingSequences) {
93 CharacterComposer character_composer; 93 CharacterComposer character_composer;
94 // LATIN SMALL LETTER A WITH ACUTE 94 // LATIN SMALL LETTER A WITH ACUTE
95 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_a, 95 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_a,
96 string16(1, 0x00E1)); 96 string16(1, 0x00E1));
97 // LATIN CAPITAL LETTER A WITH ACUTE 97 // LATIN CAPITAL LETTER A WITH ACUTE
98 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_A, 98 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_A,
99 string16(1, 0x00C1)); 99 string16(1, 0x00C1));
(...skipping 10 matching lines...) Expand all
110 // LATIN CAPITAL LETTER C WITH CEDILLA 110 // LATIN CAPITAL LETTER C WITH CEDILLA
111 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_C, 111 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_C,
112 string16(1, 0x00C7)); 112 string16(1, 0x00C7));
113 // LATIN SMALL LETTER C WITH CEDILLA 113 // LATIN SMALL LETTER C WITH CEDILLA
114 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_c, 114 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_c,
115 string16(1, 0x00E7)); 115 string16(1, 0x00E7));
116 } 116 }
117 117
118 TEST(CharacterComposerTest, FullyMatchingSequencesAfterMatchingFailure) { 118 TEST(CharacterComposerTest, FullyMatchingSequencesAfterMatchingFailure) {
119 CharacterComposer character_composer; 119 CharacterComposer character_composer;
120 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail 120 // Composition with sequence ['dead acute', 'dead circumflex', '1'] will fail.
121 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute); 121 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute);
122 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_circumflex); 122 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_circumflex);
123 EXPECT_TRUE(character_composer.FilterKeyPress(GDK_KEY_1)); 123 EXPECT_TRUE(character_composer.FilterKeyPress(GDK_KEY_1));
124 EXPECT_TRUE(character_composer.GetComposedCharacter().empty()); 124 EXPECT_TRUE(character_composer.composed_character().empty());
125 // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 125 // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
126 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, 126 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute,
127 GDK_KEY_dead_circumflex, GDK_KEY_a, 127 GDK_KEY_dead_circumflex, GDK_KEY_a,
128 string16(1, 0x1EA5)); 128 string16(1, 0x1EA5));
129 } 129 }
130 130
131 TEST(CharacterComposerTest, ComposedCharacterIsClearedAfterReset) { 131 TEST(CharacterComposerTest, ComposedCharacterIsClearedAfterReset) {
132 CharacterComposer character_composer; 132 CharacterComposer character_composer;
133 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_a, 133 ExpectCharacterComposed(&character_composer, GDK_KEY_dead_acute, GDK_KEY_a,
134 string16(1, 0x00E1)); 134 string16(1, 0x00E1));
135 character_composer.Reset(); 135 character_composer.Reset();
136 EXPECT_TRUE(character_composer.GetComposedCharacter().empty()); 136 EXPECT_TRUE(character_composer.composed_character().empty());
137 } 137 }
138 138
139 TEST(CharacterComposerTest, CompositionStateIsClearedAfterReset) { 139 TEST(CharacterComposerTest, CompositionStateIsClearedAfterReset) {
140 CharacterComposer character_composer; 140 CharacterComposer character_composer;
141 // Even though sequence ['dead acute', 'a'] will compose 'a with acute', 141 // Even though sequence ['dead acute', 'a'] will compose 'a with acute',
142 // no character is composed here because of reset. 142 // no character is composed here because of reset.
143 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute); 143 ExpectKeyFiltered(&character_composer, GDK_KEY_dead_acute);
144 character_composer.Reset(); 144 character_composer.Reset();
145 EXPECT_FALSE(character_composer.FilterKeyPress(GDK_KEY_a)); 145 EXPECT_FALSE(character_composer.FilterKeyPress(GDK_KEY_a));
146 EXPECT_TRUE(character_composer.GetComposedCharacter().empty()); 146 EXPECT_TRUE(character_composer.composed_character().empty());
147 } 147 }
148 148
149 } // namespace views 149 } // namespace views
OLDNEW
« no previous file with comments | « views/ime/character_composer.cc ('k') | views/ime/input_method_ibus.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698