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

Side by Side Diff: chrome/browser/extensions/api/omnibox/omnibox_unittest.cc

Issue 1739183003: Make extensions::DictionaryBuilder and extensions::ListValue unmovable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/extensions/api/omnibox/omnibox_api.h" 10 #include "chrome/browser/extensions/api/omnibox/omnibox_api.h"
(...skipping 30 matching lines...) Expand all
41 // u = 1, m = 2, d = 4. u+d = 5, etc. 41 // u = 1, m = 2, d = 4. u+d = 5, etc.
42 42
43 // 0123456789 43 // 0123456789
44 // mmmm 44 // mmmm
45 // + ddd 45 // + ddd
46 // = nmmmmndddn 46 // = nmmmmndddn
47 TEST(ExtensionOmniboxTest, DescriptionStylesSimple) { 47 TEST(ExtensionOmniboxTest, DescriptionStylesSimple) {
48 scoped_ptr<base::ListValue> list = 48 scoped_ptr<base::ListValue> list =
49 ListBuilder() 49 ListBuilder()
50 .Append(42) 50 .Append(42)
51 .Append(std::move(ListBuilder().Append(std::move( 51 .Append(ListBuilder()
52 DictionaryBuilder() 52 .Append(DictionaryBuilder()
53 .Set("content", "content") 53 .Set("content", "content")
54 .Set("description", "description") 54 .Set("description", "description")
55 .Set("descriptionStyles", 55 .Set("descriptionStyles",
56 std::move( 56 ListBuilder()
57 ListBuilder() 57 .Append(DictionaryBuilder()
58 .Append(std::move(DictionaryBuilder() 58 .Set("type", "match")
59 .Set("type", "match") 59 .Set("offset", 1)
60 .Set("offset", 1) 60 .Set("length", 4)
61 .Set("length", 4))) 61 .Build())
62 .Append(std::move(DictionaryBuilder() 62 .Append(DictionaryBuilder()
63 .Set("type", "dim") 63 .Set("type", "dim")
64 .Set("offset", 6) 64 .Set("offset", 6)
65 .Set("length", 3))))))))) 65 .Set("length", 3)
66 .Build())
67 .Build())
68 .Build())
69 .Build())
66 .Build(); 70 .Build();
67 71
68 ACMatchClassifications styles_expected; 72 ACMatchClassifications styles_expected;
69 styles_expected.push_back(ACMatchClassification(0, kNone)); 73 styles_expected.push_back(ACMatchClassification(0, kNone));
70 styles_expected.push_back(ACMatchClassification(1, kMatch)); 74 styles_expected.push_back(ACMatchClassification(1, kMatch));
71 styles_expected.push_back(ACMatchClassification(5, kNone)); 75 styles_expected.push_back(ACMatchClassification(5, kNone));
72 styles_expected.push_back(ACMatchClassification(6, kDim)); 76 styles_expected.push_back(ACMatchClassification(6, kDim));
73 styles_expected.push_back(ACMatchClassification(9, kNone)); 77 styles_expected.push_back(ACMatchClassification(9, kNone));
74 78
75 scoped_ptr<SendSuggestions::Params> params( 79 scoped_ptr<SendSuggestions::Params> params(
76 SendSuggestions::Params::Create(*list)); 80 SendSuggestions::Params::Create(*list));
77 EXPECT_TRUE(params); 81 EXPECT_TRUE(params);
78 EXPECT_TRUE(params->suggest_results[0].get()); 82 EXPECT_TRUE(params->suggest_results[0].get());
79 CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 83 CompareClassification(styles_expected, StyleTypesToACMatchClassifications(
80 *params->suggest_results[0])); 84 *params->suggest_results[0]));
81 85
82 // Same input, but swap the order. Ensure it still works. 86 // Same input, but swap the order. Ensure it still works.
83 scoped_ptr<base::ListValue> swap_list = 87 scoped_ptr<base::ListValue> swap_list =
84 ListBuilder() 88 ListBuilder()
85 .Append(42) 89 .Append(42)
86 .Append(std::move(ListBuilder().Append(std::move( 90 .Append(ListBuilder()
87 DictionaryBuilder() 91 .Append(DictionaryBuilder()
88 .Set("content", "content") 92 .Set("content", "content")
89 .Set("description", "description") 93 .Set("description", "description")
90 .Set("descriptionStyles", 94 .Set("descriptionStyles",
91 std::move( 95 ListBuilder()
92 ListBuilder() 96 .Append(DictionaryBuilder()
93 .Append(std::move(DictionaryBuilder() 97 .Set("type", "dim")
94 .Set("type", "dim") 98 .Set("offset", 6)
95 .Set("offset", 6) 99 .Set("length", 3)
96 .Set("length", 3))) 100 .Build())
97 .Append(std::move(DictionaryBuilder() 101 .Append(DictionaryBuilder()
98 .Set("type", "match") 102 .Set("type", "match")
99 .Set("offset", 1) 103 .Set("offset", 1)
100 .Set("length", 4))))))))) 104 .Set("length", 4)
105 .Build())
106 .Build())
107 .Build())
108 .Build())
101 .Build(); 109 .Build();
102 110
103 scoped_ptr<SendSuggestions::Params> swapped_params( 111 scoped_ptr<SendSuggestions::Params> swapped_params(
104 SendSuggestions::Params::Create(*swap_list)); 112 SendSuggestions::Params::Create(*swap_list));
105 EXPECT_TRUE(swapped_params); 113 EXPECT_TRUE(swapped_params);
106 EXPECT_TRUE(swapped_params->suggest_results[0].get()); 114 EXPECT_TRUE(swapped_params->suggest_results[0].get());
107 CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 115 CompareClassification(styles_expected, StyleTypesToACMatchClassifications(
108 *swapped_params->suggest_results[0])); 116 *swapped_params->suggest_results[0]));
109 } 117 }
110 118
111 // 0123456789 119 // 0123456789
112 // uuuuu 120 // uuuuu
113 // + dd 121 // + dd
114 // + mm 122 // + mm
115 // + mmmm 123 // + mmmm
116 // + dd 124 // + dd
117 // = 3773unnnn66 125 // = 3773unnnn66
118 TEST(ExtensionOmniboxTest, DescriptionStylesCombine) { 126 TEST(ExtensionOmniboxTest, DescriptionStylesCombine) {
119 scoped_ptr<base::ListValue> list = 127 scoped_ptr<base::ListValue> list =
120 ListBuilder() 128 ListBuilder()
121 .Append(42) 129 .Append(42)
122 .Append(std::move(ListBuilder().Append(std::move( 130 .Append(ListBuilder()
123 DictionaryBuilder() 131 .Append(DictionaryBuilder()
124 .Set("content", "content") 132 .Set("content", "content")
125 .Set("description", "description") 133 .Set("description", "description")
126 .Set("descriptionStyles", 134 .Set("descriptionStyles",
127 std::move( 135 ListBuilder()
128 ListBuilder() 136 .Append(DictionaryBuilder()
129 .Append(std::move(DictionaryBuilder() 137 .Set("type", "url")
130 .Set("type", "url") 138 .Set("offset", 0)
131 .Set("offset", 0) 139 .Set("length", 5)
132 .Set("length", 5))) 140 .Build())
133 .Append(std::move(DictionaryBuilder() 141 .Append(DictionaryBuilder()
134 .Set("type", "dim") 142 .Set("type", "dim")
135 .Set("offset", 9) 143 .Set("offset", 9)
136 .Set("length", 2))) 144 .Set("length", 2)
137 .Append(std::move(DictionaryBuilder() 145 .Build())
138 .Set("type", "match") 146 .Append(DictionaryBuilder()
139 .Set("offset", 9) 147 .Set("type", "match")
140 .Set("length", 2))) 148 .Set("offset", 9)
141 .Append(std::move(DictionaryBuilder() 149 .Set("length", 2)
142 .Set("type", "match") 150 .Build())
143 .Set("offset", 0) 151 .Append(DictionaryBuilder()
144 .Set("length", 4))) 152 .Set("type", "match")
145 .Append(std::move(DictionaryBuilder() 153 .Set("offset", 0)
146 .Set("type", "dim") 154 .Set("length", 4)
147 .Set("offset", 1) 155 .Build())
148 .Set("length", 2))))))))) 156 .Append(DictionaryBuilder()
157 .Set("type", "dim")
158 .Set("offset", 1)
159 .Set("length", 2)
160 .Build())
161 .Build())
162 .Build())
163 .Build())
149 .Build(); 164 .Build();
150 165
151 ACMatchClassifications styles_expected; 166 ACMatchClassifications styles_expected;
152 styles_expected.push_back(ACMatchClassification(0, kUrl | kMatch)); 167 styles_expected.push_back(ACMatchClassification(0, kUrl | kMatch));
153 styles_expected.push_back(ACMatchClassification(1, kUrl | kMatch | kDim)); 168 styles_expected.push_back(ACMatchClassification(1, kUrl | kMatch | kDim));
154 styles_expected.push_back(ACMatchClassification(3, kUrl | kMatch)); 169 styles_expected.push_back(ACMatchClassification(3, kUrl | kMatch));
155 styles_expected.push_back(ACMatchClassification(4, kUrl)); 170 styles_expected.push_back(ACMatchClassification(4, kUrl));
156 styles_expected.push_back(ACMatchClassification(5, kNone)); 171 styles_expected.push_back(ACMatchClassification(5, kNone));
157 styles_expected.push_back(ACMatchClassification(9, kMatch | kDim)); 172 styles_expected.push_back(ACMatchClassification(9, kMatch | kDim));
158 173
159 scoped_ptr<SendSuggestions::Params> params( 174 scoped_ptr<SendSuggestions::Params> params(
160 SendSuggestions::Params::Create(*list)); 175 SendSuggestions::Params::Create(*list));
161 EXPECT_TRUE(params); 176 EXPECT_TRUE(params);
162 EXPECT_TRUE(params->suggest_results[0].get()); 177 EXPECT_TRUE(params->suggest_results[0].get());
163 CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 178 CompareClassification(styles_expected, StyleTypesToACMatchClassifications(
164 *params->suggest_results[0])); 179 *params->suggest_results[0]));
165 180
166 // Try moving the "dim/match" style pair at offset 9. Output should be the 181 // Try moving the "dim/match" style pair at offset 9. Output should be the
167 // same. 182 // same.
168 scoped_ptr<base::ListValue> moved_list = 183 scoped_ptr<base::ListValue> moved_list =
169 ListBuilder() 184 ListBuilder()
170 .Append(42) 185 .Append(42)
171 .Append(std::move(ListBuilder().Append(std::move( 186 .Append(ListBuilder()
172 DictionaryBuilder() 187 .Append(DictionaryBuilder()
173 .Set("content", "content") 188 .Set("content", "content")
174 .Set("description", "description") 189 .Set("description", "description")
175 .Set("descriptionStyles", 190 .Set("descriptionStyles",
176 std::move( 191 ListBuilder()
177 ListBuilder() 192 .Append(DictionaryBuilder()
178 .Append(std::move(DictionaryBuilder() 193 .Set("type", "url")
179 .Set("type", "url") 194 .Set("offset", 0)
180 .Set("offset", 0) 195 .Set("length", 5)
181 .Set("length", 5))) 196 .Build())
182 .Append(std::move(DictionaryBuilder() 197 .Append(DictionaryBuilder()
183 .Set("type", "match") 198 .Set("type", "match")
184 .Set("offset", 0) 199 .Set("offset", 0)
185 .Set("length", 4))) 200 .Set("length", 4)
186 .Append(std::move(DictionaryBuilder() 201 .Build())
187 .Set("type", "dim") 202 .Append(DictionaryBuilder()
188 .Set("offset", 9) 203 .Set("type", "dim")
189 .Set("length", 2))) 204 .Set("offset", 9)
190 .Append(std::move(DictionaryBuilder() 205 .Set("length", 2)
191 .Set("type", "match") 206 .Build())
192 .Set("offset", 9) 207 .Append(DictionaryBuilder()
193 .Set("length", 2))) 208 .Set("type", "match")
194 .Append(std::move(DictionaryBuilder() 209 .Set("offset", 9)
195 .Set("type", "dim") 210 .Set("length", 2)
196 .Set("offset", 1) 211 .Build())
197 .Set("length", 2))))))))) 212 .Append(DictionaryBuilder()
213 .Set("type", "dim")
214 .Set("offset", 1)
215 .Set("length", 2)
216 .Build())
217 .Build())
218 .Build())
219 .Build())
198 .Build(); 220 .Build();
199 221
200 scoped_ptr<SendSuggestions::Params> moved_params( 222 scoped_ptr<SendSuggestions::Params> moved_params(
201 SendSuggestions::Params::Create(*moved_list)); 223 SendSuggestions::Params::Create(*moved_list));
202 EXPECT_TRUE(moved_params); 224 EXPECT_TRUE(moved_params);
203 EXPECT_TRUE(moved_params->suggest_results[0].get()); 225 EXPECT_TRUE(moved_params->suggest_results[0].get());
204 CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 226 CompareClassification(styles_expected, StyleTypesToACMatchClassifications(
205 *moved_params->suggest_results[0])); 227 *moved_params->suggest_results[0]));
206 } 228 }
207 229
208 // 0123456789 230 // 0123456789
209 // uuuuu 231 // uuuuu
210 // + mmmmm 232 // + mmmmm
211 // + mmm 233 // + mmm
212 // + ddd 234 // + ddd
213 // + ddd 235 // + ddd
214 // = 77777nnnnn 236 // = 77777nnnnn
215 TEST(ExtensionOmniboxTest, DescriptionStylesCombine2) { 237 TEST(ExtensionOmniboxTest, DescriptionStylesCombine2) {
216 scoped_ptr<base::ListValue> list = 238 scoped_ptr<base::ListValue> list =
217 ListBuilder() 239 ListBuilder()
218 .Append(42) 240 .Append(42)
219 .Append(std::move(ListBuilder().Append(std::move( 241 .Append(ListBuilder()
220 DictionaryBuilder() 242 .Append(DictionaryBuilder()
221 .Set("content", "content") 243 .Set("content", "content")
222 .Set("description", "description") 244 .Set("description", "description")
223 .Set("descriptionStyles", 245 .Set("descriptionStyles",
224 std::move( 246 ListBuilder()
225 ListBuilder() 247 .Append(DictionaryBuilder()
226 .Append(std::move(DictionaryBuilder() 248 .Set("type", "url")
227 .Set("type", "url") 249 .Set("offset", 0)
228 .Set("offset", 0) 250 .Set("length", 5)
229 .Set("length", 5))) 251 .Build())
230 .Append(std::move(DictionaryBuilder() 252 .Append(DictionaryBuilder()
231 .Set("type", "match") 253 .Set("type", "match")
232 .Set("offset", 0) 254 .Set("offset", 0)
233 .Set("length", 5))) 255 .Set("length", 5)
234 .Append(std::move(DictionaryBuilder() 256 .Build())
235 .Set("type", "match") 257 .Append(DictionaryBuilder()
236 .Set("offset", 0) 258 .Set("type", "match")
237 .Set("length", 3))) 259 .Set("offset", 0)
238 .Append(std::move(DictionaryBuilder() 260 .Set("length", 3)
239 .Set("type", "dim") 261 .Build())
240 .Set("offset", 2) 262 .Append(DictionaryBuilder()
241 .Set("length", 3))) 263 .Set("type", "dim")
242 .Append(std::move(DictionaryBuilder() 264 .Set("offset", 2)
243 .Set("type", "dim") 265 .Set("length", 3)
244 .Set("offset", 0) 266 .Build())
245 .Set("length", 3))))))))) 267 .Append(DictionaryBuilder()
268 .Set("type", "dim")
269 .Set("offset", 0)
270 .Set("length", 3)
271 .Build())
272 .Build())
273 .Build())
274 .Build())
246 .Build(); 275 .Build();
247 276
248 ACMatchClassifications styles_expected; 277 ACMatchClassifications styles_expected;
249 styles_expected.push_back(ACMatchClassification(0, kUrl | kMatch | kDim)); 278 styles_expected.push_back(ACMatchClassification(0, kUrl | kMatch | kDim));
250 styles_expected.push_back(ACMatchClassification(5, kNone)); 279 styles_expected.push_back(ACMatchClassification(5, kNone));
251 280
252 scoped_ptr<SendSuggestions::Params> params( 281 scoped_ptr<SendSuggestions::Params> params(
253 SendSuggestions::Params::Create(*list)); 282 SendSuggestions::Params::Create(*list));
254 EXPECT_TRUE(params); 283 EXPECT_TRUE(params);
255 EXPECT_TRUE(params->suggest_results[0].get()); 284 EXPECT_TRUE(params->suggest_results[0].get());
256 CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 285 CompareClassification(styles_expected, StyleTypesToACMatchClassifications(
257 *params->suggest_results[0])); 286 *params->suggest_results[0]));
258 } 287 }
259 288
260 // 0123456789 289 // 0123456789
261 // uuuuu 290 // uuuuu
262 // + mmmmm 291 // + mmmmm
263 // + mmm 292 // + mmm
264 // + ddd 293 // + ddd
265 // + ddd 294 // + ddd
266 // = 77777nnnnn 295 // = 77777nnnnn
267 TEST(ExtensionOmniboxTest, DefaultSuggestResult) { 296 TEST(ExtensionOmniboxTest, DefaultSuggestResult) {
268 // Default suggestions should not have a content parameter. 297 // Default suggestions should not have a content parameter.
269 scoped_ptr<base::ListValue> list = 298 scoped_ptr<base::ListValue> list =
270 ListBuilder() 299 ListBuilder()
271 .Append(std::move( 300 .Append(DictionaryBuilder()
272 DictionaryBuilder() 301 .Set("description", "description")
273 .Set("description", "description") 302 .Set("descriptionStyles",
274 .Set( 303 ListBuilder()
275 "descriptionStyles", 304 .Append(DictionaryBuilder()
276 std::move( 305 .Set("type", "url")
277 ListBuilder() 306 .Set("offset", 0)
278 .Append(std::move( 307 .Set("length", 5)
279 DictionaryBuilder() 308 .Build())
280 .Set("type", "url") 309 .Append(DictionaryBuilder()
281 .Set("offset", 0) 310 .Set("type", "match")
282 .Set("length", 5))) 311 .Set("offset", 0)
283 .Append(std::move(DictionaryBuilder() 312 .Set("length", 5)
284 .Set("type", "match") 313 .Build())
285 .Set("offset", 0) 314 .Append(DictionaryBuilder()
286 .Set("length", 5))) 315 .Set("type", "match")
287 .Append(std::move(DictionaryBuilder() 316 .Set("offset", 0)
288 .Set("type", "match") 317 .Set("length", 3)
289 .Set("offset", 0) 318 .Build())
290 .Set("length", 3))) 319 .Append(DictionaryBuilder()
291 .Append(std::move(DictionaryBuilder() 320 .Set("type", "dim")
292 .Set("type", "dim") 321 .Set("offset", 2)
293 .Set("offset", 2) 322 .Set("length", 3)
294 .Set("length", 3))) 323 .Build())
295 .Append(std::move(DictionaryBuilder() 324 .Append(DictionaryBuilder()
296 .Set("type", "dim") 325 .Set("type", "dim")
297 .Set("offset", 0) 326 .Set("offset", 0)
298 .Set("length", 3))))))) 327 .Set("length", 3)
328 .Build())
329 .Build())
330 .Build())
299 .Build(); 331 .Build();
300 332
301 scoped_ptr<SetDefaultSuggestion::Params> params( 333 scoped_ptr<SetDefaultSuggestion::Params> params(
302 SetDefaultSuggestion::Params::Create(*list)); 334 SetDefaultSuggestion::Params::Create(*list));
303 EXPECT_TRUE(params); 335 EXPECT_TRUE(params);
304 } 336 }
305 337
306 } // namespace extensions 338 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698