function FieldPluginBaseTest::testRenderAsExternalLinkWithPathAndTokens

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest::testRenderAsExternalLinkWithPathAndTokens()
  2. 8.9.x core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest::testRenderAsExternalLinkWithPathAndTokens()
  3. 11.x 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 589

Class

FieldPluginBaseTest
@coversDefaultClass \Drupal\views\Plugin\views\field\FieldPluginBase[[api-linebreak]] @group views

Namespace

Drupal\Tests\views\Unit\Plugin\field

Code

public function testRenderAsExternalLinkWithPathAndTokens($path, $tokens, $link_html, $context) : void {
  $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('renderInIsolation')
    ->with($build)
    ->willReturn($context['context_path']);
  $result = $field->advancedRender($row);
  $this->assertEquals($link_html, $result);
}

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