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

Side by Side Diff: base/strings/string_piece_unittest.cc

Issue 187793004: Fill out the rest of the StringPiece functions for 16-bit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « base/strings/string_piece.cc ('k') | net/websockets/websocket_basic_handshake_stream.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) 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 <string> 5 #include <string>
6 6
7 #include "base/strings/string16.h" 7 #include "base/strings/string16.h"
8 #include "base/strings/string_piece.h" 8 #include "base/strings/string_piece.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 d.clear(); 185 d.clear();
186 ASSERT_EQ(d.size(), 0U); 186 ASSERT_EQ(d.size(), 0U);
187 ASSERT_TRUE(d.empty()); 187 ASSERT_TRUE(d.empty());
188 ASSERT_TRUE(d.data() == NULL); 188 ASSERT_TRUE(d.data() == NULL);
189 ASSERT_TRUE(d.begin() == d.end()); 189 ASSERT_TRUE(d.begin() == d.end());
190 190
191 ASSERT_GE(a.max_size(), a.capacity()); 191 ASSERT_GE(a.max_size(), a.capacity());
192 ASSERT_GE(a.capacity(), a.size()); 192 ASSERT_GE(a.capacity(), a.size());
193 } 193 }
194 194
195 // STL stuff only supported by the std::string version 195 TYPED_TEST(CommonStringPieceTest, CheckFind) {
196 TEST(StringPieceTest, CheckSTL) { 196 typedef BasicStringPiece<TypeParam> Piece;
197 StringPiece a("abcdefghijklmnopqrstuvwxyz"); 197
198 StringPiece b("abc"); 198 TypeParam alphabet(TestFixture::as_string("abcdefghijklmnopqrstuvwxyz"));
199 StringPiece c("xyz"); 199 TypeParam abc(TestFixture::as_string("abc"));
200 StringPiece d("foobar"); 200 TypeParam xyz(TestFixture::as_string("xyz"));
201 TypeParam foobar(TestFixture::as_string("foobar"));
202
203 BasicStringPiece<TypeParam> a(alphabet);
204 BasicStringPiece<TypeParam> b(abc);
205 BasicStringPiece<TypeParam> c(xyz);
206 BasicStringPiece<TypeParam> d(foobar);
207
201 d.clear(); 208 d.clear();
202 StringPiece e; 209 Piece e;
203 std::string temp("123"); 210 TypeParam temp(TestFixture::as_string("123"));
204 temp += '\0'; 211 temp.push_back('\0');
205 temp += "456"; 212 temp += TestFixture::as_string("456");
206 StringPiece f(temp); 213 Piece f(temp);
207 214
208 char buf[4] = { '%', '%', '%', '%' }; 215 typename TypeParam::value_type buf[4] = { '%', '%', '%', '%' };
209 ASSERT_EQ(a.copy(buf, 4), 4U); 216 ASSERT_EQ(a.copy(buf, 4), 4U);
210 ASSERT_EQ(buf[0], a[0]); 217 ASSERT_EQ(buf[0], a[0]);
211 ASSERT_EQ(buf[1], a[1]); 218 ASSERT_EQ(buf[1], a[1]);
212 ASSERT_EQ(buf[2], a[2]); 219 ASSERT_EQ(buf[2], a[2]);
213 ASSERT_EQ(buf[3], a[3]); 220 ASSERT_EQ(buf[3], a[3]);
214 ASSERT_EQ(a.copy(buf, 3, 7), 3U); 221 ASSERT_EQ(a.copy(buf, 3, 7), 3U);
215 ASSERT_EQ(buf[0], a[7]); 222 ASSERT_EQ(buf[0], a[7]);
216 ASSERT_EQ(buf[1], a[8]); 223 ASSERT_EQ(buf[1], a[8]);
217 ASSERT_EQ(buf[2], a[9]); 224 ASSERT_EQ(buf[2], a[9]);
218 ASSERT_EQ(buf[3], a[3]); 225 ASSERT_EQ(buf[3], a[3]);
219 ASSERT_EQ(c.copy(buf, 99), 3U); 226 ASSERT_EQ(c.copy(buf, 99), 3U);
220 ASSERT_EQ(buf[0], c[0]); 227 ASSERT_EQ(buf[0], c[0]);
221 ASSERT_EQ(buf[1], c[1]); 228 ASSERT_EQ(buf[1], c[1]);
222 ASSERT_EQ(buf[2], c[2]); 229 ASSERT_EQ(buf[2], c[2]);
223 ASSERT_EQ(buf[3], a[3]); 230 ASSERT_EQ(buf[3], a[3]);
224 231
225 ASSERT_EQ(StringPiece::npos, std::string::npos); 232 ASSERT_EQ(Piece::npos, TypeParam::npos);
226 233
227 ASSERT_EQ(a.find(b), 0U); 234 ASSERT_EQ(a.find(b), 0U);
228 ASSERT_EQ(a.find(b, 1), StringPiece::npos); 235 ASSERT_EQ(a.find(b, 1), Piece::npos);
229 ASSERT_EQ(a.find(c), 23U); 236 ASSERT_EQ(a.find(c), 23U);
230 ASSERT_EQ(a.find(c, 9), 23U); 237 ASSERT_EQ(a.find(c, 9), 23U);
231 ASSERT_EQ(a.find(c, StringPiece::npos), StringPiece::npos); 238 ASSERT_EQ(a.find(c, Piece::npos), Piece::npos);
232 ASSERT_EQ(b.find(c), StringPiece::npos); 239 ASSERT_EQ(b.find(c), Piece::npos);
233 ASSERT_EQ(b.find(c, StringPiece::npos), StringPiece::npos); 240 ASSERT_EQ(b.find(c, Piece::npos), Piece::npos);
234 ASSERT_EQ(a.find(d), 0U); 241 ASSERT_EQ(a.find(d), 0U);
235 ASSERT_EQ(a.find(e), 0U); 242 ASSERT_EQ(a.find(e), 0U);
236 ASSERT_EQ(a.find(d, 12), 12U); 243 ASSERT_EQ(a.find(d, 12), 12U);
237 ASSERT_EQ(a.find(e, 17), 17U); 244 ASSERT_EQ(a.find(e, 17), 17U);
238 StringPiece g("xx not found bb"); 245 TypeParam not_found(TestFixture::as_string("xx not found bb"));
239 ASSERT_EQ(a.find(g), StringPiece::npos); 246 Piece g(not_found);
247 ASSERT_EQ(a.find(g), Piece::npos);
240 // empty string nonsense 248 // empty string nonsense
241 ASSERT_EQ(d.find(b), StringPiece::npos); 249 ASSERT_EQ(d.find(b), Piece::npos);
242 ASSERT_EQ(e.find(b), StringPiece::npos); 250 ASSERT_EQ(e.find(b), Piece::npos);
243 ASSERT_EQ(d.find(b, 4), StringPiece::npos); 251 ASSERT_EQ(d.find(b, 4), Piece::npos);
244 ASSERT_EQ(e.find(b, 7), StringPiece::npos); 252 ASSERT_EQ(e.find(b, 7), Piece::npos);
245 253
246 size_t empty_search_pos = std::string().find(std::string()); 254 size_t empty_search_pos = TypeParam().find(TypeParam());
247 ASSERT_EQ(d.find(d), empty_search_pos); 255 ASSERT_EQ(d.find(d), empty_search_pos);
248 ASSERT_EQ(d.find(e), empty_search_pos); 256 ASSERT_EQ(d.find(e), empty_search_pos);
249 ASSERT_EQ(e.find(d), empty_search_pos); 257 ASSERT_EQ(e.find(d), empty_search_pos);
250 ASSERT_EQ(e.find(e), empty_search_pos); 258 ASSERT_EQ(e.find(e), empty_search_pos);
251 ASSERT_EQ(d.find(d, 4), std::string().find(std::string(), 4)); 259 ASSERT_EQ(d.find(d, 4), std::string().find(std::string(), 4));
252 ASSERT_EQ(d.find(e, 4), std::string().find(std::string(), 4)); 260 ASSERT_EQ(d.find(e, 4), std::string().find(std::string(), 4));
253 ASSERT_EQ(e.find(d, 4), std::string().find(std::string(), 4)); 261 ASSERT_EQ(e.find(d, 4), std::string().find(std::string(), 4));
254 ASSERT_EQ(e.find(e, 4), std::string().find(std::string(), 4)); 262 ASSERT_EQ(e.find(e, 4), std::string().find(std::string(), 4));
255 263
256 ASSERT_EQ(a.find('a'), 0U); 264 ASSERT_EQ(a.find('a'), 0U);
257 ASSERT_EQ(a.find('c'), 2U); 265 ASSERT_EQ(a.find('c'), 2U);
258 ASSERT_EQ(a.find('z'), 25U); 266 ASSERT_EQ(a.find('z'), 25U);
259 ASSERT_EQ(a.find('$'), StringPiece::npos); 267 ASSERT_EQ(a.find('$'), Piece::npos);
260 ASSERT_EQ(a.find('\0'), StringPiece::npos); 268 ASSERT_EQ(a.find('\0'), Piece::npos);
261 ASSERT_EQ(f.find('\0'), 3U); 269 ASSERT_EQ(f.find('\0'), 3U);
262 ASSERT_EQ(f.find('3'), 2U); 270 ASSERT_EQ(f.find('3'), 2U);
263 ASSERT_EQ(f.find('5'), 5U); 271 ASSERT_EQ(f.find('5'), 5U);
264 ASSERT_EQ(g.find('o'), 4U); 272 ASSERT_EQ(g.find('o'), 4U);
265 ASSERT_EQ(g.find('o', 4), 4U); 273 ASSERT_EQ(g.find('o', 4), 4U);
266 ASSERT_EQ(g.find('o', 5), 8U); 274 ASSERT_EQ(g.find('o', 5), 8U);
267 ASSERT_EQ(a.find('b', 5), StringPiece::npos); 275 ASSERT_EQ(a.find('b', 5), Piece::npos);
268 // empty string nonsense 276 // empty string nonsense
269 ASSERT_EQ(d.find('\0'), StringPiece::npos); 277 ASSERT_EQ(d.find('\0'), Piece::npos);
270 ASSERT_EQ(e.find('\0'), StringPiece::npos); 278 ASSERT_EQ(e.find('\0'), Piece::npos);
271 ASSERT_EQ(d.find('\0', 4), StringPiece::npos); 279 ASSERT_EQ(d.find('\0', 4), Piece::npos);
272 ASSERT_EQ(e.find('\0', 7), StringPiece::npos); 280 ASSERT_EQ(e.find('\0', 7), Piece::npos);
273 ASSERT_EQ(d.find('x'), StringPiece::npos); 281 ASSERT_EQ(d.find('x'), Piece::npos);
274 ASSERT_EQ(e.find('x'), StringPiece::npos); 282 ASSERT_EQ(e.find('x'), Piece::npos);
275 ASSERT_EQ(d.find('x', 4), StringPiece::npos); 283 ASSERT_EQ(d.find('x', 4), Piece::npos);
276 ASSERT_EQ(e.find('x', 7), StringPiece::npos); 284 ASSERT_EQ(e.find('x', 7), Piece::npos);
277 285
278 ASSERT_EQ(a.rfind(b), 0U); 286 ASSERT_EQ(a.rfind(b), 0U);
279 ASSERT_EQ(a.rfind(b, 1), 0U); 287 ASSERT_EQ(a.rfind(b, 1), 0U);
280 ASSERT_EQ(a.rfind(c), 23U); 288 ASSERT_EQ(a.rfind(c), 23U);
281 ASSERT_EQ(a.rfind(c, 22U), StringPiece::npos); 289 ASSERT_EQ(a.rfind(c, 22U), Piece::npos);
282 ASSERT_EQ(a.rfind(c, 1U), StringPiece::npos); 290 ASSERT_EQ(a.rfind(c, 1U), Piece::npos);
283 ASSERT_EQ(a.rfind(c, 0U), StringPiece::npos); 291 ASSERT_EQ(a.rfind(c, 0U), Piece::npos);
284 ASSERT_EQ(b.rfind(c), StringPiece::npos); 292 ASSERT_EQ(b.rfind(c), Piece::npos);
285 ASSERT_EQ(b.rfind(c, 0U), StringPiece::npos); 293 ASSERT_EQ(b.rfind(c, 0U), Piece::npos);
286 ASSERT_EQ(a.rfind(d), (size_t) a.as_string().rfind(std::string())); 294 ASSERT_EQ(a.rfind(d), static_cast<size_t>(a.as_string().rfind(TypeParam())));
287 ASSERT_EQ(a.rfind(e), a.as_string().rfind(std::string())); 295 ASSERT_EQ(a.rfind(e), a.as_string().rfind(TypeParam()));
288 ASSERT_EQ(a.rfind(d, 12), 12U); 296 ASSERT_EQ(a.rfind(d, 12), 12U);
289 ASSERT_EQ(a.rfind(e, 17), 17U); 297 ASSERT_EQ(a.rfind(e, 17), 17U);
290 ASSERT_EQ(a.rfind(g), StringPiece::npos); 298 ASSERT_EQ(a.rfind(g), Piece::npos);
291 ASSERT_EQ(d.rfind(b), StringPiece::npos); 299 ASSERT_EQ(d.rfind(b), Piece::npos);
292 ASSERT_EQ(e.rfind(b), StringPiece::npos); 300 ASSERT_EQ(e.rfind(b), Piece::npos);
293 ASSERT_EQ(d.rfind(b, 4), StringPiece::npos); 301 ASSERT_EQ(d.rfind(b, 4), Piece::npos);
294 ASSERT_EQ(e.rfind(b, 7), StringPiece::npos); 302 ASSERT_EQ(e.rfind(b, 7), Piece::npos);
295 // empty string nonsense 303 // empty string nonsense
296 ASSERT_EQ(d.rfind(d, 4), std::string().rfind(std::string())); 304 ASSERT_EQ(d.rfind(d, 4), std::string().rfind(std::string()));
297 ASSERT_EQ(e.rfind(d, 7), std::string().rfind(std::string())); 305 ASSERT_EQ(e.rfind(d, 7), std::string().rfind(std::string()));
298 ASSERT_EQ(d.rfind(e, 4), std::string().rfind(std::string())); 306 ASSERT_EQ(d.rfind(e, 4), std::string().rfind(std::string()));
299 ASSERT_EQ(e.rfind(e, 7), std::string().rfind(std::string())); 307 ASSERT_EQ(e.rfind(e, 7), std::string().rfind(std::string()));
300 ASSERT_EQ(d.rfind(d), std::string().rfind(std::string())); 308 ASSERT_EQ(d.rfind(d), std::string().rfind(std::string()));
301 ASSERT_EQ(e.rfind(d), std::string().rfind(std::string())); 309 ASSERT_EQ(e.rfind(d), std::string().rfind(std::string()));
302 ASSERT_EQ(d.rfind(e), std::string().rfind(std::string())); 310 ASSERT_EQ(d.rfind(e), std::string().rfind(std::string()));
303 ASSERT_EQ(e.rfind(e), std::string().rfind(std::string())); 311 ASSERT_EQ(e.rfind(e), std::string().rfind(std::string()));
304 312
305 ASSERT_EQ(g.rfind('o'), 8U); 313 ASSERT_EQ(g.rfind('o'), 8U);
306 ASSERT_EQ(g.rfind('q'), StringPiece::npos); 314 ASSERT_EQ(g.rfind('q'), Piece::npos);
307 ASSERT_EQ(g.rfind('o', 8), 8U); 315 ASSERT_EQ(g.rfind('o', 8), 8U);
308 ASSERT_EQ(g.rfind('o', 7), 4U); 316 ASSERT_EQ(g.rfind('o', 7), 4U);
309 ASSERT_EQ(g.rfind('o', 3), StringPiece::npos); 317 ASSERT_EQ(g.rfind('o', 3), Piece::npos);
310 ASSERT_EQ(f.rfind('\0'), 3U); 318 ASSERT_EQ(f.rfind('\0'), 3U);
311 ASSERT_EQ(f.rfind('\0', 12), 3U); 319 ASSERT_EQ(f.rfind('\0', 12), 3U);
312 ASSERT_EQ(f.rfind('3'), 2U); 320 ASSERT_EQ(f.rfind('3'), 2U);
313 ASSERT_EQ(f.rfind('5'), 5U); 321 ASSERT_EQ(f.rfind('5'), 5U);
314 // empty string nonsense 322 // empty string nonsense
315 ASSERT_EQ(d.rfind('o'), StringPiece::npos); 323 ASSERT_EQ(d.rfind('o'), Piece::npos);
316 ASSERT_EQ(e.rfind('o'), StringPiece::npos); 324 ASSERT_EQ(e.rfind('o'), Piece::npos);
317 ASSERT_EQ(d.rfind('o', 4), StringPiece::npos); 325 ASSERT_EQ(d.rfind('o', 4), Piece::npos);
318 ASSERT_EQ(e.rfind('o', 7), StringPiece::npos); 326 ASSERT_EQ(e.rfind('o', 7), Piece::npos);
319 327
320 ASSERT_EQ( 328 TypeParam one_two_three_four(TestFixture::as_string("one,two:three;four"));
321 StringPiece("one,two:three;four").find_first_of(StringPiece(",:"), 1), 329 TypeParam comma_colon(TestFixture::as_string(",:"));
322 3U); 330 ASSERT_EQ(3U, Piece(one_two_three_four).find_first_of(comma_colon));
323 ASSERT_EQ(a.find_first_of(b), 0U); 331 ASSERT_EQ(a.find_first_of(b), 0U);
324 ASSERT_EQ(a.find_first_of(b, 0), 0U); 332 ASSERT_EQ(a.find_first_of(b, 0), 0U);
325 ASSERT_EQ(a.find_first_of(b, 1), 1U); 333 ASSERT_EQ(a.find_first_of(b, 1), 1U);
326 ASSERT_EQ(a.find_first_of(b, 2), 2U); 334 ASSERT_EQ(a.find_first_of(b, 2), 2U);
327 ASSERT_EQ(a.find_first_of(b, 3), StringPiece::npos); 335 ASSERT_EQ(a.find_first_of(b, 3), Piece::npos);
328 ASSERT_EQ(a.find_first_of(c), 23U); 336 ASSERT_EQ(a.find_first_of(c), 23U);
329 ASSERT_EQ(a.find_first_of(c, 23), 23U); 337 ASSERT_EQ(a.find_first_of(c, 23), 23U);
330 ASSERT_EQ(a.find_first_of(c, 24), 24U); 338 ASSERT_EQ(a.find_first_of(c, 24), 24U);
331 ASSERT_EQ(a.find_first_of(c, 25), 25U); 339 ASSERT_EQ(a.find_first_of(c, 25), 25U);
332 ASSERT_EQ(a.find_first_of(c, 26), StringPiece::npos); 340 ASSERT_EQ(a.find_first_of(c, 26), Piece::npos);
333 ASSERT_EQ(g.find_first_of(b), 13U); 341 ASSERT_EQ(g.find_first_of(b), 13U);
334 ASSERT_EQ(g.find_first_of(c), 0U); 342 ASSERT_EQ(g.find_first_of(c), 0U);
335 ASSERT_EQ(a.find_first_of(f), StringPiece::npos); 343 ASSERT_EQ(a.find_first_of(f), Piece::npos);
336 ASSERT_EQ(f.find_first_of(a), StringPiece::npos); 344 ASSERT_EQ(f.find_first_of(a), Piece::npos);
337 // empty string nonsense 345 // empty string nonsense
338 ASSERT_EQ(a.find_first_of(d), StringPiece::npos); 346 ASSERT_EQ(a.find_first_of(d), Piece::npos);
339 ASSERT_EQ(a.find_first_of(e), StringPiece::npos); 347 ASSERT_EQ(a.find_first_of(e), Piece::npos);
340 ASSERT_EQ(d.find_first_of(b), StringPiece::npos); 348 ASSERT_EQ(d.find_first_of(b), Piece::npos);
341 ASSERT_EQ(e.find_first_of(b), StringPiece::npos); 349 ASSERT_EQ(e.find_first_of(b), Piece::npos);
342 ASSERT_EQ(d.find_first_of(d), StringPiece::npos); 350 ASSERT_EQ(d.find_first_of(d), Piece::npos);
343 ASSERT_EQ(e.find_first_of(d), StringPiece::npos); 351 ASSERT_EQ(e.find_first_of(d), Piece::npos);
344 ASSERT_EQ(d.find_first_of(e), StringPiece::npos); 352 ASSERT_EQ(d.find_first_of(e), Piece::npos);
345 ASSERT_EQ(e.find_first_of(e), StringPiece::npos); 353 ASSERT_EQ(e.find_first_of(e), Piece::npos);
346 354
347 ASSERT_EQ(a.find_first_not_of(b), 3U); 355 ASSERT_EQ(a.find_first_not_of(b), 3U);
348 ASSERT_EQ(a.find_first_not_of(c), 0U); 356 ASSERT_EQ(a.find_first_not_of(c), 0U);
349 ASSERT_EQ(b.find_first_not_of(a), StringPiece::npos); 357 ASSERT_EQ(b.find_first_not_of(a), Piece::npos);
350 ASSERT_EQ(c.find_first_not_of(a), StringPiece::npos); 358 ASSERT_EQ(c.find_first_not_of(a), Piece::npos);
351 ASSERT_EQ(f.find_first_not_of(a), 0U); 359 ASSERT_EQ(f.find_first_not_of(a), 0U);
352 ASSERT_EQ(a.find_first_not_of(f), 0U); 360 ASSERT_EQ(a.find_first_not_of(f), 0U);
353 ASSERT_EQ(a.find_first_not_of(d), 0U); 361 ASSERT_EQ(a.find_first_not_of(d), 0U);
354 ASSERT_EQ(a.find_first_not_of(e), 0U); 362 ASSERT_EQ(a.find_first_not_of(e), 0U);
355 // empty string nonsense 363 // empty string nonsense
356 ASSERT_EQ(d.find_first_not_of(a), StringPiece::npos); 364 ASSERT_EQ(d.find_first_not_of(a), Piece::npos);
357 ASSERT_EQ(e.find_first_not_of(a), StringPiece::npos); 365 ASSERT_EQ(e.find_first_not_of(a), Piece::npos);
358 ASSERT_EQ(d.find_first_not_of(d), StringPiece::npos); 366 ASSERT_EQ(d.find_first_not_of(d), Piece::npos);
359 ASSERT_EQ(e.find_first_not_of(d), StringPiece::npos); 367 ASSERT_EQ(e.find_first_not_of(d), Piece::npos);
360 ASSERT_EQ(d.find_first_not_of(e), StringPiece::npos); 368 ASSERT_EQ(d.find_first_not_of(e), Piece::npos);
361 ASSERT_EQ(e.find_first_not_of(e), StringPiece::npos); 369 ASSERT_EQ(e.find_first_not_of(e), Piece::npos);
362 370
363 StringPiece h("===="); 371 TypeParam equals(TestFixture::as_string("===="));
364 ASSERT_EQ(h.find_first_not_of('='), StringPiece::npos); 372 Piece h(equals);
365 ASSERT_EQ(h.find_first_not_of('=', 3), StringPiece::npos); 373 ASSERT_EQ(h.find_first_not_of('='), Piece::npos);
374 ASSERT_EQ(h.find_first_not_of('=', 3), Piece::npos);
366 ASSERT_EQ(h.find_first_not_of('\0'), 0U); 375 ASSERT_EQ(h.find_first_not_of('\0'), 0U);
367 ASSERT_EQ(g.find_first_not_of('x'), 2U); 376 ASSERT_EQ(g.find_first_not_of('x'), 2U);
368 ASSERT_EQ(f.find_first_not_of('\0'), 0U); 377 ASSERT_EQ(f.find_first_not_of('\0'), 0U);
369 ASSERT_EQ(f.find_first_not_of('\0', 3), 4U); 378 ASSERT_EQ(f.find_first_not_of('\0', 3), 4U);
370 ASSERT_EQ(f.find_first_not_of('\0', 2), 2U); 379 ASSERT_EQ(f.find_first_not_of('\0', 2), 2U);
371 // empty string nonsense 380 // empty string nonsense
372 ASSERT_EQ(d.find_first_not_of('x'), StringPiece::npos); 381 ASSERT_EQ(d.find_first_not_of('x'), Piece::npos);
373 ASSERT_EQ(e.find_first_not_of('x'), StringPiece::npos); 382 ASSERT_EQ(e.find_first_not_of('x'), Piece::npos);
374 ASSERT_EQ(d.find_first_not_of('\0'), StringPiece::npos); 383 ASSERT_EQ(d.find_first_not_of('\0'), Piece::npos);
375 ASSERT_EQ(e.find_first_not_of('\0'), StringPiece::npos); 384 ASSERT_EQ(e.find_first_not_of('\0'), Piece::npos);
376 385
377 // StringPiece g("xx not found bb"); 386 // Piece g("xx not found bb");
378 StringPiece i("56"); 387 TypeParam fifty_six(TestFixture::as_string("56"));
379 ASSERT_EQ(h.find_last_of(a), StringPiece::npos); 388 Piece i(fifty_six);
389 ASSERT_EQ(h.find_last_of(a), Piece::npos);
380 ASSERT_EQ(g.find_last_of(a), g.size()-1); 390 ASSERT_EQ(g.find_last_of(a), g.size()-1);
381 ASSERT_EQ(a.find_last_of(b), 2U); 391 ASSERT_EQ(a.find_last_of(b), 2U);
382 ASSERT_EQ(a.find_last_of(c), a.size()-1); 392 ASSERT_EQ(a.find_last_of(c), a.size()-1);
383 ASSERT_EQ(f.find_last_of(i), 6U); 393 ASSERT_EQ(f.find_last_of(i), 6U);
384 ASSERT_EQ(a.find_last_of('a'), 0U); 394 ASSERT_EQ(a.find_last_of('a'), 0U);
385 ASSERT_EQ(a.find_last_of('b'), 1U); 395 ASSERT_EQ(a.find_last_of('b'), 1U);
386 ASSERT_EQ(a.find_last_of('z'), 25U); 396 ASSERT_EQ(a.find_last_of('z'), 25U);
387 ASSERT_EQ(a.find_last_of('a', 5), 0U); 397 ASSERT_EQ(a.find_last_of('a', 5), 0U);
388 ASSERT_EQ(a.find_last_of('b', 5), 1U); 398 ASSERT_EQ(a.find_last_of('b', 5), 1U);
389 ASSERT_EQ(a.find_last_of('b', 0), StringPiece::npos); 399 ASSERT_EQ(a.find_last_of('b', 0), Piece::npos);
390 ASSERT_EQ(a.find_last_of('z', 25), 25U); 400 ASSERT_EQ(a.find_last_of('z', 25), 25U);
391 ASSERT_EQ(a.find_last_of('z', 24), StringPiece::npos); 401 ASSERT_EQ(a.find_last_of('z', 24), Piece::npos);
392 ASSERT_EQ(f.find_last_of(i, 5), 5U); 402 ASSERT_EQ(f.find_last_of(i, 5), 5U);
393 ASSERT_EQ(f.find_last_of(i, 6), 6U); 403 ASSERT_EQ(f.find_last_of(i, 6), 6U);
394 ASSERT_EQ(f.find_last_of(a, 4), StringPiece::npos); 404 ASSERT_EQ(f.find_last_of(a, 4), Piece::npos);
395 // empty string nonsense 405 // empty string nonsense
396 ASSERT_EQ(f.find_last_of(d), StringPiece::npos); 406 ASSERT_EQ(f.find_last_of(d), Piece::npos);
397 ASSERT_EQ(f.find_last_of(e), StringPiece::npos); 407 ASSERT_EQ(f.find_last_of(e), Piece::npos);
398 ASSERT_EQ(f.find_last_of(d, 4), StringPiece::npos); 408 ASSERT_EQ(f.find_last_of(d, 4), Piece::npos);
399 ASSERT_EQ(f.find_last_of(e, 4), StringPiece::npos); 409 ASSERT_EQ(f.find_last_of(e, 4), Piece::npos);
400 ASSERT_EQ(d.find_last_of(d), StringPiece::npos); 410 ASSERT_EQ(d.find_last_of(d), Piece::npos);
401 ASSERT_EQ(d.find_last_of(e), StringPiece::npos); 411 ASSERT_EQ(d.find_last_of(e), Piece::npos);
402 ASSERT_EQ(e.find_last_of(d), StringPiece::npos); 412 ASSERT_EQ(e.find_last_of(d), Piece::npos);
403 ASSERT_EQ(e.find_last_of(e), StringPiece::npos); 413 ASSERT_EQ(e.find_last_of(e), Piece::npos);
404 ASSERT_EQ(d.find_last_of(f), StringPiece::npos); 414 ASSERT_EQ(d.find_last_of(f), Piece::npos);
405 ASSERT_EQ(e.find_last_of(f), StringPiece::npos); 415 ASSERT_EQ(e.find_last_of(f), Piece::npos);
406 ASSERT_EQ(d.find_last_of(d, 4), StringPiece::npos); 416 ASSERT_EQ(d.find_last_of(d, 4), Piece::npos);
407 ASSERT_EQ(d.find_last_of(e, 4), StringPiece::npos); 417 ASSERT_EQ(d.find_last_of(e, 4), Piece::npos);
408 ASSERT_EQ(e.find_last_of(d, 4), StringPiece::npos); 418 ASSERT_EQ(e.find_last_of(d, 4), Piece::npos);
409 ASSERT_EQ(e.find_last_of(e, 4), StringPiece::npos); 419 ASSERT_EQ(e.find_last_of(e, 4), Piece::npos);
410 ASSERT_EQ(d.find_last_of(f, 4), StringPiece::npos); 420 ASSERT_EQ(d.find_last_of(f, 4), Piece::npos);
411 ASSERT_EQ(e.find_last_of(f, 4), StringPiece::npos); 421 ASSERT_EQ(e.find_last_of(f, 4), Piece::npos);
412 422
413 ASSERT_EQ(a.find_last_not_of(b), a.size()-1); 423 ASSERT_EQ(a.find_last_not_of(b), a.size()-1);
414 ASSERT_EQ(a.find_last_not_of(c), 22U); 424 ASSERT_EQ(a.find_last_not_of(c), 22U);
415 ASSERT_EQ(b.find_last_not_of(a), StringPiece::npos); 425 ASSERT_EQ(b.find_last_not_of(a), Piece::npos);
416 ASSERT_EQ(b.find_last_not_of(b), StringPiece::npos); 426 ASSERT_EQ(b.find_last_not_of(b), Piece::npos);
417 ASSERT_EQ(f.find_last_not_of(i), 4U); 427 ASSERT_EQ(f.find_last_not_of(i), 4U);
418 ASSERT_EQ(a.find_last_not_of(c, 24), 22U); 428 ASSERT_EQ(a.find_last_not_of(c, 24), 22U);
419 ASSERT_EQ(a.find_last_not_of(b, 3), 3U); 429 ASSERT_EQ(a.find_last_not_of(b, 3), 3U);
420 ASSERT_EQ(a.find_last_not_of(b, 2), StringPiece::npos); 430 ASSERT_EQ(a.find_last_not_of(b, 2), Piece::npos);
421 // empty string nonsense 431 // empty string nonsense
422 ASSERT_EQ(f.find_last_not_of(d), f.size()-1); 432 ASSERT_EQ(f.find_last_not_of(d), f.size()-1);
423 ASSERT_EQ(f.find_last_not_of(e), f.size()-1); 433 ASSERT_EQ(f.find_last_not_of(e), f.size()-1);
424 ASSERT_EQ(f.find_last_not_of(d, 4), 4U); 434 ASSERT_EQ(f.find_last_not_of(d, 4), 4U);
425 ASSERT_EQ(f.find_last_not_of(e, 4), 4U); 435 ASSERT_EQ(f.find_last_not_of(e, 4), 4U);
426 ASSERT_EQ(d.find_last_not_of(d), StringPiece::npos); 436 ASSERT_EQ(d.find_last_not_of(d), Piece::npos);
427 ASSERT_EQ(d.find_last_not_of(e), StringPiece::npos); 437 ASSERT_EQ(d.find_last_not_of(e), Piece::npos);
428 ASSERT_EQ(e.find_last_not_of(d), StringPiece::npos); 438 ASSERT_EQ(e.find_last_not_of(d), Piece::npos);
429 ASSERT_EQ(e.find_last_not_of(e), StringPiece::npos); 439 ASSERT_EQ(e.find_last_not_of(e), Piece::npos);
430 ASSERT_EQ(d.find_last_not_of(f), StringPiece::npos); 440 ASSERT_EQ(d.find_last_not_of(f), Piece::npos);
431 ASSERT_EQ(e.find_last_not_of(f), StringPiece::npos); 441 ASSERT_EQ(e.find_last_not_of(f), Piece::npos);
432 ASSERT_EQ(d.find_last_not_of(d, 4), StringPiece::npos); 442 ASSERT_EQ(d.find_last_not_of(d, 4), Piece::npos);
433 ASSERT_EQ(d.find_last_not_of(e, 4), StringPiece::npos); 443 ASSERT_EQ(d.find_last_not_of(e, 4), Piece::npos);
434 ASSERT_EQ(e.find_last_not_of(d, 4), StringPiece::npos); 444 ASSERT_EQ(e.find_last_not_of(d, 4), Piece::npos);
435 ASSERT_EQ(e.find_last_not_of(e, 4), StringPiece::npos); 445 ASSERT_EQ(e.find_last_not_of(e, 4), Piece::npos);
436 ASSERT_EQ(d.find_last_not_of(f, 4), StringPiece::npos); 446 ASSERT_EQ(d.find_last_not_of(f, 4), Piece::npos);
437 ASSERT_EQ(e.find_last_not_of(f, 4), StringPiece::npos); 447 ASSERT_EQ(e.find_last_not_of(f, 4), Piece::npos);
438 448
439 ASSERT_EQ(h.find_last_not_of('x'), h.size() - 1); 449 ASSERT_EQ(h.find_last_not_of('x'), h.size() - 1);
440 ASSERT_EQ(h.find_last_not_of('='), StringPiece::npos); 450 ASSERT_EQ(h.find_last_not_of('='), Piece::npos);
441 ASSERT_EQ(b.find_last_not_of('c'), 1U); 451 ASSERT_EQ(b.find_last_not_of('c'), 1U);
442 ASSERT_EQ(h.find_last_not_of('x', 2), 2U); 452 ASSERT_EQ(h.find_last_not_of('x', 2), 2U);
443 ASSERT_EQ(h.find_last_not_of('=', 2), StringPiece::npos); 453 ASSERT_EQ(h.find_last_not_of('=', 2), Piece::npos);
444 ASSERT_EQ(b.find_last_not_of('b', 1), 0U); 454 ASSERT_EQ(b.find_last_not_of('b', 1), 0U);
445 // empty string nonsense 455 // empty string nonsense
446 ASSERT_EQ(d.find_last_not_of('x'), StringPiece::npos); 456 ASSERT_EQ(d.find_last_not_of('x'), Piece::npos);
447 ASSERT_EQ(e.find_last_not_of('x'), StringPiece::npos); 457 ASSERT_EQ(e.find_last_not_of('x'), Piece::npos);
448 ASSERT_EQ(d.find_last_not_of('\0'), StringPiece::npos); 458 ASSERT_EQ(d.find_last_not_of('\0'), Piece::npos);
449 ASSERT_EQ(e.find_last_not_of('\0'), StringPiece::npos); 459 ASSERT_EQ(e.find_last_not_of('\0'), Piece::npos);
450 460
451 ASSERT_EQ(a.substr(0, 3), b); 461 ASSERT_EQ(a.substr(0, 3), b);
452 ASSERT_EQ(a.substr(23), c); 462 ASSERT_EQ(a.substr(23), c);
453 ASSERT_EQ(a.substr(23, 3), c); 463 ASSERT_EQ(a.substr(23, 3), c);
454 ASSERT_EQ(a.substr(23, 99), c); 464 ASSERT_EQ(a.substr(23, 99), c);
455 ASSERT_EQ(a.substr(0), a); 465 ASSERT_EQ(a.substr(0), a);
456 ASSERT_EQ(a.substr(3, 2), "de"); 466 ASSERT_EQ(a.substr(3, 2), TestFixture::as_string("de"));
457 // empty string nonsense 467 // empty string nonsense
458 ASSERT_EQ(a.substr(99, 2), e); 468 ASSERT_EQ(a.substr(99, 2), e);
459 ASSERT_EQ(d.substr(99), e); 469 ASSERT_EQ(d.substr(99), e);
460 ASSERT_EQ(d.substr(0, 99), e); 470 ASSERT_EQ(d.substr(0, 99), e);
461 ASSERT_EQ(d.substr(99, 99), e); 471 ASSERT_EQ(d.substr(99, 99), e);
462 } 472 }
463 473
464 TYPED_TEST(CommonStringPieceTest, CheckCustom) { 474 TYPED_TEST(CommonStringPieceTest, CheckCustom) {
465 TypeParam foobar(TestFixture::as_string("foobar")); 475 TypeParam foobar(TestFixture::as_string("foobar"));
466 BasicStringPiece<TypeParam> a(foobar); 476 BasicStringPiece<TypeParam> a(foobar);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 ASSERT_TRUE(a.ends_with(e)); 564 ASSERT_TRUE(a.ends_with(e));
555 ASSERT_TRUE(b.ends_with(s1)); 565 ASSERT_TRUE(b.ends_with(s1));
556 ASSERT_TRUE(b.ends_with(b)); 566 ASSERT_TRUE(b.ends_with(b));
557 ASSERT_TRUE(b.ends_with(e)); 567 ASSERT_TRUE(b.ends_with(e));
558 ASSERT_TRUE(e.ends_with("")); 568 ASSERT_TRUE(e.ends_with(""));
559 ASSERT_TRUE(!a.ends_with(b)); 569 ASSERT_TRUE(!a.ends_with(b));
560 ASSERT_TRUE(!b.ends_with(a)); 570 ASSERT_TRUE(!b.ends_with(a));
561 ASSERT_TRUE(!e.ends_with(a)); 571 ASSERT_TRUE(!e.ends_with(a));
562 572
563 StringPiece c; 573 StringPiece c;
564 c.set(static_cast<const void*>("foobar"), 6); 574 c.set("foobar", 6);
565 ASSERT_EQ(c, a); 575 ASSERT_EQ(c, a);
566 c.set(static_cast<const void*>("foobar"), 0); 576 c.set("foobar", 0);
567 ASSERT_EQ(c, e); 577 ASSERT_EQ(c, e);
568 c.set(static_cast<const void*>("foobar"), 7); 578 c.set("foobar", 7);
569 ASSERT_NE(c, a); 579 ASSERT_NE(c, a);
570 } 580 }
571 581
572 TYPED_TEST(CommonStringPieceTest, CheckNULL) { 582 TYPED_TEST(CommonStringPieceTest, CheckNULL) {
573 // we used to crash here, but now we don't. 583 // we used to crash here, but now we don't.
574 BasicStringPiece<TypeParam> s(NULL); 584 BasicStringPiece<TypeParam> s(NULL);
575 ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL); 585 ASSERT_EQ(s.data(), (const typename TypeParam::value_type*)NULL);
576 ASSERT_EQ(s.size(), 0U); 586 ASSERT_EQ(s.size(), 0U);
577 587
578 s.set(NULL); 588 s.set(NULL);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL)); 678 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL));
669 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL, 0U)); 679 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(NULL, 0U));
670 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>()); 680 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>());
671 ASSERT_TRUE(str == BasicStringPiece<TypeParam>(str.begin(), str.end())); 681 ASSERT_TRUE(str == BasicStringPiece<TypeParam>(str.begin(), str.end()));
672 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(str.begin(), str.begin())); 682 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(str.begin(), str.begin()));
673 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty)); 683 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty));
674 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty.begin(), empty.end())); 684 ASSERT_TRUE(empty == BasicStringPiece<TypeParam>(empty.begin(), empty.end()));
675 } 685 }
676 686
677 } // namespace base 687 } // namespace base
OLDNEW
« no previous file with comments | « base/strings/string_piece.cc ('k') | net/websockets/websocket_basic_handshake_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698