tests: add stub autoloader, add a few more rewrite_relative tests
This commit is contained in:
parent
1c4f7ab3b8
commit
e35a4a1306
|
@ -12,3 +12,4 @@ Thumbs.db
|
||||||
/lock/*
|
/lock/*
|
||||||
/.vscode/settings.json
|
/.vscode/settings.json
|
||||||
/vendor/**/.git
|
/vendor/**/.git
|
||||||
|
/.phpunit.result.cache
|
||||||
|
|
|
@ -26,6 +26,7 @@ class UrlHelper {
|
||||||
/** @var string */
|
/** @var string */
|
||||||
static $fetch_last_modified;
|
static $fetch_last_modified;
|
||||||
|
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
static $fetch_effective_url;
|
static $fetch_effective_url;
|
||||||
|
|
||||||
|
@ -68,6 +69,8 @@ class UrlHelper {
|
||||||
|
|
||||||
$rel_parts = parse_url($rel_url);
|
$rel_parts = parse_url($rel_url);
|
||||||
|
|
||||||
|
if (!$rel_url) return $base_url;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If parse_url failed to parse $rel_url return false to match the current "invalid thing" behavior
|
* If parse_url failed to parse $rel_url return false to match the current "invalid thing" behavior
|
||||||
* of UrlHelper::validate().
|
* of UrlHelper::validate().
|
||||||
|
@ -107,7 +110,7 @@ class UrlHelper {
|
||||||
$rel_parts['host'] = $base_parts['host'] ?? "";
|
$rel_parts['host'] = $base_parts['host'] ?? "";
|
||||||
$rel_parts['scheme'] = $base_parts['scheme'] ?? "";
|
$rel_parts['scheme'] = $base_parts['scheme'] ?? "";
|
||||||
|
|
||||||
if (isset($rel_parts['path'])) {
|
if ($rel_parts['path'] ?? false) {
|
||||||
|
|
||||||
// we append dirname() of base path to relative URL path as per RFC 3986 section 5.2.2
|
// we append dirname() of base path to relative URL path as per RFC 3986 section 5.2.2
|
||||||
$base_path = with_trailing_slash(dirname($base_parts['path']));
|
$base_path = with_trailing_slash(dirname($base_parts['path']));
|
||||||
|
|
|
@ -1,24 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
set_include_path(dirname(__DIR__) ."/include" . PATH_SEPARATOR .
|
|
||||||
get_include_path());
|
|
||||||
|
|
||||||
require_once "autoload.php";
|
|
||||||
require_once "functions.php";
|
|
||||||
|
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
final class UrlHelperTest extends TestCase {
|
final class UrlHelperTest extends TestCase {
|
||||||
public function testCanBeUsedAsString(): void {
|
public function test_rewrite_relative(): void {
|
||||||
/*$this->assertEquals(
|
|
||||||
'http://example.com/example.html',
|
|
||||||
UrlHelper::rewrite_relative('http://example.com/example/', '/example.html')
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->assertEquals(
|
|
||||||
'http://example.com/example/example.html',
|
|
||||||
UrlHelper::rewrite_relative('http://example.com/example/', 'example.html')
|
|
||||||
);*/
|
|
||||||
|
|
||||||
// protocol-neutral URL
|
// protocol-neutral URL
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
'https://example.com/example.html',
|
'https://example.com/example.html',
|
||||||
|
@ -50,5 +35,20 @@ final class UrlHelperTest extends TestCase {
|
||||||
UrlHelper::rewrite_relative('https://apod.nasa.gov/apod/ap220315.html', './image/2203/Road2Stars_EsoHoralek_1080.jpg')
|
UrlHelper::rewrite_relative('https://apod.nasa.gov/apod/ap220315.html', './image/2203/Road2Stars_EsoHoralek_1080.jpg')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'http://example.com/test/url',
|
||||||
|
UrlHelper::rewrite_relative('http://example.com/test/url', '')
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'http://www.example.com/test',
|
||||||
|
UrlHelper::rewrite_relative('http://www.example2.com ', 'http://www.example.com/test')
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'http://www.example.com/test',
|
||||||
|
UrlHelper::rewrite_relative('http://www.example.com/test2 ', 'http://www.example.com/test')
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?php
|
||||||
|
set_include_path(dirname(__DIR__) ."/include" . PATH_SEPARATOR .
|
||||||
|
get_include_path());
|
||||||
|
|
||||||
|
require_once "autoload.php";
|
||||||
|
require_once "functions.php";
|
Loading…
Reference in New Issue