function RendererBubblingTest::testOverWriteCacheKeys

Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/Tests/Core/Render/RendererBubblingTest.php \Drupal\Tests\Core\Render\RendererBubblingTest::testOverWriteCacheKeys()
  2. 10 core/tests/Drupal/Tests/Core/Render/RendererBubblingTest.php \Drupal\Tests\Core\Render\RendererBubblingTest::testOverWriteCacheKeys()
  3. 11.x core/tests/Drupal/Tests/Core/Render/RendererBubblingTest.php \Drupal\Tests\Core\Render\RendererBubblingTest::testOverWriteCacheKeys()

Tests that an element's cache keys cannot be changed during its rendering.

File

core/tests/Drupal/Tests/Core/Render/RendererBubblingTest.php, line 617

Class

RendererBubblingTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Render%21Renderer.php/class/Renderer/9" title="Turns a render array into an HTML string." class="local">\Drupal\Core\Render\Renderer</a> @group Render

Namespace

Drupal\Tests\Core\Render

Code

public function testOverWriteCacheKeys() {
    $this->setUpRequest();
    $this->setupMemoryCache();
    // Ensure a logic exception
    $data = [
        '#cache' => [
            'keys' => [
                'llama',
                'bar',
            ],
        ],
        '#pre_render' => [
            __NAMESPACE__ . '\\BubblingTest::bubblingCacheOverwritePrerender',
        ],
    ];
    $this->expectException(\LogicException::class);
    $this->expectExceptionMessage('Cache keys may not be changed after initial setup. Use the contexts property instead to bubble additional metadata.');
    $this->renderer
        ->renderRoot($data);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.