From 650a5f09cbeb1c1bef19810c6cc504c06d5b7e87 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 3 Sep 2020 14:51:41 +0200 Subject: Add manual configuration for root URL This new setting under 'general.root_url' allows to override automatic discovery of Shaarli instance's URL. Fixes #1339 --- tests/http/HttpUtils/IndexUrlTest.php | 36 +++++++++++++++- tests/http/HttpUtils/IndexUrlTestWithConstant.php | 51 +++++++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 tests/http/HttpUtils/IndexUrlTestWithConstant.php (limited to 'tests') diff --git a/tests/http/HttpUtils/IndexUrlTest.php b/tests/http/HttpUtils/IndexUrlTest.php index 73d33cd4..cce45c51 100644 --- a/tests/http/HttpUtils/IndexUrlTest.php +++ b/tests/http/HttpUtils/IndexUrlTest.php @@ -5,12 +5,14 @@ namespace Shaarli\Http; +use PHPUnit\Framework\TestCase; + require_once 'application/http/HttpUtils.php'; /** * Unitary tests for index_url() */ -class IndexUrlTest extends \PHPUnit\Framework\TestCase +class IndexUrlTest extends TestCase { /** * If on the main page, remove "index.php" from the URL resource @@ -103,4 +105,36 @@ class IndexUrlTest extends \PHPUnit\Framework\TestCase ) ); } + + /** + * The route is stored in REQUEST_URI and subfolder + */ + public function testPageUrlWithRouteUnderSubfolder() + { + $this->assertEquals( + 'http://host.tld/subfolder/picture-wall', + page_url( + array( + 'HTTPS' => 'Off', + 'SERVER_NAME' => 'host.tld', + 'SERVER_PORT' => '80', + 'SCRIPT_NAME' => '/subfolder/index.php', + 'REQUEST_URI' => '/subfolder/picture-wall', + ) + ) + ); + + $this->assertEquals( + 'http://host.tld/subfolder/admin/picture-wall', + page_url( + array( + 'HTTPS' => 'Off', + 'SERVER_NAME' => 'host.tld', + 'SERVER_PORT' => '80', + 'SCRIPT_NAME' => '/subfolder/admin/index.php', + 'REQUEST_URI' => '/subfolder/admin/picture-wall', + ) + ) + ); + } } diff --git a/tests/http/HttpUtils/IndexUrlTestWithConstant.php b/tests/http/HttpUtils/IndexUrlTestWithConstant.php new file mode 100644 index 00000000..15ca3d72 --- /dev/null +++ b/tests/http/HttpUtils/IndexUrlTestWithConstant.php @@ -0,0 +1,51 @@ +assertEquals( + 'http://other-host.tld/subfolder/', + index_url( + array( + 'HTTPS' => 'Off', + 'SERVER_NAME' => 'host.tld', + 'SERVER_PORT' => '80', + 'SCRIPT_NAME' => '/index.php', + 'REQUEST_URI' => '/picture-wall', + ) + ) + ); + + $this->assertEquals( + 'http://other-host.tld/subfolder/', + index_url( + array( + 'HTTPS' => 'Off', + 'SERVER_NAME' => 'host.tld', + 'SERVER_PORT' => '80', + 'SCRIPT_NAME' => '/admin/index.php', + 'REQUEST_URI' => '/admin/picture-wall', + ) + ) + ); + } +} -- cgit v1.2.3