diff --git a/core/lib/Drupal/Core/StreamWrapper/ExtensionStreamBase.php b/core/lib/Drupal/Core/StreamWrapper/ExtensionStreamBase.php index c54e3f6..8b2e463 100644 --- a/core/lib/Drupal/Core/StreamWrapper/ExtensionStreamBase.php +++ b/core/lib/Drupal/Core/StreamWrapper/ExtensionStreamBase.php @@ -81,6 +81,9 @@ public function dirname($uri = NULL) { if (!isset($uri)) { $uri = $this->uri; } + else { + $this->uri = $uri; + } list($scheme) = explode('://', $uri, 2); $dirname = dirname($this->getTarget($uri)); diff --git a/core/modules/system/tests/src/Kernel/File/ExtensionStreamTest.php b/core/modules/system/tests/src/Kernel/File/ExtensionStreamTest.php index f31d581..7ba9e4c 100644 --- a/core/modules/system/tests/src/Kernel/File/ExtensionStreamTest.php +++ b/core/modules/system/tests/src/Kernel/File/ExtensionStreamTest.php @@ -32,6 +32,13 @@ class ExtensionStreamTest extends KernelTestBase { protected $baseUrl; /** + * The list of modules to enable. + * + * @var string[] + */ + public static $modules = ['system']; + + /** * {@inheritdoc} */ public function setUp() { @@ -147,6 +154,13 @@ public function testStreamWrapperMethods($uri, $dirname, $realpath, $getExternal } /** + * Test when dirname() is called directly without setting a URI first. + */ + public function testDirnameAsParameter() { + $this->assertEquals('module://system', $this->streamWrappers['module']->dirname('module://system/system.admin.css')); + } + + /** * Provides test cases for testStreamWrapperMethods(). * * @return array[]