Skip to content

Commit eb2e9cb

Browse files
committed
Correctly assert normalization after RFC 3986 URI modification
1 parent 3794154 commit eb2e9cb

File tree

6 files changed

+100
-37
lines changed

6 files changed

+100
-37
lines changed

ext/uri/tests/023.phpt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@ uri
66
<?php
77

88
$uri1 = Uri\Rfc3986\Uri::parse("https://example.com");
9-
$uri2 = $uri1->withScheme("http");
10-
$uri3 = $uri2->withScheme(null);
11-
9+
var_dump($uri1->getRawScheme());
1210
var_dump($uri1->getScheme());
11+
12+
$uri2 = $uri1->withScheme("http");
13+
var_dump($uri2->getRawScheme());
1314
var_dump($uri2->getScheme());
15+
16+
$uri3 = $uri2->withScheme(null);
17+
var_dump($uri3->getRawScheme());
1418
var_dump($uri3->getScheme());
1519

1620
try {
@@ -46,7 +50,10 @@ try {
4650
?>
4751
--EXPECT--
4852
string(5) "https"
53+
string(5) "https"
4954
string(4) "http"
55+
string(4) "http"
56+
NULL
5057
NULL
5158
The specified scheme is malformed
5259
The specified scheme is malformed

ext/uri/tests/026.phpt

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,28 @@ uri
66
<?php
77

88
$uri1 = Uri\Rfc3986\Uri::parse("https://example.com");
9-
$uri2 = $uri1->withHost("test.com");
10-
$uri3 = $uri2->withHost("t%65st.com"); // test.com
11-
$uri4 = $uri3->withHost(null);
12-
$uri5 = $uri4->withHost("192.168.0.1");
13-
$uri6 = $uri5->withHost("[2001:db8:3333:4444:5555:6666:7777:8888]");
14-
9+
var_dump($uri1->getRawHost());
1510
var_dump($uri1->getHost());
11+
12+
$uri2 = $uri1->withHost("test.com");
13+
var_dump($uri2->getRawHost());
1614
var_dump($uri2->getHost());
17-
var_dump($uri3->getHost());
15+
16+
$uri3 = $uri2->withHost("t%65st.com"); // test.com
1817
var_dump($uri3->getRawHost());
18+
var_dump($uri3->getHost());
19+
20+
$uri4 = $uri3->withHost(null);
1921
var_dump($uri4->getRawHost());
22+
var_dump($uri4->getHost());
23+
24+
$uri5 = $uri4->withHost("192.168.0.1");
2025
var_dump($uri5->getRawHost());
26+
var_dump($uri5->getHost());
27+
28+
$uri6 = $uri5->withHost("[2001:db8:3333:4444:5555:6666:7777:8888]");
2129
var_dump($uri6->getRawHost());
30+
var_dump($uri6->getHost());
2231

2332
try {
2433
$uri3->withHost("test.com:8080");
@@ -101,11 +110,16 @@ var_dump($url2->getAsciiHost());
101110
?>
102111
--EXPECTF--
103112
string(11) "example.com"
113+
string(11) "example.com"
104114
string(8) "test.com"
105115
string(8) "test.com"
106116
string(10) "t%65st.com"
117+
string(8) "test.com"
118+
NULL
107119
NULL
108120
string(11) "192.168.0.1"
121+
string(11) "192.168.0.1"
122+
string(40) "[2001:db8:3333:4444:5555:6666:7777:8888]"
109123
string(40) "[2001:db8:3333:4444:5555:6666:7777:8888]"
110124
The specified host is malformed
111125
The specified host is malformed

ext/uri/tests/026_userinfo.phpt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,20 @@ uri
66
<?php
77

88
$uri1 = Uri\Rfc3986\Uri::parse("https://example.com");
9-
$uri2 = $uri1->withUserInfo("user");
10-
$uri3 = $uri2->withUserInfo(null);
11-
$uri4 = $uri3->withUserInfo("%75s%2Fr:pass"); // us/r:pass
12-
9+
var_dump($uri1->getRawUserInfo());
1310
var_dump($uri1->getUserInfo());
11+
12+
$uri2 = $uri1->withUserInfo("user");
13+
var_dump($uri2->getRawUserInfo());
1414
var_dump($uri2->getUserInfo());
15+
16+
$uri3 = $uri2->withUserInfo(null);
17+
var_dump($uri3->getRawUserInfo());
1518
var_dump($uri3->getUserInfo());
16-
var_dump($uri4->getUserInfo());
19+
20+
$uri4 = $uri3->withUserInfo("%75s%2Fr:pass"); // us/r:pass
1721
var_dump($uri4->getRawUserInfo());
22+
var_dump($uri4->getUserInfo());
1823

1924
$uri1 = Uri\Rfc3986\Uri::parse("/foo");
2025
$uri2 = $uri1->withUserInfo(null);
@@ -35,10 +40,13 @@ var_dump($uri6->getUserInfo());
3540
?>
3641
--EXPECT--
3742
NULL
43+
NULL
44+
string(4) "user"
3845
string(4) "user"
3946
NULL
40-
string(11) "us%2Fr:pass"
47+
NULL
4148
string(13) "%75s%2Fr:pass"
49+
string(11) "us%2Fr:pass"
4250
NULL
4351
The specified userinfo is malformed
4452
NULL

ext/uri/tests/028.phpt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,23 @@ uri
66
<?php
77

88
$uri1 = Uri\Rfc3986\Uri::parse("https://example.com/foo/bar/");
9-
$uri2 = $uri1->withPath("/foo");
10-
$uri3 = $uri2->withPath("/t%65st");
11-
$uri4 = $uri3->withPath("/foo%2Fbar");
12-
$uri5 = $uri4->withPath("");
13-
9+
var_dump($uri1->getRawPath());
1410
var_dump($uri1->getPath());
11+
12+
$uri2 = $uri1->withPath("/foo");
13+
var_dump($uri2->getRawPath());
1514
var_dump($uri2->getPath());
16-
var_dump($uri3->getPath());
15+
16+
$uri3 = $uri2->withPath("/t%65st");
1717
var_dump($uri3->getRawPath());
18-
var_dump($uri4->getPath());
18+
var_dump($uri3->getPath());
19+
20+
$uri4 = $uri3->withPath("/foo%2Fbar");
1921
var_dump($uri4->getRawPath());
22+
var_dump($uri4->getPath());
23+
24+
$uri5 = $uri4->withPath("");
25+
var_dump($uri5->getRawPath());
2026
var_dump($uri5->getPath());
2127

2228
try {
@@ -60,12 +66,15 @@ var_dump($url2->getPath());
6066
?>
6167
--EXPECT--
6268
string(9) "/foo/bar/"
69+
string(9) "/foo/bar/"
70+
string(4) "/foo"
6371
string(4) "/foo"
64-
string(5) "/test"
6572
string(7) "/t%65st"
73+
string(5) "/test"
6674
string(10) "/foo%2Fbar"
6775
string(10) "/foo%2Fbar"
6876
string(0) ""
77+
string(0) ""
6978
The specified path is malformed
7079
The specified path is malformed
7180
string(4) "/foo"

ext/uri/tests/029.phpt

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,35 @@ uri
66
<?php
77

88
$uri1 = Uri\Rfc3986\Uri::parse("https://example.com?foo=bar");
9-
$uri2 = $uri1->withQuery("foo=baz");
10-
$uri3 = $uri2->withQuery(null);
11-
9+
var_dump($uri1->getRawQuery());
1210
var_dump($uri1->getQuery());
11+
12+
$uri2 = $uri1->withQuery("foo=baz");
13+
var_dump($uri2->getRawQuery());
1314
var_dump($uri2->getQuery());
15+
16+
$uri3 = $uri2->withQuery(null);
17+
var_dump($uri3->getRawQuery());
1418
var_dump($uri3->getQuery());
1519

1620
$uri1 = Uri\Rfc3986\Uri::parse("https://example.com");
17-
$uri2 = $uri1->withQuery("?foo=bar&foo=baz");
18-
$uri3 = $uri1->withQuery("foo=bar&foo=baz");
19-
$uri4 = $uri3->withQuery("t%65st");
20-
$uri5 = $uri4->withQuery("foo=foo%26bar&baz=/qux%3D");
21-
21+
var_dump($uri1->getRawQuery());
2222
var_dump($uri1->getQuery());
23+
24+
$uri2 = $uri1->withQuery("?foo=bar&foo=baz");
25+
var_dump($uri2->getRawQuery());
2326
var_dump($uri2->getQuery());
27+
28+
$uri3 = $uri1->withQuery("foo=bar&foo=baz");
29+
var_dump($uri3->getRawQuery());
2430
var_dump($uri3->getQuery());
25-
var_dump($uri4->getQuery());
31+
32+
$uri4 = $uri3->withQuery("t%65st");
2633
var_dump($uri4->getRawQuery());
34+
var_dump($uri4->getQuery());
35+
36+
$uri5 = $uri4->withQuery("foo=foo%26bar&baz=/qux%3D");
37+
var_dump($uri5->getRawQuery());
2738
var_dump($uri5->getQuery());
2839

2940
try {
@@ -57,13 +68,20 @@ var_dump($url6->getQuery());
5768
?>
5869
--EXPECT--
5970
string(7) "foo=bar"
71+
string(7) "foo=bar"
72+
string(7) "foo=baz"
6073
string(7) "foo=baz"
6174
NULL
6275
NULL
76+
NULL
77+
NULL
78+
string(16) "?foo=bar&foo=baz"
6379
string(16) "?foo=bar&foo=baz"
6480
string(15) "foo=bar&foo=baz"
65-
string(4) "test"
81+
string(15) "foo=bar&foo=baz"
6682
string(6) "t%65st"
83+
string(4) "test"
84+
string(25) "foo=foo%26bar&baz=/qux%3D"
6785
string(25) "foo=foo%26bar&baz=/qux%3D"
6886
The specified query is malformed
6987
string(7) "foo=bar"

ext/uri/tests/030.phpt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@ uri
66
<?php
77

88
$uri1 = Uri\Rfc3986\Uri::parse("https://example.com#fragment1");
9-
$uri2 = $uri1->withFragment("fragment2");
10-
$uri3 = $uri2->withFragment(null);
11-
9+
var_dump($uri1->getRawFragment());
1210
var_dump($uri1->getFragment());
11+
12+
$uri2 = $uri1->withFragment("fragment2");
13+
var_dump($uri2->getRawFragment());
1314
var_dump($uri2->getFragment());
15+
16+
$uri3 = $uri2->withFragment(null);
17+
var_dump($uri3->getRawFragment());
1418
var_dump($uri3->getFragment());
1519

1620
try {
@@ -50,7 +54,10 @@ var_dump($url2->getFragment());
5054
?>
5155
--EXPECT--
5256
string(9) "fragment1"
57+
string(9) "fragment1"
5358
string(9) "fragment2"
59+
string(9) "fragment2"
60+
NULL
5461
NULL
5562
The specified fragment is malformed
5663
The specified fragment is malformed

0 commit comments

Comments
 (0)