Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_error_multibyte.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - multibyte character
--FILE--
<?php

try {
new Uri\Rfc3986\Uri("🐘");
} catch (Throwable $e) {
echo $e::class, ": ", $e->getMessage(), PHP_EOL;
}

?>
--EXPECT--
Uri\InvalidUriException: The specified URI is malformed
14 changes: 14 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_error_null_byte1.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - URI contains null byte
--FILE--
<?php

try {
new Uri\Rfc3986\Uri("https://exam\0ple.com");
} catch (ValueError $e) {
echo $e::class, ": ", $e->getMessage(), PHP_EOL;
}

?>
--EXPECT--
ValueError: Uri\Rfc3986\Uri::__construct(): Argument #1 ($uri) must not contain any null bytes
14 changes: 14 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_error_null_byte2.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - URI contains null byte
--FILE--
<?php

try {
Uri\Rfc3986\Uri::parse("https://exam\0ple.com");
} catch (ValueError $e) {
echo $e::class, ": ", $e->getMessage(), PHP_EOL;
}

?>
--EXPECT--
ValueError: Uri\Rfc3986\Uri::parse(): Argument #1 ($uri) must not contain any null bytes
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_success_all.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - all components
--FILE--
<?php

$uri = Uri\Rfc3986\Uri::parse("https://user:[email protected]:443/foo/bar?abc=123&def=ghi#hashmark");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
string(5) "https"
["username"]=>
string(4) "user"
["password"]=>
string(4) "info"
["host"]=>
string(11) "example.com"
["port"]=>
int(443)
["path"]=>
string(8) "/foo/bar"
["query"]=>
string(15) "abc=123&def=ghi"
["fragment"]=>
string(8) "hashmark"
}
string(66) "https://user:[email protected]:443/foo/bar?abc=123&def=ghi#hashmark"
string(66) "https://user:[email protected]:443/foo/bar?abc=123&def=ghi#hashmark"
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_sucess_email.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - mailto email
--FILE--
<?php

$uri = Uri\Rfc3986\Uri::parse("mailto:[email protected]");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
string(6) "mailto"
["username"]=>
NULL
["password"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(16) "[email protected]"
["query"]=>
NULL
["fragment"]=>
NULL
}
string(23) "mailto:[email protected]"
string(23) "mailto:[email protected]"
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_sucess_empty.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - empty string
--FILE--
<?php

$uri = Uri\Rfc3986\Uri::parse("");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
NULL
["username"]=>
NULL
["password"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(0) ""
["query"]=>
NULL
["fragment"]=>
NULL
}
string(0) ""
string(0) ""
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_sucess_file.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - file
--FILE--
<?php

$uri = Uri\Rfc3986\Uri::parse("file:///E:/Documents%20and%20Settings");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
string(4) "file"
["username"]=>
NULL
["password"]=>
NULL
["host"]=>
string(0) ""
["port"]=>
NULL
["path"]=>
string(30) "/E:/Documents%20and%20Settings"
["query"]=>
NULL
["fragment"]=>
NULL
}
string(37) "file:///E:/Documents%20and%20Settings"
string(37) "file:///E:/Documents%20and%20Settings"
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/basic_sucess_urn.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - basic - URN
--FILE--
<?php

$uri = Uri\Rfc3986\Uri::parse("urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
string(3) "urn"
["username"]=>
NULL
["password"]=>
NULL
["host"]=>
NULL
["port"]=>
NULL
["path"]=>
string(41) "uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66"
["query"]=>
NULL
["fragment"]=>
NULL
}
string(45) "urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66"
string(45) "urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66"
14 changes: 14 additions & 0 deletions ext/uri/tests/rfc3986/parsing/host_error_multibyte.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - host - multibyte character
--FILE--
<?php

try {
new Uri\Rfc3986\Uri("https://exḁmple.com");
} catch (Throwable $e) {
echo $e::class, ": ", $e->getMessage(), PHP_EOL;
}

?>
--EXPECT--
Uri\InvalidUriException: The specified URI is malformed
14 changes: 14 additions & 0 deletions ext/uri/tests/rfc3986/parsing/host_error_reserved.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - host - reserved character
--FILE--
<?php

try {
new Uri\Rfc3986\Uri("https://ex[a]mple.com");
} catch (Throwable $e) {
echo $e::class, ": ", $e->getMessage(), PHP_EOL;
}

?>
--EXPECT--
Uri\InvalidUriException: The specified URI is malformed
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/host_success_empty1.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - host - empty
--FILE--
<?php

$uri = Uri\Rfc3986\Uri::parse("https://");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
string(5) "https"
["username"]=>
NULL
["password"]=>
NULL
["host"]=>
string(0) ""
["port"]=>
NULL
["path"]=>
string(0) ""
["query"]=>
NULL
["fragment"]=>
NULL
}
string(8) "https://"
string(8) "https://"
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/host_success_empty2.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - host - empty
--FILE--
<?php

$uri = Uri\Rfc3986\Uri::parse("https://user:pass@");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
string(5) "https"
["username"]=>
string(4) "user"
["password"]=>
string(4) "pass"
["host"]=>
string(0) ""
["port"]=>
NULL
["path"]=>
string(0) ""
["query"]=>
NULL
["fragment"]=>
NULL
}
string(18) "https://user:pass@"
string(18) "https://user:pass@"
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/host_success_empty3.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - host - empty
--FILE--
<?php

$uri = new Uri\Rfc3986\Uri("//");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
NULL
["username"]=>
NULL
["password"]=>
NULL
["host"]=>
string(0) ""
["port"]=>
NULL
["path"]=>
string(0) ""
["query"]=>
NULL
["fragment"]=>
NULL
}
string(2) "//"
string(2) "//"
33 changes: 33 additions & 0 deletions ext/uri/tests/rfc3986/parsing/host_success_empty4.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--TEST--
Test Uri\Rfc3986\Uri parsing - host - empty
--FILE--
<?php

$uri = new Uri\Rfc3986\Uri("///");

var_dump($uri);
var_dump($uri->toRawString());
var_dump($uri->toString());

?>
--EXPECTF--
object(Uri\Rfc3986\Uri)#%d (%d) {
["scheme"]=>
NULL
["username"]=>
NULL
["password"]=>
NULL
["host"]=>
string(0) ""
["port"]=>
NULL
["path"]=>
string(1) "/"
["query"]=>
NULL
["fragment"]=>
NULL
}
string(3) "///"
string(3) "///"
Loading