function ArgumentValidatorTermTest::testArgumentValidatorTerm

Same name and namespace in other branches
  1. 9 core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php \Drupal\Tests\taxonomy\Kernel\Views\ArgumentValidatorTermTest::testArgumentValidatorTerm()
  2. 8.9.x core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php \Drupal\Tests\taxonomy\Kernel\Views\ArgumentValidatorTermTest::testArgumentValidatorTerm()
  3. 11.x core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php \Drupal\Tests\taxonomy\Kernel\Views\ArgumentValidatorTermTest::testArgumentValidatorTerm()

Tests the term argument validator plugin.

File

core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php, line 59

Class

ArgumentValidatorTermTest
Tests the plugin of the taxonomy: term argument validator.

Namespace

Drupal\Tests\taxonomy\Kernel\Views

Code

public function testArgumentValidatorTerm() : void {
  $view = Views::getView('test_argument_validator_term');
  $view->initHandlers();
  // Test the single validator for term IDs.
  $view->argument['tid']->options['validate_options']['multiple'] = 0;
  // Pass in a single valid term.
  foreach ($this->terms as $term) {
    $this->assertTrue($view->argument['tid']
      ->setArgument($term->id()));
    $this->assertEquals($term->label(), $view->argument['tid']
      ->getTitle());
    $view->argument['tid']->validated_title = NULL;
    $view->argument['tid']->argument_validated = NULL;
  }
  // Pass in an invalid term.
  $this->assertFalse($view->argument['tid']
    ->setArgument(rand(1000, 10000)));
  $this->assertEmpty($view->argument['tid']
    ->getTitle());
  $view->argument['tid']->validated_title = NULL;
  $view->argument['tid']->argument_validated = NULL;
  // Test the multiple validator for term IDs.
  $view->argument['tid']->options['validate_options']['multiple'] = 1;
  $view->argument['tid']->options['break_phrase'] = TRUE;
  // Pass in a single term.
  $this->assertTrue($view->argument['tid']
    ->setArgument($this->terms[0]
    ->id()));
  $this->assertEquals($this->terms[0]
    ->label(), $view->argument['tid']
    ->getTitle());
  $view->argument['tid']->validated_title = NULL;
  $view->argument['tid']->argument_validated = NULL;
  // Check for multiple valid terms separated by commas.
  $this->assertTrue($view->argument['tid']
    ->setArgument(implode(',', $this->ids)));
  $this->assertEquals(implode(', ', $this->names), $view->argument['tid']
    ->getTitle());
  $view->argument['tid']->validated_title = NULL;
  $view->argument['tid']->argument_validated = NULL;
  // Check for multiple valid terms separated by plus signs.
  $this->assertTrue($view->argument['tid']
    ->setArgument(implode('+', $this->ids)));
  $this->assertEquals(implode(' + ', $this->names), $view->argument['tid']
    ->getTitle());
  $view->argument['tid']->validated_title = NULL;
  $view->argument['tid']->argument_validated = NULL;
  // Check for a single invalid term.
  $this->assertFalse($view->argument['tid']
    ->setArgument(rand(1000, 10000)));
  $this->assertEmpty($view->argument['tid']
    ->getTitle());
  $view->argument['tid']->validated_title = NULL;
  $view->argument['tid']->argument_validated = NULL;
  // Check for multiple invalid terms.
  $this->assertFalse($view->argument['tid']
    ->setArgument(implode(',', [
    rand(1000, 10000),
    rand(1000, 10000),
  ])));
  $this->assertEmpty($view->argument['tid']
    ->getTitle());
  $view->argument['tid']->validated_title = NULL;
  $view->argument['tid']->argument_validated = NULL;
}

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