OLD | NEW |
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 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 EXPECT(uri.scheme == NULL); | 222 EXPECT(uri.scheme == NULL); |
223 EXPECT(uri.userinfo == NULL); | 223 EXPECT(uri.userinfo == NULL); |
224 EXPECT(uri.host == NULL); | 224 EXPECT(uri.host == NULL); |
225 EXPECT(uri.port == NULL); | 225 EXPECT(uri.port == NULL); |
226 EXPECT_STREQ("", uri.path); | 226 EXPECT_STREQ("", uri.path); |
227 EXPECT(uri.query == NULL); | 227 EXPECT(uri.query == NULL); |
228 EXPECT_STREQ("fragment", uri.fragment); | 228 EXPECT_STREQ("fragment", uri.fragment); |
229 } | 229 } |
230 | 230 |
231 | 231 |
232 TEST_CASE(ParseUri_DoubleSlash1) { | |
233 ParsedUri uri; | |
234 EXPECT(!ParseUri("foo://example.com:8042/over//there?name=ferret", &uri)); | |
235 EXPECT(uri.scheme == NULL); | |
236 EXPECT(uri.userinfo == NULL); | |
237 EXPECT(uri.host == NULL); | |
238 EXPECT(uri.port == NULL); | |
239 EXPECT(uri.path == NULL); | |
240 EXPECT(uri.query == NULL); | |
241 EXPECT(uri.fragment == NULL); | |
242 } | |
243 | |
244 | |
245 TEST_CASE(ParseUri_DoubleSlash2) { | |
246 ParsedUri uri; | |
247 EXPECT(!ParseUri("or//here", &uri)); | |
248 EXPECT(uri.scheme == NULL); | |
249 EXPECT(uri.userinfo == NULL); | |
250 EXPECT(uri.host == NULL); | |
251 EXPECT(uri.port == NULL); | |
252 EXPECT(uri.path == NULL); | |
253 EXPECT(uri.query == NULL); | |
254 EXPECT(uri.fragment == NULL); | |
255 } | |
256 | |
257 | |
258 TEST_CASE(ParseUri_LowerCaseScheme) { | 232 TEST_CASE(ParseUri_LowerCaseScheme) { |
259 ParsedUri uri; | 233 ParsedUri uri; |
260 EXPECT(ParseUri("ScHeMe:path", &uri)); | 234 EXPECT(ParseUri("ScHeMe:path", &uri)); |
261 EXPECT_STREQ("scheme", uri.scheme); | 235 EXPECT_STREQ("scheme", uri.scheme); |
262 EXPECT(uri.userinfo == NULL); | 236 EXPECT(uri.userinfo == NULL); |
263 EXPECT(uri.host == NULL); | 237 EXPECT(uri.host == NULL); |
264 EXPECT(uri.port == NULL); | 238 EXPECT(uri.port == NULL); |
265 EXPECT_STREQ("path", uri.path); | 239 EXPECT_STREQ("path", uri.path); |
266 EXPECT(uri.query == NULL); | 240 EXPECT(uri.query == NULL); |
267 EXPECT(uri.fragment == NULL); | 241 EXPECT(uri.fragment == NULL); |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 const char* target_uri; | 523 const char* target_uri; |
550 EXPECT(ResolveUri("", | 524 EXPECT(ResolveUri("", |
551 "scheme:/%1g", | 525 "scheme:/%1g", |
552 &target_uri)); | 526 &target_uri)); |
553 // We don't change broken escape sequences. | 527 // We don't change broken escape sequences. |
554 EXPECT_STREQ("scheme:/%1g", | 528 EXPECT_STREQ("scheme:/%1g", |
555 target_uri); | 529 target_uri); |
556 } | 530 } |
557 | 531 |
558 | 532 |
| 533 TEST_CASE(ResolveUri_DataUri) { |
| 534 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 |
| 536 |
| 537 const char* target_uri; |
| 538 EXPECT(ResolveUri(data_uri, |
| 539 "bscheme://buser@bhost:11/base/path?baseQuery#bfragment", |
| 540 &target_uri)); |
| 541 EXPECT_STREQ(data_uri, target_uri); |
| 542 } |
| 543 |
559 // dart:core Uri allows for the base url to be relative (no scheme, no | 544 // dart:core Uri allows for the base url to be relative (no scheme, no |
560 // authory, relative path) but this behavior is not in RFC 3986. We | 545 // authory, relative path) but this behavior is not in RFC 3986. We |
561 // do not implement this. | 546 // do not implement this. |
562 TEST_CASE(ResolveUri_RelativeBase_NotImplemented) { | 547 TEST_CASE(ResolveUri_RelativeBase_NotImplemented) { |
563 const char* target_uri; | 548 const char* target_uri; |
564 EXPECT(!ResolveUri("../r1", "b1/b2", &target_uri)); | 549 EXPECT(!ResolveUri("../r1", "b1/b2", &target_uri)); |
565 EXPECT(target_uri == NULL); | 550 EXPECT(target_uri == NULL); |
566 | 551 |
567 EXPECT(!ResolveUri("..", "b1/b2", &target_uri)); | 552 EXPECT(!ResolveUri("..", "b1/b2", &target_uri)); |
568 EXPECT(target_uri == NULL); | 553 EXPECT(target_uri == NULL); |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 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")); |
673 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")); |
674 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")); |
675 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/.")); |
676 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/./.")); |
677 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/././.")); |
678 #undef LH | 663 #undef LH |
679 } | 664 } |
680 | 665 |
681 } // namespace dart | 666 } // namespace dart |
OLD | NEW |