X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/63cb6015a8c6db453f5551e50c04bf6ebbc0f3f1..refs/pull/5721/head:/tests/UrlTest.php diff --git a/tests/UrlTest.php b/tests/UrlTest.php index b9f1acf4b..c1a4d4f1c 100644 --- a/tests/UrlTest.php +++ b/tests/UrlTest.php @@ -3,21 +3,19 @@ namespace Tests; use BookStack\Http\Request; -use function url; -use function request; class UrlTest extends TestCase { public function test_url_helper_takes_custom_url_into_account() { - $this->runWithEnv('APP_URL', 'http://example.com/bookstack', function () { + $this->runWithEnv(['APP_URL' => 'http://example.com/bookstack'], function () { $this->assertEquals('http://example.com/bookstack/books', url('/http/source.bookstackapp.com/books')); }); } public function test_url_helper_sets_correct_scheme_even_when_request_scheme_is_different() { - $this->runWithEnv('APP_URL', 'https://example.com/', function () { + $this->runWithEnv(['APP_URL' => 'https://example.com/'], function () { $this->get('http://example.com/login')->assertSee('https://example.com/dist/styles.css'); }); } @@ -34,4 +32,18 @@ class UrlTest extends TestCase $this->assertEquals('/cool/docs', $bsRequest->getBaseUrl()); $this->assertEquals('https://donkey.example.com:8091/cool/docs/login', $bsRequest->getUri()); } + + public function test_app_url_without_path_does_not_duplicate_path_slash() + { + config()->set('app.url', 'https://donkey.example.com'); + + // Have to manually get and wrap request in our custom type due to testing mechanics + $this->get('/settings'); + $bsRequest = Request::createFrom(request()); + + $this->assertEquals('https://donkey.example.com', $bsRequest->getSchemeAndHttpHost()); + $this->assertEquals('', $bsRequest->getBaseUrl()); + $this->assertEquals('/settings', $bsRequest->getPathInfo()); + $this->assertEquals('https://donkey.example.com/settings', $bsRequest->getUri()); + } }