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

Side by Side Diff: runtime/vm/uri_test.cc

Issue 2481873005: clang-format runtime/vm (Closed)
Patch Set: Merge Created 4 years, 1 month 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
« no previous file with comments | « runtime/vm/uri.cc ('k') | runtime/vm/verifier.h » ('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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/uri.h" 5 #include "vm/uri.h"
6 #include "vm/unit_test.h" 6 #include "vm/unit_test.h"
7 7
8 namespace dart { 8 namespace dart {
9 9
10 TEST_CASE(ParseUri_WithScheme_NoQueryNoUser) { 10 TEST_CASE(ParseUri_WithScheme_NoQueryNoUser) {
(...skipping 30 matching lines...) Expand all
41 EXPECT_STREQ("example.com", uri.host); 41 EXPECT_STREQ("example.com", uri.host);
42 EXPECT_STREQ("8042", uri.port); 42 EXPECT_STREQ("8042", uri.port);
43 EXPECT_STREQ("/over/there", uri.path); 43 EXPECT_STREQ("/over/there", uri.path);
44 EXPECT(uri.query == NULL); 44 EXPECT(uri.query == NULL);
45 EXPECT_STREQ("fragment", uri.fragment); 45 EXPECT_STREQ("fragment", uri.fragment);
46 } 46 }
47 47
48 48
49 TEST_CASE(ParseUri_WithScheme_WithQueryWithFragment) { 49 TEST_CASE(ParseUri_WithScheme_WithQueryWithFragment) {
50 ParsedUri uri; 50 ParsedUri uri;
51 EXPECT(ParseUri("foo://example.com:8042/over/there?name=ferret#fragment", 51 EXPECT(
52 &uri)); 52 ParseUri("foo://example.com:8042/over/there?name=ferret#fragment", &uri));
53 EXPECT_STREQ("foo", uri.scheme); 53 EXPECT_STREQ("foo", uri.scheme);
54 EXPECT(uri.userinfo == NULL); 54 EXPECT(uri.userinfo == NULL);
55 EXPECT_STREQ("example.com", uri.host); 55 EXPECT_STREQ("example.com", uri.host);
56 EXPECT_STREQ("8042", uri.port); 56 EXPECT_STREQ("8042", uri.port);
57 EXPECT_STREQ("/over/there", uri.path); 57 EXPECT_STREQ("/over/there", uri.path);
58 EXPECT_STREQ("name=ferret", uri.query); 58 EXPECT_STREQ("name=ferret", uri.query);
59 EXPECT_STREQ("fragment", uri.fragment); 59 EXPECT_STREQ("fragment", uri.fragment);
60 } 60 }
61 61
62 62
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 EXPECT(uri.host == NULL); 237 EXPECT(uri.host == NULL);
238 EXPECT(uri.port == NULL); 238 EXPECT(uri.port == NULL);
239 EXPECT_STREQ("path", uri.path); 239 EXPECT_STREQ("path", uri.path);
240 EXPECT(uri.query == NULL); 240 EXPECT(uri.query == NULL);
241 EXPECT(uri.fragment == NULL); 241 EXPECT(uri.fragment == NULL);
242 } 242 }
243 243
244 244
245 TEST_CASE(ParseUri_NormalizeEscapes_PathQueryFragment) { 245 TEST_CASE(ParseUri_NormalizeEscapes_PathQueryFragment) {
246 ParsedUri uri; 246 ParsedUri uri;
247 EXPECT(ParseUri( 247 EXPECT(ParseUri("scheme:/This%09Is A P%61th?This%09Is A Qu%65ry#A Fr%61gment",
248 "scheme:/This%09Is A P%61th?This%09Is A Qu%65ry#A Fr%61gment", &uri)); 248 &uri));
249 EXPECT_STREQ("scheme", uri.scheme); 249 EXPECT_STREQ("scheme", uri.scheme);
250 EXPECT(uri.userinfo == NULL); 250 EXPECT(uri.userinfo == NULL);
251 EXPECT(uri.host == NULL); 251 EXPECT(uri.host == NULL);
252 EXPECT(uri.port == NULL); 252 EXPECT(uri.port == NULL);
253 EXPECT_STREQ("/This%09Is%20A%20Path", uri.path); 253 EXPECT_STREQ("/This%09Is%20A%20Path", uri.path);
254 EXPECT_STREQ("This%09Is%20A%20Query", uri.query); 254 EXPECT_STREQ("This%09Is%20A%20Query", uri.query);
255 EXPECT_STREQ("A%20Fragment", uri.fragment); 255 EXPECT_STREQ("A%20Fragment", uri.fragment);
256 } 256 }
257 257
258 258
259 TEST_CASE(ParseUri_NormalizeEscapes_UppercaseEscapesPreferred) { 259 TEST_CASE(ParseUri_NormalizeEscapes_UppercaseEscapesPreferred) {
260 ParsedUri uri; 260 ParsedUri uri;
261 EXPECT(ParseUri( 261 EXPECT(ParseUri("scheme:/%1b%1B", &uri));
262 "scheme:/%1b%1B", &uri));
263 EXPECT_STREQ("scheme", uri.scheme); 262 EXPECT_STREQ("scheme", uri.scheme);
264 EXPECT(uri.userinfo == NULL); 263 EXPECT(uri.userinfo == NULL);
265 EXPECT(uri.host == NULL); 264 EXPECT(uri.host == NULL);
266 EXPECT(uri.port == NULL); 265 EXPECT(uri.port == NULL);
267 EXPECT_STREQ("/%1B%1B", uri.path); 266 EXPECT_STREQ("/%1B%1B", uri.path);
268 EXPECT(uri.query == NULL); 267 EXPECT(uri.query == NULL);
269 EXPECT(uri.fragment == NULL); 268 EXPECT(uri.fragment == NULL);
270 } 269 }
271 270
272 271
273 TEST_CASE(ParseUri_NormalizeEscapes_Authority) { 272 TEST_CASE(ParseUri_NormalizeEscapes_Authority) {
274 ParsedUri uri; 273 ParsedUri uri;
275 EXPECT(ParseUri( 274 EXPECT(ParseUri("scheme://UsEr N%61%4de@h%4FsT.c%6fm:80/", &uri));
276 "scheme://UsEr N%61%4de@h%4FsT.c%6fm:80/", &uri));
277 EXPECT_STREQ("scheme", uri.scheme); 275 EXPECT_STREQ("scheme", uri.scheme);
278 EXPECT_STREQ("UsEr%20NaMe", uri.userinfo); // Normalized, case preserved. 276 EXPECT_STREQ("UsEr%20NaMe", uri.userinfo); // Normalized, case preserved.
279 EXPECT_STREQ("host.com", uri.host); // Normalized, lower-cased. 277 EXPECT_STREQ("host.com", uri.host); // Normalized, lower-cased.
280 EXPECT_STREQ("80", uri.port); 278 EXPECT_STREQ("80", uri.port);
281 EXPECT_STREQ("/", uri.path); 279 EXPECT_STREQ("/", uri.path);
282 EXPECT(uri.query == NULL); 280 EXPECT(uri.query == NULL);
283 EXPECT(uri.fragment == NULL); 281 EXPECT(uri.fragment == NULL);
284 } 282 }
285 283
286 284
287 TEST_CASE(ParseUri_NormalizeEscapes_UppercaseEscapeInHost) { 285 TEST_CASE(ParseUri_NormalizeEscapes_UppercaseEscapeInHost) {
288 ParsedUri uri; 286 ParsedUri uri;
289 EXPECT(ParseUri("scheme://tEst%1b/", &uri)); 287 EXPECT(ParseUri("scheme://tEst%1b/", &uri));
290 EXPECT_STREQ("scheme", uri.scheme); 288 EXPECT_STREQ("scheme", uri.scheme);
291 EXPECT(uri.userinfo == NULL); 289 EXPECT(uri.userinfo == NULL);
292 EXPECT_STREQ("test%1B", uri.host); // Notice that %1B is upper-cased. 290 EXPECT_STREQ("test%1B", uri.host); // Notice that %1B is upper-cased.
293 EXPECT(uri.port == NULL); 291 EXPECT(uri.port == NULL);
294 EXPECT_STREQ("/", uri.path); 292 EXPECT_STREQ("/", uri.path);
295 EXPECT(uri.query == NULL); 293 EXPECT(uri.query == NULL);
296 EXPECT(uri.fragment == NULL); 294 EXPECT(uri.fragment == NULL);
297 } 295 }
298 296
299 297
300 TEST_CASE(ParseUri_BrokenEscapeSequence) { 298 TEST_CASE(ParseUri_BrokenEscapeSequence) {
301 ParsedUri uri; 299 ParsedUri uri;
302 EXPECT(ParseUri( 300 EXPECT(ParseUri("scheme:/%1g", &uri));
303 "scheme:/%1g", &uri));
304 EXPECT_STREQ("scheme", uri.scheme); 301 EXPECT_STREQ("scheme", uri.scheme);
305 EXPECT(uri.userinfo == NULL); 302 EXPECT(uri.userinfo == NULL);
306 EXPECT(uri.host == NULL); 303 EXPECT(uri.host == NULL);
307 EXPECT(uri.port == NULL); 304 EXPECT(uri.port == NULL);
308 EXPECT_STREQ("/%1g", uri.path); // Broken sequence is unchanged. 305 EXPECT_STREQ("/%1g", uri.path); // Broken sequence is unchanged.
309 EXPECT(uri.query == NULL); 306 EXPECT(uri.query == NULL);
310 EXPECT(uri.fragment == NULL); 307 EXPECT(uri.fragment == NULL);
311 } 308 }
312 309
313 310
(...skipping 19 matching lines...) Expand all
333 const char* target_uri; 330 const char* target_uri;
334 EXPECT(ResolveUri("//ruser@rhost:22/ref/path", 331 EXPECT(ResolveUri("//ruser@rhost:22/ref/path",
335 "bscheme://buser@bhost:11/base/path?baseQuery", 332 "bscheme://buser@bhost:11/base/path?baseQuery",
336 &target_uri)); 333 &target_uri));
337 EXPECT_STREQ("bscheme://ruser@rhost:22/ref/path", target_uri); 334 EXPECT_STREQ("bscheme://ruser@rhost:22/ref/path", target_uri);
338 } 335 }
339 336
340 337
341 TEST_CASE(ResolveUri_NoSchemeNoAuthority_AbsolutePath) { 338 TEST_CASE(ResolveUri_NoSchemeNoAuthority_AbsolutePath) {
342 const char* target_uri; 339 const char* target_uri;
343 EXPECT(ResolveUri("/ref/path", 340 EXPECT(ResolveUri("/ref/path", "bscheme://buser@bhost:11/base/path?baseQuery",
344 "bscheme://buser@bhost:11/base/path?baseQuery",
345 &target_uri)); 341 &target_uri));
346 EXPECT_STREQ("bscheme://buser@bhost:11/ref/path", target_uri); 342 EXPECT_STREQ("bscheme://buser@bhost:11/ref/path", target_uri);
347 } 343 }
348 344
349 345
350 TEST_CASE(ResolveUri_NoSchemeNoAuthority_RelativePath) { 346 TEST_CASE(ResolveUri_NoSchemeNoAuthority_RelativePath) {
351 const char* target_uri; 347 const char* target_uri;
352 EXPECT(ResolveUri("ref/path", 348 EXPECT(ResolveUri("ref/path", "bscheme://buser@bhost:11/base/path?baseQuery",
353 "bscheme://buser@bhost:11/base/path?baseQuery",
354 &target_uri)); 349 &target_uri));
355 EXPECT_STREQ("bscheme://buser@bhost:11/base/ref/path", target_uri); 350 EXPECT_STREQ("bscheme://buser@bhost:11/base/ref/path", target_uri);
356 } 351 }
357 352
358 353
359 TEST_CASE(ResolveUri_NoSchemeNoAuthority_RelativePathEmptyBasePath) { 354 TEST_CASE(ResolveUri_NoSchemeNoAuthority_RelativePathEmptyBasePath) {
360 const char* target_uri; 355 const char* target_uri;
361 EXPECT(ResolveUri("ref/path", 356 EXPECT(ResolveUri("ref/path", "bscheme://buser@bhost:11", &target_uri));
362 "bscheme://buser@bhost:11",
363 &target_uri));
364 EXPECT_STREQ("bscheme://buser@bhost:11/ref/path", target_uri); 357 EXPECT_STREQ("bscheme://buser@bhost:11/ref/path", target_uri);
365 } 358 }
366 359
367 360
368 TEST_CASE(ResolveUri_NoSchemeNoAuthority_RelativePathWeirdBasePath) { 361 TEST_CASE(ResolveUri_NoSchemeNoAuthority_RelativePathWeirdBasePath) {
369 const char* target_uri; 362 const char* target_uri;
370 EXPECT(ResolveUri("ref/path", 363 EXPECT(ResolveUri("ref/path", "bscheme:base", &target_uri));
371 "bscheme:base",
372 &target_uri));
373 EXPECT_STREQ("bscheme:ref/path", target_uri); 364 EXPECT_STREQ("bscheme:ref/path", target_uri);
374 } 365 }
375 366
376 367
377 TEST_CASE(ResolveUri_NoSchemeNoAuthority_EmptyPath) { 368 TEST_CASE(ResolveUri_NoSchemeNoAuthority_EmptyPath) {
378 const char* target_uri; 369 const char* target_uri;
379 EXPECT(ResolveUri("", 370 EXPECT(ResolveUri("",
380 "bscheme://buser@bhost:11/base/path?baseQuery#bfragment", 371 "bscheme://buser@bhost:11/base/path?baseQuery#bfragment",
381 &target_uri)); 372 &target_uri));
382 // Note that we drop the base fragment from the resolved uri. 373 // Note that we drop the base fragment from the resolved uri.
(...skipping 15 matching lines...) Expand all
398 EXPECT(ResolveUri("#rfragment", 389 EXPECT(ResolveUri("#rfragment",
399 "bscheme://buser@bhost:11/base/path?baseQuery#bfragment", 390 "bscheme://buser@bhost:11/base/path?baseQuery#bfragment",
400 &target_uri)); 391 &target_uri));
401 EXPECT_STREQ("bscheme://buser@bhost:11/base/path?baseQuery#rfragment", 392 EXPECT_STREQ("bscheme://buser@bhost:11/base/path?baseQuery#rfragment",
402 target_uri); 393 target_uri);
403 } 394 }
404 395
405 396
406 TEST_CASE(ResolveUri_RemoveDots_RemoveOneDotSegment) { 397 TEST_CASE(ResolveUri_RemoveDots_RemoveOneDotSegment) {
407 const char* target_uri; 398 const char* target_uri;
408 EXPECT(ResolveUri("./refpath", 399 EXPECT(ResolveUri("./refpath", "scheme://auth/a/b/c/d", &target_uri));
409 "scheme://auth/a/b/c/d",
410 &target_uri));
411 EXPECT_STREQ("scheme://auth/a/b/c/refpath", target_uri); 400 EXPECT_STREQ("scheme://auth/a/b/c/refpath", target_uri);
412 } 401 }
413 402
414 403
415 TEST_CASE(ResolveUri_RemoveDots_RemoveTwoDotSegments) { 404 TEST_CASE(ResolveUri_RemoveDots_RemoveTwoDotSegments) {
416 const char* target_uri; 405 const char* target_uri;
417 EXPECT(ResolveUri("././refpath", 406 EXPECT(ResolveUri("././refpath", "scheme://auth/a/b/c/d", &target_uri));
418 "scheme://auth/a/b/c/d",
419 &target_uri));
420 EXPECT_STREQ("scheme://auth/a/b/c/refpath", target_uri); 407 EXPECT_STREQ("scheme://auth/a/b/c/refpath", target_uri);
421 } 408 }
422 409
423 410
424 TEST_CASE(ResolveUri_RemoveDots_RemoveOneDotDotSegment) { 411 TEST_CASE(ResolveUri_RemoveDots_RemoveOneDotDotSegment) {
425 const char* target_uri; 412 const char* target_uri;
426 EXPECT(ResolveUri("../refpath", 413 EXPECT(ResolveUri("../refpath", "scheme://auth/a/b/c/d", &target_uri));
427 "scheme://auth/a/b/c/d",
428 &target_uri));
429 EXPECT_STREQ("scheme://auth/a/b/refpath", target_uri); 414 EXPECT_STREQ("scheme://auth/a/b/refpath", target_uri);
430 } 415 }
431 416
432 417
433 TEST_CASE(ResolveUri_RemoveDots_RemoveTwoDotDotSegments) { 418 TEST_CASE(ResolveUri_RemoveDots_RemoveTwoDotDotSegments) {
434 const char* target_uri; 419 const char* target_uri;
435 EXPECT(ResolveUri("../../refpath", 420 EXPECT(ResolveUri("../../refpath", "scheme://auth/a/b/c/d", &target_uri));
436 "scheme://auth/a/b/c/d",
437 &target_uri));
438 EXPECT_STREQ("scheme://auth/a/refpath", target_uri); 421 EXPECT_STREQ("scheme://auth/a/refpath", target_uri);
439 } 422 }
440 423
441 424
442 TEST_CASE(ResolveUri_RemoveDots_RemoveTooManyDotDotSegments) { 425 TEST_CASE(ResolveUri_RemoveDots_RemoveTooManyDotDotSegments) {
443 const char* target_uri; 426 const char* target_uri;
444 EXPECT(ResolveUri("../../../../../../../../../refpath", 427 EXPECT(ResolveUri("../../../../../../../../../refpath",
445 "scheme://auth/a/b/c/d", 428 "scheme://auth/a/b/c/d", &target_uri));
446 &target_uri));
447 EXPECT_STREQ("scheme://auth/refpath", target_uri); 429 EXPECT_STREQ("scheme://auth/refpath", target_uri);
448 } 430 }
449 431
450 432
451 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsNothingLeft1) { 433 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsNothingLeft1) {
452 const char* target_uri; 434 const char* target_uri;
453 EXPECT(ResolveUri("../../../../..", 435 EXPECT(ResolveUri("../../../../..", "scheme://auth/a/b/c/d", &target_uri));
454 "scheme://auth/a/b/c/d",
455 &target_uri));
456 EXPECT_STREQ("scheme://auth/", target_uri); 436 EXPECT_STREQ("scheme://auth/", target_uri);
457 } 437 }
458 438
459 439
460
461 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsNothingLeft2) { 440 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsNothingLeft2) {
462 const char* target_uri; 441 const char* target_uri;
463 EXPECT(ResolveUri(".", 442 EXPECT(ResolveUri(".", "scheme://auth/", &target_uri));
464 "scheme://auth/",
465 &target_uri));
466 EXPECT_STREQ("scheme://auth/", target_uri); 443 EXPECT_STREQ("scheme://auth/", target_uri);
467 } 444 }
468 445
469 446
470
471 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsInitialPrefix) { 447 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsInitialPrefix) {
472 const char* target_uri; 448 const char* target_uri;
473 EXPECT(ResolveUri("../../../../refpath", 449 EXPECT(ResolveUri("../../../../refpath", "scheme://auth", &target_uri));
474 "scheme://auth",
475 &target_uri));
476 EXPECT_STREQ("scheme://auth/refpath", target_uri); 450 EXPECT_STREQ("scheme://auth/refpath", target_uri);
477 } 451 }
478 452
479 453
480
481 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsMixed) { 454 TEST_CASE(ResolveUri_RemoveDots_RemoveDotSegmentsMixed) {
482 const char* target_uri; 455 const char* target_uri;
483 EXPECT(ResolveUri("../../1/./2/../3/4/../5/././6/../7", 456 EXPECT(ResolveUri("../../1/./2/../3/4/../5/././6/../7",
484 "scheme://auth/a/b/c/d/e", 457 "scheme://auth/a/b/c/d/e", &target_uri));
485 &target_uri));
486 EXPECT_STREQ("scheme://auth/a/b/1/3/5/7", target_uri); 458 EXPECT_STREQ("scheme://auth/a/b/1/3/5/7", target_uri);
487 } 459 }
488 460
489 461
490 TEST_CASE(ResolveUri_NormalizeEscapes_PathQueryFragment) { 462 TEST_CASE(ResolveUri_NormalizeEscapes_PathQueryFragment) {
491 const char* target_uri; 463 const char* target_uri;
492 EXPECT(ResolveUri("#A Fr%61gment", 464 EXPECT(ResolveUri("#A Fr%61gment",
493 "scheme:/This%09Is A P%61th?This%09Is A Qu%65ry", 465 "scheme:/This%09Is A P%61th?This%09Is A Qu%65ry",
494 &target_uri)); 466 &target_uri));
495 EXPECT_STREQ( 467 EXPECT_STREQ(
496 "scheme:/This%09Is%20A%20Path?This%09Is%20A%20Query#A%20Fragment", 468 "scheme:/This%09Is%20A%20Path?This%09Is%20A%20Query#A%20Fragment",
497 target_uri); 469 target_uri);
498 } 470 }
499 471
500 472
501 TEST_CASE(ResolveUri_NormalizeEscapes_UppercaseHexPreferred) { 473 TEST_CASE(ResolveUri_NormalizeEscapes_UppercaseHexPreferred) {
502 const char* target_uri; 474 const char* target_uri;
503 EXPECT(ResolveUri("", 475 EXPECT(ResolveUri("", "scheme:/%1b%1B", &target_uri));
504 "scheme:/%1b%1B", 476 EXPECT_STREQ("scheme:/%1B%1B", target_uri);
505 &target_uri));
506 EXPECT_STREQ("scheme:/%1B%1B",
507 target_uri);
508 } 477 }
509 478
510 479
511 TEST_CASE(ResolveUri_NormalizeEscapes_Authority) { 480 TEST_CASE(ResolveUri_NormalizeEscapes_Authority) {
512 const char* target_uri; 481 const char* target_uri;
513 EXPECT(ResolveUri("", 482 EXPECT(
514 "scheme://UsEr N%61%4de@h%4FsT.c%6fm:80/", 483 ResolveUri("", "scheme://UsEr N%61%4de@h%4FsT.c%6fm:80/", &target_uri));
515 &target_uri));
516 // userinfo is normalized and case is preserved. host is normalized 484 // userinfo is normalized and case is preserved. host is normalized
517 // and lower-cased. 485 // and lower-cased.
518 EXPECT_STREQ("scheme://UsEr%20NaMe@host.com:80/", target_uri); 486 EXPECT_STREQ("scheme://UsEr%20NaMe@host.com:80/", target_uri);
519 } 487 }
520 488
521 489
522 TEST_CASE(ResolveUri_NormalizeEscapes_BrokenEscapeSequence) { 490 TEST_CASE(ResolveUri_NormalizeEscapes_BrokenEscapeSequence) {
523 const char* target_uri; 491 const char* target_uri;
524 EXPECT(ResolveUri("", 492 EXPECT(ResolveUri("", "scheme:/%1g", &target_uri));
525 "scheme:/%1g",
526 &target_uri));
527 // We don't change broken escape sequences. 493 // We don't change broken escape sequences.
528 EXPECT_STREQ("scheme:/%1g", 494 EXPECT_STREQ("scheme:/%1g", target_uri);
529 target_uri);
530 } 495 }
531 496
532 497
533 TEST_CASE(ResolveUri_DataUri) { 498 TEST_CASE(ResolveUri_DataUri) {
534 const char* data_uri = 499 const char* data_uri =
535 "data:application/dart;charset=utf-8,%20%20%20%20%20%20%20%20import%20%22d art:isolate%22;%0A%0A%20%20%20%20%20%20%20%20import%20%22package:stream_channel/ stream_channel.dart%22;%0A%0A%20%20%20%20%20%20%20%20import%20%22package:test/sr c/runner/plugin/remote_platform_helpers.dart%22;%0A%20%20%20%20%20%20%20%20impor t%20%22package:test/src/runner/vm/catch_isolate_errors.dart%22;%0A%0A%20%20%20%2 0%20%20%20%20import%20%22file:///home/sra/xxxx/dev_compiler/test/all_tests.dart% 22%20as%20test;%0A%0A%20%20%20%20%20%20%20%20void%20main(_,%20SendPort%20message )%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20channel%20=%20serializeSuite(()%20 %7B%0A%20%20%20%20%20%20%20%20%20%20%20%20catchIsolateErrors();%0A%20%20%20%20%2 0%20%20%20%20%20%20%20return%20test.main;%0A%20%20%20%20%20%20%20%20%20%20%7D);% 0A%20%20%20%20%20%20%20%20%20%20new%20IsolateChannel.connectSend(message).pipe(c hannel);%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20"; // NOLINT 500 "data:application/"
501 "dart;charset=utf-8,%20%20%20%20%20%20%20%20import%20%22dart:isolate%22;%"
502 "0A%0A%20%20%20%20%20%20%20%20import%20%22package:stream_channel/"
503 "stream_channel.dart%22;%0A%0A%20%20%20%20%20%20%20%20import%20%"
504 "22package:test/src/runner/plugin/"
505 "remote_platform_helpers.dart%22;%0A%20%20%20%20%20%20%20%20import%20%"
506 "22package:test/src/runner/vm/"
507 "catch_isolate_errors.dart%22;%0A%0A%20%20%20%20%20%20%20%20import%20%"
508 "22file:///home/sra/xxxx/dev_compiler/test/"
509 "all_tests.dart%22%20as%20test;%0A%0A%20%20%20%20%20%20%20%20void%20main("
510 "_,%20SendPort%20message)%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%"
511 "20channel%20=%20serializeSuite(()%20%7B%0A%20%20%20%20%20%20%20%20%20%"
512 "20%20%20catchIsolateErrors();%0A%20%20%20%20%20%20%20%20%20%20%20%"
513 "20return%20test.main;%0A%20%20%20%20%20%20%20%20%20%20%7D);%0A%20%20%20%"
514 "20%20%20%20%20%20%20new%20IsolateChannel.connectSend(message).pipe("
515 "channel);%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20";
536 516
537 const char* target_uri; 517 const char* target_uri;
538 EXPECT(ResolveUri(data_uri, 518 EXPECT(ResolveUri(data_uri,
539 "bscheme://buser@bhost:11/base/path?baseQuery#bfragment", 519 "bscheme://buser@bhost:11/base/path?baseQuery#bfragment",
540 &target_uri)); 520 &target_uri));
541 EXPECT_STREQ(data_uri, target_uri); 521 EXPECT_STREQ(data_uri, target_uri);
542 } 522 }
543 523
544 // dart:core Uri allows for the base url to be relative (no scheme, no 524 // dart:core Uri allows for the base url to be relative (no scheme, no
545 // authory, relative path) but this behavior is not in RFC 3986. We 525 // authory, relative path) but this behavior is not in RFC 3986. We
(...skipping 28 matching lines...) Expand all
574 EXPECT(ResolveUri(uri, base_uri, &target_uri)); 554 EXPECT(ResolveUri(uri, base_uri, &target_uri));
575 return target_uri; 555 return target_uri;
576 } 556 }
577 557
578 558
579 // This test is ported from sdk/tests/corelib/uri_test.dart (testUriPerRFCs). 559 // This test is ported from sdk/tests/corelib/uri_test.dart (testUriPerRFCs).
580 TEST_CASE(ResolveUri_TestUriPerRFCs) { 560 TEST_CASE(ResolveUri_TestUriPerRFCs) {
581 const char* base = "http://a/b/c/d;p?q"; 561 const char* base = "http://a/b/c/d;p?q";
582 562
583 // From RFC 3986 563 // From RFC 3986
584 EXPECT_STREQ("g:h", TestResolve(base, "g:h")); 564 EXPECT_STREQ("g:h", TestResolve(base, "g:h"));
585 EXPECT_STREQ("http://a/b/c/g", TestResolve(base, "g")); 565 EXPECT_STREQ("http://a/b/c/g", TestResolve(base, "g"));
586 EXPECT_STREQ("http://a/b/c/g", TestResolve(base, "./g")); 566 EXPECT_STREQ("http://a/b/c/g", TestResolve(base, "./g"));
587 EXPECT_STREQ("http://a/b/c/g/", TestResolve(base, "g/")); 567 EXPECT_STREQ("http://a/b/c/g/", TestResolve(base, "g/"));
588 EXPECT_STREQ("http://a/g", TestResolve(base, "/g")); 568 EXPECT_STREQ("http://a/g", TestResolve(base, "/g"));
589 EXPECT_STREQ("http://g", TestResolve(base, "//g")); 569 EXPECT_STREQ("http://g", TestResolve(base, "//g"));
590 EXPECT_STREQ("http://a/b/c/d;p?y", TestResolve(base, "?y")); 570 EXPECT_STREQ("http://a/b/c/d;p?y", TestResolve(base, "?y"));
591 EXPECT_STREQ("http://a/b/c/g?y", TestResolve(base, "g?y")); 571 EXPECT_STREQ("http://a/b/c/g?y", TestResolve(base, "g?y"));
592 EXPECT_STREQ("http://a/b/c/d;p?q#s", TestResolve(base, "#s")); 572 EXPECT_STREQ("http://a/b/c/d;p?q#s", TestResolve(base, "#s"));
593 EXPECT_STREQ("http://a/b/c/g#s", TestResolve(base, "g#s")); 573 EXPECT_STREQ("http://a/b/c/g#s", TestResolve(base, "g#s"));
594 EXPECT_STREQ("http://a/b/c/g?y#s", TestResolve(base, "g?y#s")); 574 EXPECT_STREQ("http://a/b/c/g?y#s", TestResolve(base, "g?y#s"));
595 EXPECT_STREQ("http://a/b/c/;x", TestResolve(base, ";x")); 575 EXPECT_STREQ("http://a/b/c/;x", TestResolve(base, ";x"));
596 EXPECT_STREQ("http://a/b/c/g;x", TestResolve(base, "g;x")); 576 EXPECT_STREQ("http://a/b/c/g;x", TestResolve(base, "g;x"));
597 EXPECT_STREQ("http://a/b/c/g;x?y#s", TestResolve(base, "g;x?y#s")); 577 EXPECT_STREQ("http://a/b/c/g;x?y#s", TestResolve(base, "g;x?y#s"));
598 EXPECT_STREQ("http://a/b/c/d;p?q", TestResolve(base, "")); 578 EXPECT_STREQ("http://a/b/c/d;p?q", TestResolve(base, ""));
599 EXPECT_STREQ("http://a/b/c/", TestResolve(base, ".")); 579 EXPECT_STREQ("http://a/b/c/", TestResolve(base, "."));
600 EXPECT_STREQ("http://a/b/c/", TestResolve(base, "./")); 580 EXPECT_STREQ("http://a/b/c/", TestResolve(base, "./"));
601 EXPECT_STREQ("http://a/b/", TestResolve(base, "..")); 581 EXPECT_STREQ("http://a/b/", TestResolve(base, ".."));
602 EXPECT_STREQ("http://a/b/", TestResolve(base, "../")); 582 EXPECT_STREQ("http://a/b/", TestResolve(base, "../"));
603 EXPECT_STREQ("http://a/b/g", TestResolve(base, "../g")); 583 EXPECT_STREQ("http://a/b/g", TestResolve(base, "../g"));
604 EXPECT_STREQ("http://a/", TestResolve(base, "../..")); 584 EXPECT_STREQ("http://a/", TestResolve(base, "../.."));
605 EXPECT_STREQ("http://a/", TestResolve(base, "../../")); 585 EXPECT_STREQ("http://a/", TestResolve(base, "../../"));
606 EXPECT_STREQ("http://a/g", TestResolve(base, "../../g")); 586 EXPECT_STREQ("http://a/g", TestResolve(base, "../../g"));
607 EXPECT_STREQ("http://a/g", TestResolve(base, "../../../g")); 587 EXPECT_STREQ("http://a/g", TestResolve(base, "../../../g"));
608 EXPECT_STREQ("http://a/g", TestResolve(base, "../../../../g")); 588 EXPECT_STREQ("http://a/g", TestResolve(base, "../../../../g"));
609 EXPECT_STREQ("http://a/g", TestResolve(base, "/./g")); 589 EXPECT_STREQ("http://a/g", TestResolve(base, "/./g"));
610 EXPECT_STREQ("http://a/g", TestResolve(base, "/../g")); 590 EXPECT_STREQ("http://a/g", TestResolve(base, "/../g"));
611 EXPECT_STREQ("http://a/b/c/g.", TestResolve(base, "g.")); 591 EXPECT_STREQ("http://a/b/c/g.", TestResolve(base, "g."));
612 EXPECT_STREQ("http://a/b/c/.g", TestResolve(base, ".g")); 592 EXPECT_STREQ("http://a/b/c/.g", TestResolve(base, ".g"));
613 EXPECT_STREQ("http://a/b/c/g..", TestResolve(base, "g..")); 593 EXPECT_STREQ("http://a/b/c/g..", TestResolve(base, "g.."));
614 EXPECT_STREQ("http://a/b/c/..g", TestResolve(base, "..g")); 594 EXPECT_STREQ("http://a/b/c/..g", TestResolve(base, "..g"));
615 EXPECT_STREQ("http://a/b/g", TestResolve(base, "./../g")); 595 EXPECT_STREQ("http://a/b/g", TestResolve(base, "./../g"));
616 EXPECT_STREQ("http://a/b/c/g/", TestResolve(base, "./g/.")); 596 EXPECT_STREQ("http://a/b/c/g/", TestResolve(base, "./g/."));
617 EXPECT_STREQ("http://a/b/c/g/h", TestResolve(base, "g/./h")); 597 EXPECT_STREQ("http://a/b/c/g/h", TestResolve(base, "g/./h"));
618 EXPECT_STREQ("http://a/b/c/h", TestResolve(base, "g/../h")); 598 EXPECT_STREQ("http://a/b/c/h", TestResolve(base, "g/../h"));
619 EXPECT_STREQ("http://a/b/c/g;x=1/y", TestResolve(base, "g;x=1/./y")); 599 EXPECT_STREQ("http://a/b/c/g;x=1/y", TestResolve(base, "g;x=1/./y"));
620 EXPECT_STREQ("http://a/b/c/y", TestResolve(base, "g;x=1/../y")); 600 EXPECT_STREQ("http://a/b/c/y", TestResolve(base, "g;x=1/../y"));
621 EXPECT_STREQ("http://a/b/c/g?y/./x", TestResolve(base, "g?y/./x")); 601 EXPECT_STREQ("http://a/b/c/g?y/./x", TestResolve(base, "g?y/./x"));
622 EXPECT_STREQ("http://a/b/c/g?y/../x", TestResolve(base, "g?y/../x")); 602 EXPECT_STREQ("http://a/b/c/g?y/../x", TestResolve(base, "g?y/../x"));
623 EXPECT_STREQ("http://a/b/c/g#s/./x", TestResolve(base, "g#s/./x")); 603 EXPECT_STREQ("http://a/b/c/g#s/./x", TestResolve(base, "g#s/./x"));
624 EXPECT_STREQ("http://a/b/c/g#s/../x", TestResolve(base, "g#s/../x")); 604 EXPECT_STREQ("http://a/b/c/g#s/../x", TestResolve(base, "g#s/../x"));
625 EXPECT_STREQ("http:g", TestResolve(base, "http:g")); 605 EXPECT_STREQ("http:g", TestResolve(base, "http:g"));
626 606
627 // Additional tests (not from RFC 3986). 607 // Additional tests (not from RFC 3986).
628 EXPECT_STREQ("http://a/b/g;p/h;s", TestResolve(base, "../g;p/h;s")); 608 EXPECT_STREQ("http://a/b/g;p/h;s", TestResolve(base, "../g;p/h;s"));
629 609
630 base = "s:a/b"; 610 base = "s:a/b";
631 EXPECT_STREQ("s:/c", TestResolve(base, "../c")); 611 EXPECT_STREQ("s:/c", TestResolve(base, "../c"));
632 } 612 }
633 613
634 614
635 // This test is ported from sdk/tests/corelib/uri_test.dart (testResolvePath). 615 // This test is ported from sdk/tests/corelib/uri_test.dart (testResolvePath).
636 TEST_CASE(ResolveUri_MoreDotSegmentTests) { 616 TEST_CASE(ResolveUri_MoreDotSegmentTests) {
637 const char* base = "/"; 617 const char* base = "/";
638 EXPECT_STREQ("/a/g", TestResolve(base, "/a/b/c/./../../g")); 618 EXPECT_STREQ("/a/g", TestResolve(base, "/a/b/c/./../../g"));
639 EXPECT_STREQ("/a/g", TestResolve(base, "/a/b/c/./../../g")); 619 EXPECT_STREQ("/a/g", TestResolve(base, "/a/b/c/./../../g"));
640 EXPECT_STREQ("/mid/6", TestResolve(base, "mid/content=5/../6")); 620 EXPECT_STREQ("/mid/6", TestResolve(base, "mid/content=5/../6"));
641 EXPECT_STREQ("/a/b/e", TestResolve(base, "a/b/c/d/../../e")); 621 EXPECT_STREQ("/a/b/e", TestResolve(base, "a/b/c/d/../../e"));
642 EXPECT_STREQ("/a/b/e", TestResolve(base, "../a/b/c/d/../../e")); 622 EXPECT_STREQ("/a/b/e", TestResolve(base, "../a/b/c/d/../../e"));
643 EXPECT_STREQ("/a/b/e", TestResolve(base, "./a/b/c/d/../../e")); 623 EXPECT_STREQ("/a/b/e", TestResolve(base, "./a/b/c/d/../../e"));
644 EXPECT_STREQ("/a/b/e", TestResolve(base, "../a/b/./c/d/../../e")); 624 EXPECT_STREQ("/a/b/e", TestResolve(base, "../a/b/./c/d/../../e"));
645 EXPECT_STREQ("/a/b/e", TestResolve(base, "./a/b/./c/d/../../e")); 625 EXPECT_STREQ("/a/b/e", TestResolve(base, "./a/b/./c/d/../../e"));
646 EXPECT_STREQ("/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/.")); 626 EXPECT_STREQ("/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/."));
647 EXPECT_STREQ("/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/./.")); 627 EXPECT_STREQ("/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/./."));
648 EXPECT_STREQ("/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/././.")); 628 EXPECT_STREQ("/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/././."));
649 629
650 #define LH "http://localhost" 630 #define LH "http://localhost"
651 base = LH; 631 base = LH;
652 EXPECT_STREQ(LH "/a/g", TestResolve(base, "/a/b/c/./../../g")); 632 EXPECT_STREQ(LH "/a/g", TestResolve(base, "/a/b/c/./../../g"));
653 EXPECT_STREQ(LH "/a/g", TestResolve(base, "/a/b/c/./../../g")); 633 EXPECT_STREQ(LH "/a/g", TestResolve(base, "/a/b/c/./../../g"));
654 EXPECT_STREQ(LH "/mid/6", TestResolve(base, "mid/content=5/../6")); 634 EXPECT_STREQ(LH "/mid/6", TestResolve(base, "mid/content=5/../6"));
655 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "a/b/c/d/../../e")); 635 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "a/b/c/d/../../e"));
656 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "../a/b/c/d/../../e")); 636 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "../a/b/c/d/../../e"));
657 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "./a/b/c/d/../../e")); 637 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "./a/b/c/d/../../e"));
658 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "../a/b/./c/d/../../e")); 638 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "../a/b/./c/d/../../e"));
659 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "./a/b/./c/d/../../e")); 639 EXPECT_STREQ(LH "/a/b/e", TestResolve(base, "./a/b/./c/d/../../e"));
660 EXPECT_STREQ(LH "/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/.")); 640 EXPECT_STREQ(LH "/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/."));
661 EXPECT_STREQ(LH "/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/./.")); 641 EXPECT_STREQ(LH "/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/./."));
662 EXPECT_STREQ(LH "/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/././.")); 642 EXPECT_STREQ(LH "/a/b/e/", TestResolve(base, "./a/b/./c/d/../../e/././."));
663 #undef LH 643 #undef LH
664 } 644 }
665 645
666 } // namespace dart 646 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/uri.cc ('k') | runtime/vm/verifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698