Issue #3497935 by prudloff, smustgrave: Renderer::getCurrentRenderContext() triggers a TypeError when there is no current request
parent
02513abe69
commit
e7bb6157e6
|
@ -607,6 +607,11 @@ class Renderer implements RendererInterface {
|
|||
*/
|
||||
protected function getCurrentRenderContext() {
|
||||
$request = $this->requestStack->getCurrentRequest();
|
||||
|
||||
if (is_null($request)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return static::$contextCollection[$request] ?? NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace Drupal\Tests\Core\Render;
|
||||
|
||||
use Drupal\Core\Render\RenderContext;
|
||||
use Drupal\Component\Render\MarkupInterface;
|
||||
use Drupal\Core\Access\AccessResult;
|
||||
use Drupal\Core\Access\AccessResultInterface;
|
||||
|
@ -1074,6 +1075,23 @@ class RendererTest extends RendererTestBase {
|
|||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::hasRenderContext
|
||||
*/
|
||||
public function testHasRenderContext(): void {
|
||||
// Tests with no render context.
|
||||
$this->assertFalse($this->renderer->hasRenderContext());
|
||||
|
||||
// Tests in a render context.
|
||||
$this->renderer->executeInRenderContext(new RenderContext(), function () {
|
||||
$this->assertTrue($this->renderer->hasRenderContext());
|
||||
});
|
||||
|
||||
// Test that the method works with no current request.
|
||||
$this->requestStack->pop();
|
||||
$this->assertFalse($this->renderer->hasRenderContext());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue