function FieldPluginBaseTest::testRenderAsExternalLinkWithPathAndTokens

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

Test 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

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);
}

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