function FieldPluginBaseTest::testRenderAsLinkWithUrlAndOptions

Same name in other branches
  1. 9 core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest::testRenderAsLinkWithUrlAndOptions()
  2. 8.9.x core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest::testRenderAsLinkWithUrlAndOptions()
  3. 10 core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldPluginBaseTest::testRenderAsLinkWithUrlAndOptions()

Tests link rendering with a URL and options.

@dataProvider providerTestRenderAsLinkWithUrlAndOptions @covers ::renderAsLink

File

core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php, line 389

Class

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

Namespace

Drupal\Tests\views\Unit\Plugin\field

Code

public function testRenderAsLinkWithUrlAndOptions(Url $url, $alter, Url $expected_url, $url_path, Url $expected_link_url, $final_html) : void {
    $alter += [
        'make_link' => TRUE,
        'url' => $url,
    ];
    $this->setUpUrlIntegrationServices();
    $this->setupDisplayWithEmptyArgumentsAndFields();
    $field = $this->setupTestField([
        'alter' => $alter,
    ]);
    $field->field_alias = 'key';
    $row = new ResultRow([
        'key' => 'value',
    ]);
    $expected_url->setOptions($expected_url->getOptions() + static::DEFAULT_URL_OPTIONS);
    $expected_link_url->setUrlGenerator($this->urlGenerator);
    $expected_url_options = $expected_url->getOptions();
    unset($expected_url_options['attributes']);
    $this->urlGenerator
        ->expects($this->once())
        ->method('generateFromRoute')
        ->with($expected_url->getRouteName(), $expected_url->getRouteParameters(), $expected_url_options, TRUE)
        ->willReturn((new GeneratedUrl())->setGeneratedUrl($url_path));
    $result = $field->advancedRender($row);
    $this->assertEquals($final_html, $result);
}

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