tests: add stub autoloader, add a few more rewrite_relative tests

pull/68/head
Andrew Dolgov 2 years ago
parent 1c4f7ab3b8
commit e35a4a1306
  1. 1
      .gitignore
  2. 5
      classes/urlhelper.php
  3. 32
      tests/UrlHelperTest.php
  4. 6
      tests/autoload.php

1
.gitignore vendored

@ -12,3 +12,4 @@ Thumbs.db
/lock/*
/.vscode/settings.json
/vendor/**/.git
/.phpunit.result.cache

@ -26,6 +26,7 @@ class UrlHelper {
/** @var string */
static $fetch_last_modified;
/** @var string */
static $fetch_effective_url;
@ -68,6 +69,8 @@ class UrlHelper {
$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
* of UrlHelper::validate().
@ -107,7 +110,7 @@ class UrlHelper {
$rel_parts['host'] = $base_parts['host'] ?? "";
$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
$base_path = with_trailing_slash(dirname($base_parts['path']));

@ -1,24 +1,9 @@
<?php
set_include_path(dirname(__DIR__) ."/include" . PATH_SEPARATOR .
get_include_path());
require_once "autoload.php";
require_once "functions.php";
use PHPUnit\Framework\TestCase;
final class UrlHelperTest extends TestCase {
public function testCanBeUsedAsString(): 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')
);*/
public function test_rewrite_relative(): void {
// protocol-neutral URL
$this->assertEquals(
'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')
);
$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…
Cancel
Save