You are here

public function RendererBubblingTest::testContextBubblingEdgeCases in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/Render/RendererBubblingTest.php \Drupal\Tests\Core\Render\RendererBubblingTest::testContextBubblingEdgeCases()

Tests cache context bubbling in edge cases, because it affects the CID.

::testBubblingWithPrerender() already tests the common case.

@dataProvider providerTestContextBubblingEdgeCases

File

core/tests/Drupal/Tests/Core/Render/RendererBubblingTest.php, line 137
Contains \Drupal\Tests\Core\Render\RendererBubblingTest.

Class

RendererBubblingTest
@coversDefaultClass \Drupal\Core\Render\Renderer @group Render

Namespace

Drupal\Tests\Core\Render

Code

public function testContextBubblingEdgeCases(array $element, array $expected_top_level_contexts, array $expected_cache_items) {
  $this
    ->setUpRequest();
  $this
    ->setupMemoryCache();
  $this->cacheContextsManager
    ->expects($this
    ->any())
    ->method('convertTokensToKeys')
    ->willReturnArgument(0);
  $this->renderer
    ->renderRoot($element);
  $this
    ->assertEqualsCanonicalizing($expected_top_level_contexts, $element['#cache']['contexts'], 'Expected cache contexts found.');
  foreach ($expected_cache_items as $cid => $expected_cache_item) {
    $this
      ->assertRenderCacheItem($cid, $expected_cache_item);
  }
}