1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-19 22:03:19 +03:00
Files
bookstack/tests/UrlTest.php
Dan Brown d13abc7e1d Mail: Removed custom symfony/mailer fork
Moved to standard symfony mailer now that my patches have been
upstreamed. This changes the config to work with the symfony option,
following the same overall logic.
Also updated testing to allow test runs via mulitple custom env options.

Closes #5636
2025-07-15 15:24:31 +01:00

50 lines
1.9 KiB
PHP

<?php
namespace Tests;
use BookStack\Http\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->assertEquals('http://example.com/bookstack/books', url('/books'));
});
}
public function test_url_helper_sets_correct_scheme_even_when_request_scheme_is_different()
{
$this->runWithEnv(['APP_URL' => 'https://example.com/'], function () {
$this->get('http://example.com/login')->assertSee('https://example.com/dist/styles.css');
});
}
public function test_app_url_forces_overrides_on_base_request()
{
config()->set('app.url', 'https://donkey.example.com:8091/cool/docs');
// Have to manually get and wrap request in our custom type due to testing mechanics
$this->get('/login');
$bsRequest = Request::createFrom(request());
$this->assertEquals('https://donkey.example.com:8091', $bsRequest->getSchemeAndHttpHost());
$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());
}
}