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