summaryrefslogtreecommitdiff
path: root/tests/UrlHelperTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/UrlHelperTest.php')
-rw-r--r--tests/UrlHelperTest.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/UrlHelperTest.php b/tests/UrlHelperTest.php
new file mode 100644
index 000000000..fe4eb5db2
--- /dev/null
+++ b/tests/UrlHelperTest.php
@@ -0,0 +1,54 @@
+<?php
+
+use PHPUnit\Framework\TestCase;
+
+final class UrlHelperTest extends TestCase {
+ public function test_rewrite_relative(): void {
+ // protocol-neutral URL
+ $this->assertEquals(
+ 'https://example.com/example.html',
+ UrlHelper::rewrite_relative('http://example.com/example/', '//example.com/example.html')
+ );
+
+ // magnet allowed because it's a href attribute
+ $this->assertEquals(
+ 'magnet:?xt=urn:btih:...',
+ UrlHelper::rewrite_relative('http://example.com/example/',
+ 'magnet:?xt=urn:btih:...',
+ "a", "href", "")
+ );
+
+ // disallowed magnet
+ $this->assertEquals(
+ 'http://example.com?xt=urn:btih:...',
+ UrlHelper::rewrite_relative('http://example.com/example/',
+ 'magnet:?xt=urn:btih:...')
+ );
+
+ $this->assertEquals(
+ 'https://apod.nasa.gov/apod/image/2203/Road2Stars_EsoHoralek_1080.jpg',
+ UrlHelper::rewrite_relative('https://apod.nasa.gov/apod/ap220315.html', 'image/2203/Road2Stars_EsoHoralek_1080.jpg')
+ );
+
+ $this->assertEquals(
+ 'https://apod.nasa.gov/apod/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')
+ );
+
+ }
+}