You are here

public function FieldPluginBaseTest::testRenderAsExternalLinkWithPathAndTokens in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest::testRenderAsExternalLinkWithPathAndTokens()
  2. 10 core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest::testRenderAsExternalLinkWithPathAndTokens()

Tests rendering of a link with a path and options.

@dataProvider providerTestRenderAsExternalLinkWithPathAndTokens @covers ::renderAsLink

File

core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php, line 597
Contains \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest.

Class

FieldPluginBaseTest
@coversDefaultClass \Drupal\views\Plugin\views\field\FieldPluginBase @group views

Namespace

Drupal\Tests\views\Unit\Plugin\field

Code

public function testRenderAsExternalLinkWithPathAndTokens($path, $tokens, $link_html, $context) {
  $alter = [
    'make_link' => TRUE,
    'path' => $path,
    'url' => '',
  ];
  if (isset($context['alter'])) {
    $alter += $context['alter'];
  }
  $this
    ->setUpUrlIntegrationServices();
  $this
    ->setupDisplayWithEmptyArgumentsAndFields();
  $this->executable->build_info['substitutions'] = $tokens;
  $field = $this
    ->setupTestField([
    'alter' => $alter,
  ]);
  $field->field_alias = 'key';
  $row = new ResultRow([
    'key' => 'value',
  ]);
  $build = [
    '#type' => 'inline_template',
    '#template' => $path,
    '#context' => [
      'foo' => $context['context_path'],
    ],
    '#post_render' => [
      function () {
      },
    ],
  ];
  $this->renderer
    ->expects($this
    ->once())
    ->method('renderPlain')
    ->with($build)
    ->willReturn($context['context_path']);
  $result = $field
    ->advancedRender($row);
  $this
    ->assertEquals($link_html, $result);
}