function ArgumentValidatorTermNameTest::testArgumentValidatorTermNameAccess

Same name and namespace in other branches
  1. 9 core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermNameTest.php \Drupal\Tests\taxonomy\Kernel\Views\ArgumentValidatorTermNameTest::testArgumentValidatorTermNameAccess()
  2. 10 core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermNameTest.php \Drupal\Tests\taxonomy\Kernel\Views\ArgumentValidatorTermNameTest::testArgumentValidatorTermNameAccess()

Tests the access checking in term name argument validator plugin.

File

core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermNameTest.php, line 153

Class

ArgumentValidatorTermNameTest
Tests the plugin of the taxonomy: taxonomy_term_name argument validator.

Namespace

Drupal\Tests\taxonomy\Kernel\Views

Code

public function testArgumentValidatorTermNameAccess() : void {
    $this->installConfig([
        'user',
    ]);
    $this->setCurrentUser($this->createUser([
        'access content',
    ]));
    $view = Views::getView('test_taxonomy_name_argument');
    $view->initHandlers();
    // Enable access checking on validator.
    $view->argument['name']->options['validate_options']['access'] = TRUE;
    // Allow all bundles.
    $view->argument['name']->options['validate_options']['bundles'] = [];
    // A uniquely named unpublished term in an allowed bundle.
    $this->terms[0]
        ->setUnpublished()
        ->save();
    $this->assertFalse($view->argument['name']
        ->setArgument($this->names[0]));
    $view->argument['name']->validated_title = NULL;
    $view->argument['name']->argument_validated = NULL;
    // A name used by two terms in a single vocabulary. One is unpublished.
    // We re-name the second term to match the first one.
    $this->terms[1]
        ->set('name', $this->names[0])
        ->save();
    $this->names[1] = $this->terms[1]
        ->label();
    $this->assertTrue($view->argument['name']
        ->setArgument($this->names[0]));
    $this->assertEquals($this->names[0], $view->argument['name']
        ->getTitle());
    $view->argument['name']->validated_title = NULL;
    $view->argument['name']->argument_validated = NULL;
    // A name shared by a term in each vocabulary. One is unpublished.
    $this->terms[3]
        ->setUnpublished()
        ->save();
    $this->assertTrue($view->argument['name']
        ->setArgument($this->names[3]));
    $this->assertEquals($this->names[3], $view->argument['name']
        ->getTitle());
}

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