mirror of
https://github.com/flarum/core.git
synced 2025-08-05 16:07:34 +02:00
Don't resolve routes early.
In normal Flarum, extensions are only enabled during requests. Here, however, we enable some during boot. This resolves the FilesystemManager early, which resolves the Url Generator early. To fix this, we directly provide a filesystem disk for assets instead of getting it from the filesystem manager.
This commit is contained in:
@@ -14,5 +14,6 @@ namespace Flarum\Testing;
|
||||
use Flarum\Extend;
|
||||
|
||||
return [
|
||||
(new Extend\Settings)->serializeToForum('notARealSetting', 'not.a.real.setting')
|
||||
(new Extend\Settings)->serializeToForum('notARealSetting', 'not.a.real.setting'),
|
||||
(new Extend\Frontend('forum'))->route('/added-by-extension', 'added-by-extension')
|
||||
];
|
||||
|
@@ -127,4 +127,61 @@ class TestCaseTest extends TestCase
|
||||
|
||||
$this->assertStringContainsString('notARealSetting', $response->getBody()->getContents());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function can_apply_route_extenders()
|
||||
{
|
||||
$this->extend(
|
||||
(new Extend\Frontend('forum'))->route('/arbitrary', 'arbitrary')
|
||||
);
|
||||
|
||||
$response = $this->send(
|
||||
$this->request('GET', '/arbitrary')
|
||||
);
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function routes_added_by_current_extension_not_accessible_by_default()
|
||||
{
|
||||
$response = $this->send(
|
||||
$this->request('GET', '/added-by-extension')
|
||||
);
|
||||
|
||||
$this->assertEquals(404, $response->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function routes_added_by_current_extension_accessible()
|
||||
{
|
||||
$this->extension('flarum-testing-tests');
|
||||
|
||||
$response = $this->send(
|
||||
$this->request('GET', '/added-by-extension')
|
||||
);
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function extension_url_correct()
|
||||
{
|
||||
$this->extension('flarum-testing-tests');
|
||||
$expected = $this->app()->getContainer()->make('filesystem')->disk('flarum-assets')->url('/flarum-testing-tests/');
|
||||
// We need to test this since we override it.
|
||||
$extensions = $this->app()->getContainer()->make('flarum.extensions');
|
||||
$currExtension = $extensions->getExtension('flarum-testing-tests');
|
||||
$baseAssetsUrl = $extensions->getAsset($currExtension, '');
|
||||
|
||||
$this->assertEquals($expected, $baseAssetsUrl);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user