function RouteProcessorCsrfTest::testProcessOutbound
Tests the processOutbound() method with a _csrf_token route requirement.
File
- 
              core/tests/ Drupal/ Tests/ Core/ Access/ RouteProcessorCsrfTest.php, line 68 
Class
- RouteProcessorCsrfTest
- @coversDefaultClass \Drupal\Core\Access\RouteProcessorCsrf[[api-linebreak]] @group Access
Namespace
Drupal\Tests\Core\AccessCode
public function testProcessOutbound() : void {
  $route = new Route('/test-path', [], [
    '_csrf_token' => 'TRUE',
  ]);
  $parameters = [];
  $bubbleable_metadata = new BubbleableMetadata();
  $this->processor
    ->processOutbound('test', $route, $parameters, $bubbleable_metadata);
  // 'token' should be added to the parameters array.
  $this->assertArrayHasKey('token', $parameters);
  // Bubbleable metadata of routes with a _csrf_token route requirement is a
  // placeholder.
  $path = 'test-path';
  $placeholder = Crypt::hashBase64($path);
  $placeholder_render_array = [
    '#lazy_builder' => [
      'route_processor_csrf:renderPlaceholderCsrfToken',
      [
        $path,
      ],
    ],
  ];
  $this->assertSame($parameters['token'], $placeholder);
  $this->assertEquals((new BubbleableMetadata())->setAttachments([
    'placeholders' => [
      $placeholder => $placeholder_render_array,
    ],
  ]), $bubbleable_metadata);
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
