You are here

class PluginBaseTest in Drupal 10

Same name in this branch
  1. 10 core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php \Drupal\Tests\Component\Plugin\PluginBaseTest
  2. 10 core/modules/views/tests/src/Unit/PluginBaseTest.php \Drupal\Tests\views\Unit\PluginBaseTest
  3. 10 core/modules/views/tests/src/Kernel/Plugin/PluginBaseTest.php \Drupal\Tests\views\Kernel\Plugin\PluginBaseTest
Same name and namespace in other branches
  1. 8 core/modules/views/tests/src/Kernel/Plugin/PluginBaseTest.php \Drupal\Tests\views\Kernel\Plugin\PluginBaseTest
  2. 9 core/modules/views/tests/src/Kernel/Plugin/PluginBaseTest.php \Drupal\Tests\views\Kernel\Plugin\PluginBaseTest

Tests the PluginBase class.

@group views

Hierarchy

  • class \Drupal\Tests\views\Kernel\Plugin\PluginBaseTest extends \Drupal\KernelTests\KernelTestBase

Expanded class hierarchy of PluginBaseTest

File

core/modules/views/tests/src/Kernel/Plugin/PluginBaseTest.php, line 20
Contains \Drupal\views\Tests\Plugin\PluginBaseTest.

Namespace

Drupal\Tests\views\Kernel\Plugin
View source
class PluginBaseTest extends KernelTestBase {

  /**
   * @var TestPluginBase
   */
  protected $testPluginBase;
  protected function setUp() : void {
    parent::setUp();
    $this->testPluginBase = new TestPluginBase();
  }

  /**
   * Tests that the token replacement in views works correctly.
   */
  public function testViewsTokenReplace() {
    $text = '{{ langcode__value }} means {{ langcode }}';
    $tokens = [
      '{{ langcode }}' => Markup::create('English'),
      '{{ langcode__value }}' => 'en',
    ];
    $result = \Drupal::service('renderer')
      ->executeInRenderContext(new RenderContext(), function () use ($text, $tokens) {
      return $this->testPluginBase
        ->viewsTokenReplace($text, $tokens);
    });
    $this
      ->assertSame('en means English', $result);
  }

  /**
   * Tests that the token replacement in views works correctly with dots.
   */
  public function testViewsTokenReplaceWithDots() {
    $text = '{{ argument.first }} comes before {{ argument.second }}';
    $tokens = [
      '{{ argument.first }}' => 'first',
      '{{ argument.second }}' => 'second',
    ];
    $result = \Drupal::service('renderer')
      ->executeInRenderContext(new RenderContext(), function () use ($text, $tokens) {
      return $this->testPluginBase
        ->viewsTokenReplace($text, $tokens);
    });
    $this
      ->assertSame('first comes before second', $result);

    // Test tokens with numeric indexes.
    $text = '{{ argument.0.first }} comes before {{ argument.1.second }}';
    $tokens = [
      '{{ argument.0.first }}' => 'first',
      '{{ argument.1.second }}' => 'second',
    ];
    $result = \Drupal::service('renderer')
      ->executeInRenderContext(new RenderContext(), function () use ($text, $tokens) {
      return $this->testPluginBase
        ->viewsTokenReplace($text, $tokens);
    });
    $this
      ->assertSame('first comes before second', $result);
  }

  /**
   * Tests viewsTokenReplace without any twig tokens.
   */
  public function testViewsTokenReplaceWithTwigTokens() {
    $text = 'Just some text';
    $tokens = [];
    $result = $this->testPluginBase
      ->viewsTokenReplace($text, $tokens);
    $this
      ->assertSame('Just some text', $result);
  }

}

Members