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

Side by Side Diff: chrome/browser/chromeos/input_method/virtual_keyboard_selector_unittest.cc

Issue 7497028: Add SetUserPreference function to VirtualKeyboardSelector (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review 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
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/virtual_keyboard_selector.h" 5 #include "chrome/browser/chromeos/input_method/virtual_keyboard_selector.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 // For EXPECT_TRUE calls below. The operator has to be in the global namespace. 10 // For EXPECT_TRUE calls below. The operator has to be in the global namespace.
(...skipping 14 matching lines...) Expand all
25 } 25 }
26 26
27 } // namespace 27 } // namespace
28 28
29 namespace chromeos { 29 namespace chromeos {
30 namespace input_method { 30 namespace input_method {
31 31
32 class TestableVirtualKeyboardSelector : public VirtualKeyboardSelector { 32 class TestableVirtualKeyboardSelector : public VirtualKeyboardSelector {
33 public: 33 public:
34 // Change access rights. 34 // Change access rights.
35 using VirtualKeyboardSelector::SelectVirtualKeyboardInternal; 35 using VirtualKeyboardSelector::SelectVirtualKeyboardByLayout;
36 }; 36 };
37 37
38 TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) { 38 TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) {
39 TestableVirtualKeyboardSelector selector; 39 TestableVirtualKeyboardSelector selector;
40 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("us")); 40 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("us"));
41 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); 41 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard(""));
42 } 42 }
43 43
44 TEST(VirtualKeyboardSelectorTest, TestSystemKeyboard) { 44 TEST(VirtualKeyboardSelectorTest, TestSystemKeyboard) {
45 static const char* layouts[] = { "a", "b", "c" }; 45 static const char* layouts[] = { "a", "b", "c" };
46 VirtualKeyboard system_virtual_keyboard( 46 VirtualKeyboard system_virtual_keyboard(
47 GURL("http://system"), CreateLayoutSet(layouts), true /* is_system */); 47 GURL("http://system"), CreateLayoutSet(layouts), true /* is_system */);
48 48
49 TestableVirtualKeyboardSelector selector; 49 TestableVirtualKeyboardSelector selector;
50 selector.AddVirtualKeyboard(system_virtual_keyboard.url(), 50 selector.AddVirtualKeyboard(system_virtual_keyboard.url(),
51 system_virtual_keyboard.supported_layouts(), 51 system_virtual_keyboard.supported_layouts(),
52 system_virtual_keyboard.is_system()); 52 system_virtual_keyboard.is_system());
53 53
54 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 54 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
55 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); 55 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("a"));
56 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); 56 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b"));
57 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); 57 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("b"));
58 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 58 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
59 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); 59 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("c"));
60 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); 60 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d"));
61 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); 61 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa"));
62 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); 62 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard(""));
63 } 63 }
64 64
65 TEST(VirtualKeyboardSelectorTest, TestTwoSystemKeyboards) { 65 TEST(VirtualKeyboardSelectorTest, TestTwoSystemKeyboards) {
66 static const char* layouts_1[] = { "a", "b", "c" }; 66 static const char* layouts_1[] = { "a", "b", "c" };
67 static const char* layouts_2[] = { "a", "c", "d" }; 67 static const char* layouts_2[] = { "a", "c", "d" };
68 68
69 VirtualKeyboard system_virtual_keyboard_1( 69 VirtualKeyboard system_virtual_keyboard_1(
70 GURL("http://system1"), CreateLayoutSet(layouts_1), true /* is_system */); 70 GURL("http://system1"), CreateLayoutSet(layouts_1), true /* is_system */);
71 VirtualKeyboard system_virtual_keyboard_2( 71 VirtualKeyboard system_virtual_keyboard_2(
72 GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */); 72 GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */);
73 73
74 TestableVirtualKeyboardSelector selector; 74 TestableVirtualKeyboardSelector selector;
75 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(), 75 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(),
76 system_virtual_keyboard_1.supported_layouts(), 76 system_virtual_keyboard_1.supported_layouts(),
77 system_virtual_keyboard_1.is_system()); 77 system_virtual_keyboard_1.is_system());
78 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(), 78 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(),
79 system_virtual_keyboard_2.supported_layouts(), 79 system_virtual_keyboard_2.supported_layouts(),
80 system_virtual_keyboard_2.is_system()); 80 system_virtual_keyboard_2.is_system());
81 81
82 // At this point, system_virtual_keyboard_2 has higher priority since it's 82 // At this point, system_virtual_keyboard_2 has higher priority since it's
83 // added later than system_virtual_keyboard_1. 83 // added later than system_virtual_keyboard_1.
84 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 84 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
85 EXPECT_TRUE(system_virtual_keyboard_2 == 85 EXPECT_TRUE(system_virtual_keyboard_2 ==
86 *selector.SelectVirtualKeyboard("a")); 86 *selector.SelectVirtualKeyboard("a"));
87 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 87 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
88 EXPECT_TRUE(system_virtual_keyboard_2 == 88 EXPECT_TRUE(system_virtual_keyboard_2 ==
89 *selector.SelectVirtualKeyboard("c")); 89 *selector.SelectVirtualKeyboard("c"));
90 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); 90 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("d"));
91 EXPECT_TRUE(system_virtual_keyboard_2 == 91 EXPECT_TRUE(system_virtual_keyboard_2 ==
92 *selector.SelectVirtualKeyboard("d")); 92 *selector.SelectVirtualKeyboard("d"));
93 93
94 // Request "b". system_virtual_keyboard_1 should be returned. 94 // Request "b". system_virtual_keyboard_1 should be returned.
95 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); 95 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b"));
96 EXPECT_TRUE(system_virtual_keyboard_1 == 96 EXPECT_TRUE(system_virtual_keyboard_1 ==
97 *selector.SelectVirtualKeyboard("b")); 97 *selector.SelectVirtualKeyboard("b"));
98 98
99 // Now system_virtual_keyboard_1 should be selected for 'a' and 'c' since 99 // Now system_virtual_keyboard_1 should be selected for 'a' and 'c' since
100 // it's the current virtual keyboard. 100 // it's the current virtual keyboard.
101 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 101 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
102 EXPECT_TRUE(system_virtual_keyboard_1 == 102 EXPECT_TRUE(system_virtual_keyboard_1 ==
103 *selector.SelectVirtualKeyboard("a")); 103 *selector.SelectVirtualKeyboard("a"));
104 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 104 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
105 EXPECT_TRUE(system_virtual_keyboard_1 == 105 EXPECT_TRUE(system_virtual_keyboard_1 ==
106 *selector.SelectVirtualKeyboard("c")); 106 *selector.SelectVirtualKeyboard("c"));
107 107
108 // Request "d" again. system_virtual_keyboard_2 should be returned. 108 // Request "d" again. system_virtual_keyboard_2 should be returned.
109 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); 109 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("d"));
110 EXPECT_TRUE(system_virtual_keyboard_2 == 110 EXPECT_TRUE(system_virtual_keyboard_2 ==
111 *selector.SelectVirtualKeyboard("d")); 111 *selector.SelectVirtualKeyboard("d"));
112 // This time, system_virtual_keyboard_2 should be selected for 'a' and 'c'. 112 // This time, system_virtual_keyboard_2 should be selected for 'a' and 'c'.
113 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 113 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
114 EXPECT_TRUE(system_virtual_keyboard_2 == 114 EXPECT_TRUE(system_virtual_keyboard_2 ==
115 *selector.SelectVirtualKeyboard("a")); 115 *selector.SelectVirtualKeyboard("a"));
116 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 116 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
117 EXPECT_TRUE(system_virtual_keyboard_2 == 117 EXPECT_TRUE(system_virtual_keyboard_2 ==
118 *selector.SelectVirtualKeyboard("c")); 118 *selector.SelectVirtualKeyboard("c"));
119 } 119 }
120 120
121 TEST(VirtualKeyboardSelectorTest, TestUserKeyboard) { 121 TEST(VirtualKeyboardSelectorTest, TestUserKeyboard) {
122 static const char* layouts[] = { "a", "b", "c" }; 122 static const char* layouts[] = { "a", "b", "c" };
123 VirtualKeyboard user_virtual_keyboard( 123 VirtualKeyboard user_virtual_keyboard(
124 GURL("http://user"), CreateLayoutSet(layouts), false /* is_system */); 124 GURL("http://user"), CreateLayoutSet(layouts), false /* is_system */);
125 125
126 TestableVirtualKeyboardSelector selector; 126 TestableVirtualKeyboardSelector selector;
127 selector.AddVirtualKeyboard(user_virtual_keyboard.url(), 127 selector.AddVirtualKeyboard(user_virtual_keyboard.url(),
128 user_virtual_keyboard.supported_layouts(), 128 user_virtual_keyboard.supported_layouts(),
129 user_virtual_keyboard.is_system()); 129 user_virtual_keyboard.is_system());
130 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 130 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
131 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); 131 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("a"));
132 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); 132 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b"));
133 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); 133 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("b"));
134 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 134 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
135 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); 135 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("c"));
136 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); 136 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d"));
137 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); 137 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa"));
138 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); 138 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard(""));
139 } 139 }
140 140
141 TEST(VirtualKeyboardSelectorTest, TestTwoUserKeyboards) { 141 TEST(VirtualKeyboardSelectorTest, TestTwoUserKeyboards) {
142 static const char* layouts_1[] = { "a", "b", "c" }; 142 static const char* layouts_1[] = { "a", "b", "c" };
143 static const char* layouts_2[] = { "a", "c", "d" }; 143 static const char* layouts_2[] = { "a", "c", "d" };
144 144
145 VirtualKeyboard user_virtual_keyboard_1( 145 VirtualKeyboard user_virtual_keyboard_1(
146 GURL("http://user1"), CreateLayoutSet(layouts_1), false /* is_system */); 146 GURL("http://user1"), CreateLayoutSet(layouts_1), false /* is_system */);
147 VirtualKeyboard user_virtual_keyboard_2( 147 VirtualKeyboard user_virtual_keyboard_2(
148 GURL("http://user2"), CreateLayoutSet(layouts_2), false /* is_system */); 148 GURL("http://user2"), CreateLayoutSet(layouts_2), false /* is_system */);
149 149
150 TestableVirtualKeyboardSelector selector; 150 TestableVirtualKeyboardSelector selector;
151 selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(), 151 selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(),
152 user_virtual_keyboard_1.supported_layouts(), 152 user_virtual_keyboard_1.supported_layouts(),
153 user_virtual_keyboard_1.is_system()); 153 user_virtual_keyboard_1.is_system());
154 selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(), 154 selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(),
155 user_virtual_keyboard_2.supported_layouts(), 155 user_virtual_keyboard_2.supported_layouts(),
156 user_virtual_keyboard_2.is_system()); 156 user_virtual_keyboard_2.is_system());
157 157
158 // At this point, user_virtual_keyboard_2 has higher priority since it's 158 // At this point, user_virtual_keyboard_2 has higher priority since it's
159 // added later than user_virtual_keyboard_1. 159 // added later than user_virtual_keyboard_1.
160 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 160 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
161 EXPECT_TRUE(user_virtual_keyboard_2 == 161 EXPECT_TRUE(user_virtual_keyboard_2 ==
162 *selector.SelectVirtualKeyboard("a")); 162 *selector.SelectVirtualKeyboard("a"));
163 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 163 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
164 EXPECT_TRUE(user_virtual_keyboard_2 == 164 EXPECT_TRUE(user_virtual_keyboard_2 ==
165 *selector.SelectVirtualKeyboard("c")); 165 *selector.SelectVirtualKeyboard("c"));
166 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); 166 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("d"));
167 EXPECT_TRUE(user_virtual_keyboard_2 == 167 EXPECT_TRUE(user_virtual_keyboard_2 ==
168 *selector.SelectVirtualKeyboard("d")); 168 *selector.SelectVirtualKeyboard("d"));
169 169
170 // Request "b". user_virtual_keyboard_1 should be returned. 170 // Request "b". user_virtual_keyboard_1 should be returned.
171 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); 171 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b"));
172 EXPECT_TRUE(user_virtual_keyboard_1 == 172 EXPECT_TRUE(user_virtual_keyboard_1 ==
173 *selector.SelectVirtualKeyboard("b")); 173 *selector.SelectVirtualKeyboard("b"));
174 174
175 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since 175 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since
176 // it's the current virtual keyboard. 176 // it's the current virtual keyboard.
177 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 177 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
178 EXPECT_TRUE(user_virtual_keyboard_1 == 178 EXPECT_TRUE(user_virtual_keyboard_1 ==
179 *selector.SelectVirtualKeyboard("a")); 179 *selector.SelectVirtualKeyboard("a"));
180 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 180 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
181 EXPECT_TRUE(user_virtual_keyboard_1 == 181 EXPECT_TRUE(user_virtual_keyboard_1 ==
182 *selector.SelectVirtualKeyboard("c")); 182 *selector.SelectVirtualKeyboard("c"));
183 183
184 // Request "d" again. user_virtual_keyboard_2 should be returned. 184 // Request "d" again. user_virtual_keyboard_2 should be returned.
185 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); 185 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("d"));
186 EXPECT_TRUE(user_virtual_keyboard_2 == 186 EXPECT_TRUE(user_virtual_keyboard_2 ==
187 *selector.SelectVirtualKeyboard("d")); 187 *selector.SelectVirtualKeyboard("d"));
188 // This time, user_virtual_keyboard_2 should be selected for 'a' and 'c'. 188 // This time, user_virtual_keyboard_2 should be selected for 'a' and 'c'.
189 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 189 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
190 EXPECT_TRUE(user_virtual_keyboard_2 == 190 EXPECT_TRUE(user_virtual_keyboard_2 ==
191 *selector.SelectVirtualKeyboard("a")); 191 *selector.SelectVirtualKeyboard("a"));
192 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 192 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
193 EXPECT_TRUE(user_virtual_keyboard_2 == 193 EXPECT_TRUE(user_virtual_keyboard_2 ==
194 *selector.SelectVirtualKeyboard("c")); 194 *selector.SelectVirtualKeyboard("c"));
195 } 195 }
196 196
197 TEST(VirtualKeyboardSelectorTest, TestUserSystemMixed) { 197 TEST(VirtualKeyboardSelectorTest, TestUserSystemMixed) {
198 static const char* ulayouts_1[] = { "a", "b", "c" }; 198 static const char* ulayouts_1[] = { "a", "b", "c" };
199 static const char* ulayouts_2[] = { "a", "c", "d" }; 199 static const char* ulayouts_2[] = { "a", "c", "d" };
200 static const char* layouts_1[] = { "a", "x", "y" }; 200 static const char* layouts_1[] = { "a", "x", "y" };
201 static const char* layouts_2[] = { "a", "y", "z" }; 201 static const char* layouts_2[] = { "a", "y", "z" };
202 202
(...skipping 14 matching lines...) Expand all
217 user_virtual_keyboard_2.supported_layouts(), 217 user_virtual_keyboard_2.supported_layouts(),
218 user_virtual_keyboard_2.is_system()); 218 user_virtual_keyboard_2.is_system());
219 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(), 219 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(),
220 system_virtual_keyboard_1.supported_layouts(), 220 system_virtual_keyboard_1.supported_layouts(),
221 system_virtual_keyboard_1.is_system()); 221 system_virtual_keyboard_1.is_system());
222 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(), 222 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(),
223 system_virtual_keyboard_2.supported_layouts(), 223 system_virtual_keyboard_2.supported_layouts(),
224 system_virtual_keyboard_2.is_system()); 224 system_virtual_keyboard_2.is_system());
225 225
226 // At this point, user_virtual_keyboard_2 has the highest priority. 226 // At this point, user_virtual_keyboard_2 has the highest priority.
227 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 227 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
228 EXPECT_TRUE(user_virtual_keyboard_2 == 228 EXPECT_TRUE(user_virtual_keyboard_2 ==
229 *selector.SelectVirtualKeyboard("a")); 229 *selector.SelectVirtualKeyboard("a"));
230 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 230 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
231 EXPECT_TRUE(user_virtual_keyboard_2 == 231 EXPECT_TRUE(user_virtual_keyboard_2 ==
232 *selector.SelectVirtualKeyboard("c")); 232 *selector.SelectVirtualKeyboard("c"));
233 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); 233 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("d"));
234 EXPECT_TRUE(user_virtual_keyboard_2 == 234 EXPECT_TRUE(user_virtual_keyboard_2 ==
235 *selector.SelectVirtualKeyboard("d")); 235 *selector.SelectVirtualKeyboard("d"));
236 236
237 // Request "b". user_virtual_keyboard_1 should be returned. 237 // Request "b". user_virtual_keyboard_1 should be returned.
238 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); 238 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b"));
239 EXPECT_TRUE(user_virtual_keyboard_1 == 239 EXPECT_TRUE(user_virtual_keyboard_1 ==
240 *selector.SelectVirtualKeyboard("b")); 240 *selector.SelectVirtualKeyboard("b"));
241 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since 241 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since
242 // it's the current virtual keyboard. 242 // it's the current virtual keyboard.
243 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 243 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
244 EXPECT_TRUE(user_virtual_keyboard_1 == 244 EXPECT_TRUE(user_virtual_keyboard_1 ==
245 *selector.SelectVirtualKeyboard("a")); 245 *selector.SelectVirtualKeyboard("a"));
246 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 246 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
247 EXPECT_TRUE(user_virtual_keyboard_1 == 247 EXPECT_TRUE(user_virtual_keyboard_1 ==
248 *selector.SelectVirtualKeyboard("c")); 248 *selector.SelectVirtualKeyboard("c"));
249 249
250 // Request "x". system_virtual_keyboard_2 should be returned (since it's 250 // Request "x". system_virtual_keyboard_2 should be returned (since it's
251 // added later than system_virtual_keyboard_1). 251 // added later than system_virtual_keyboard_1).
252 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("x")); 252 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("x"));
253 EXPECT_TRUE(system_virtual_keyboard_1 == 253 EXPECT_TRUE(system_virtual_keyboard_1 ==
254 *selector.SelectVirtualKeyboard("x")); 254 *selector.SelectVirtualKeyboard("x"));
255 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); 255 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y"));
256 EXPECT_TRUE(system_virtual_keyboard_1 == 256 EXPECT_TRUE(system_virtual_keyboard_1 ==
257 *selector.SelectVirtualKeyboard("y")); 257 *selector.SelectVirtualKeyboard("y"));
258 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 258 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
259 EXPECT_TRUE(system_virtual_keyboard_1 == 259 EXPECT_TRUE(system_virtual_keyboard_1 ==
260 *selector.SelectVirtualKeyboard("a")); 260 *selector.SelectVirtualKeyboard("a"));
261 261
262 // Switch to system_virtual_keyboard_2. 262 // Switch to system_virtual_keyboard_2.
263 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("z")); 263 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("z"));
264 EXPECT_TRUE(system_virtual_keyboard_2 == 264 EXPECT_TRUE(system_virtual_keyboard_2 ==
265 *selector.SelectVirtualKeyboard("z")); 265 *selector.SelectVirtualKeyboard("z"));
266 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); 266 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y"));
267 EXPECT_TRUE(system_virtual_keyboard_2 == 267 EXPECT_TRUE(system_virtual_keyboard_2 ==
268 *selector.SelectVirtualKeyboard("y")); 268 *selector.SelectVirtualKeyboard("y"));
269 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 269 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
270 EXPECT_TRUE(system_virtual_keyboard_2 == 270 EXPECT_TRUE(system_virtual_keyboard_2 ==
271 *selector.SelectVirtualKeyboard("a")); 271 *selector.SelectVirtualKeyboard("a"));
272 272
273 // Switch back to system_virtual_keyboard_2. 273 // Switch back to system_virtual_keyboard_2.
274 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("x")); 274 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("x"));
275 EXPECT_TRUE(system_virtual_keyboard_1 == 275 EXPECT_TRUE(system_virtual_keyboard_1 ==
276 *selector.SelectVirtualKeyboard("x")); 276 *selector.SelectVirtualKeyboard("x"));
277 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); 277 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y"));
278 EXPECT_TRUE(system_virtual_keyboard_1 == 278 EXPECT_TRUE(system_virtual_keyboard_1 ==
279 *selector.SelectVirtualKeyboard("y")); 279 *selector.SelectVirtualKeyboard("y"));
280 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); 280 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
281 EXPECT_TRUE(system_virtual_keyboard_1 == 281 EXPECT_TRUE(system_virtual_keyboard_1 ==
282 *selector.SelectVirtualKeyboard("a")); 282 *selector.SelectVirtualKeyboard("a"));
283 283
284 // Switch back to user_virtual_keyboard_1. 284 // Switch back to user_virtual_keyboard_1.
285 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); 285 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
286 EXPECT_TRUE(user_virtual_keyboard_2 == 286 EXPECT_TRUE(user_virtual_keyboard_2 ==
287 *selector.SelectVirtualKeyboard("c")); 287 *selector.SelectVirtualKeyboard("c"));
288 } 288 }
289 289
290 TEST(VirtualKeyboardTest, TestUrl) { 290 TEST(VirtualKeyboardTest, TestUrl) {
291 static const char* layouts[] = { "a", "b", "c" }; 291 static const char* layouts[] = { "a", "b", "c" };
292 VirtualKeyboard system_virtual_keyboard( 292 VirtualKeyboard system_virtual_keyboard(
293 GURL("http://system"), CreateLayoutSet(layouts), true); 293 GURL("http://system"), CreateLayoutSet(layouts), true);
294 294
295 EXPECT_EQ("http://system/index.html#a", 295 EXPECT_EQ("http://system/index.html#a",
296 system_virtual_keyboard.GetURLForLayout("a").spec()); 296 system_virtual_keyboard.GetURLForLayout("a").spec());
297 EXPECT_EQ("http://system/index.html#b", 297 EXPECT_EQ("http://system/index.html#b",
298 system_virtual_keyboard.GetURLForLayout("b").spec()); 298 system_virtual_keyboard.GetURLForLayout("b").spec());
299 EXPECT_EQ("http://system/index.html#c", 299 EXPECT_EQ("http://system/index.html#c",
300 system_virtual_keyboard.GetURLForLayout("c").spec()); 300 system_virtual_keyboard.GetURLForLayout("c").spec());
301 EXPECT_EQ("http://system/index.html#not-supported", 301 EXPECT_EQ("http://system/index.html#not-supported",
302 system_virtual_keyboard.GetURLForLayout("not-supported").spec()); 302 system_virtual_keyboard.GetURLForLayout("not-supported").spec());
303 EXPECT_EQ("http://system/index.html#not(supported)", 303 EXPECT_EQ("http://system/index.html#not(supported)",
304 system_virtual_keyboard.GetURLForLayout("not(supported)").spec()); 304 system_virtual_keyboard.GetURLForLayout("not(supported)").spec());
305 EXPECT_EQ("http://system/", 305 EXPECT_EQ("http://system/",
306 system_virtual_keyboard.GetURLForLayout("").spec()); 306 system_virtual_keyboard.GetURLForLayout("").spec());
307 } 307 }
308 308
309 TEST(VirtualKeyboardSelectorTest, TestSetUserPreference1) {
310 static const char* layouts[] = { "a", "b", "c" };
311
312 VirtualKeyboard user_virtual_keyboard(
313 GURL("http://user"), CreateLayoutSet(layouts), false /* is_system */);
314
315 TestableVirtualKeyboardSelector selector;
316 selector.AddVirtualKeyboard(user_virtual_keyboard.url(),
317 user_virtual_keyboard.supported_layouts(),
318 user_virtual_keyboard.is_system());
319
320 EXPECT_FALSE(selector.SetUserPreference("bad_layout", GURL("http://user")));
321 EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url")));
322 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user")));
323 EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://user")));
324 EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://user")));
325 }
326
327 TEST(VirtualKeyboardSelectorTest, TestSetUserPreference2) {
328 static const char* layouts[] = { "a", "b", "c" };
329
330 VirtualKeyboard system_virtual_keyboard(
331 GURL("http://system"), CreateLayoutSet(layouts), true /* is_system */);
332
333 TestableVirtualKeyboardSelector selector;
334 selector.AddVirtualKeyboard(system_virtual_keyboard.url(),
335 system_virtual_keyboard.supported_layouts(),
336 system_virtual_keyboard.is_system());
337
338 EXPECT_FALSE(selector.SetUserPreference("bad_layout", GURL("http://system")));
339 EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url")));
340 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system")));
341 EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://system")));
342 EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://system")));
343 }
344
345 TEST(VirtualKeyboardSelectorTest, TestSetUserPreferenceUserSystemMixed) {
346 static const char* ulayouts_1[] = { "a", "b", "c" };
347 static const char* ulayouts_2[] = { "a", "c", "d" };
348 static const char* layouts_1[] = { "a", "x", "y" };
349 static const char* layouts_2[] = { "a", "y", "z" };
350
351 VirtualKeyboard user_virtual_keyboard_1(
352 GURL("http://user1"), CreateLayoutSet(ulayouts_1), false /* is_system */);
353 VirtualKeyboard user_virtual_keyboard_2(
354 GURL("http://user2"), CreateLayoutSet(ulayouts_2), false /* is_system */);
355 VirtualKeyboard system_virtual_keyboard_1(
356 GURL("http://system1"), CreateLayoutSet(layouts_1), true /* is_system */);
357 VirtualKeyboard system_virtual_keyboard_2(
358 GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */);
359
360 TestableVirtualKeyboardSelector selector;
361 selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(),
362 user_virtual_keyboard_1.supported_layouts(),
363 user_virtual_keyboard_1.is_system());
364 selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(),
365 user_virtual_keyboard_2.supported_layouts(),
366 user_virtual_keyboard_2.is_system());
367 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(),
368 system_virtual_keyboard_1.supported_layouts(),
369 system_virtual_keyboard_1.is_system());
370 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(),
371 system_virtual_keyboard_2.supported_layouts(),
372 system_virtual_keyboard_2.is_system());
373
374 // Set and then remove user pref (=NOP).
375 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system1")));
376 selector.RemoveUserPreference("a");
377
378 // At this point, user_virtual_keyboard_2 has the highest priority.
379 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
380 EXPECT_TRUE(user_virtual_keyboard_2 ==
381 *selector.SelectVirtualKeyboard("a"));
382 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
383 EXPECT_TRUE(user_virtual_keyboard_2 ==
384 *selector.SelectVirtualKeyboard("c"));
385 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("d"));
386 EXPECT_TRUE(user_virtual_keyboard_2 ==
387 *selector.SelectVirtualKeyboard("d"));
388
389 // Request "b". user_virtual_keyboard_1 should be returned.
390 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b"));
391 EXPECT_TRUE(user_virtual_keyboard_1 ==
392 *selector.SelectVirtualKeyboard("b"));
393
394 // Set user pref.
395 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user2")));
396
397 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
398 EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref.
399 *selector.SelectVirtualKeyboard("a"));
400 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
401 EXPECT_TRUE(user_virtual_keyboard_2 ==
402 *selector.SelectVirtualKeyboard("c"));
403
404 // Request "x". system_virtual_keyboard_2 should be returned (since it's
405 // added later than system_virtual_keyboard_1).
406 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("x"));
407 EXPECT_TRUE(system_virtual_keyboard_1 ==
408 *selector.SelectVirtualKeyboard("x"));
409 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y"));
410 EXPECT_TRUE(system_virtual_keyboard_1 ==
411 *selector.SelectVirtualKeyboard("y"));
412 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
413 EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref.
414 *selector.SelectVirtualKeyboard("a"));
415
416 // Switch to system_virtual_keyboard_2.
417 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("z"));
418 EXPECT_TRUE(system_virtual_keyboard_2 ==
419 *selector.SelectVirtualKeyboard("z"));
420 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y"));
421 EXPECT_TRUE(system_virtual_keyboard_2 ==
422 *selector.SelectVirtualKeyboard("y"));
423 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
424 EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref.
425 *selector.SelectVirtualKeyboard("a"));
426
427 // Switch back to system_virtual_keyboard_2.
428 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("x"));
429 EXPECT_TRUE(system_virtual_keyboard_1 ==
430 *selector.SelectVirtualKeyboard("x"));
431 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y"));
432 EXPECT_TRUE(system_virtual_keyboard_1 ==
433 *selector.SelectVirtualKeyboard("y"));
434
435 // Remove it.
436 selector.RemoveUserPreference("a");
437
438 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a"));
439 EXPECT_TRUE(system_virtual_keyboard_1 == // user pref is no longer available
440 *selector.SelectVirtualKeyboard("a"));
441
442 // Switch back to user_virtual_keyboard_1.
443 ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c"));
444 EXPECT_TRUE(user_virtual_keyboard_2 ==
445 *selector.SelectVirtualKeyboard("c"));
446 }
447
309 } // namespace input_method 448 } // namespace input_method
310 } // namespace chromeos 449 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698