SystemFilesTest.php
Namespace
Drupal\FunctionalTests\RoutingFile
-
core/
tests/ Drupal/ FunctionalTests/ Routing/ SystemFilesTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\FunctionalTests\Routing;
use Drupal\Component\Serialization\Yaml;
use Drupal\Tests\BrowserTestBase;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
/**
* Tests system.files route.
*/
class SystemFilesTest extends BrowserTestBase {
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected function prepareSettings() : void {
parent::prepareSettings();
// Allow info files to be accessed by the `module` and `theme` stream
// wrappers.
$services_file = $this->siteDirectory . '/services.yml';
$this->assertFileExists($services_file);
$services = file_get_contents($services_file);
$services = Yaml::decode($services);
$services['parameters']['stream_wrapper.allowed_file_extensions'] = [
'module' => [
'yml',
],
'theme' => [
'yml',
],
];
file_put_contents($services_file, Yaml::encode($services));
}
/**
* Test theme and module stream wrappers are not available via system.files route.
*/
public function testExtensionStreamWrappers() : void {
$path = 'system/system.info.yml';
$this->assertFileExists('module://' . $path);
$this->drupalGet('/system/files/module', [
'query' => [
'file' => $path,
],
]);
$this->assertSession()
->statusCodeEquals(404);
$this->drupalGet('/system/files/module/' . $path);
$this->assertSession()
->statusCodeEquals(404);
$path = 'stark/stark.info.yml';
$this->assertFileExists('theme://' . $path);
$this->drupalGet('/system/files/theme', [
'query' => [
'file' => $path,
],
]);
$this->assertSession()
->statusCodeEquals(404);
$this->drupalGet('/system/files/theme/' . $path);
$this->assertSession()
->statusCodeEquals(404);
}
}
Classes
| Title | Deprecated | Summary |
|---|---|---|
| SystemFilesTest | Tests system.files route. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.