function TermParentsTest::testAddWithParents

Same name in other branches
  1. 9 core/modules/taxonomy/tests/src/Functional/TermParentsTest.php \Drupal\Tests\taxonomy\Functional\TermParentsTest::testAddWithParents()
  2. 8.9.x core/modules/taxonomy/tests/src/Functional/TermParentsTest.php \Drupal\Tests\taxonomy\Functional\TermParentsTest::testAddWithParents()
  3. 10 core/modules/taxonomy/tests/src/Functional/TermParentsTest.php \Drupal\Tests\taxonomy\Functional\TermParentsTest::testAddWithParents()

Tests specifying parents when creating terms.

File

core/modules/taxonomy/tests/src/Functional/TermParentsTest.php, line 67

Class

TermParentsTest
Tests managing taxonomy parents through the user interface.

Namespace

Drupal\Tests\taxonomy\Functional

Code

public function testAddWithParents() : void {
    $this->drupalGet("/admin/structure/taxonomy/manage/{$this->vocabularyId}/add");
    $page = $this->getSession()
        ->getPage();
    // Create a term without any parents.
    $term_1 = $this->submitAddTermForm('Test term 1');
    $expected = [
        [
            'target_id' => 0,
        ],
    ];
    $this->assertEquals($expected, $term_1->get('parent')
        ->getValue());
    // Explicitly selecting <root> should have the same effect as not selecting
    // anything.
    $page->selectFieldOption('Parent terms', '<root>');
    $term_2 = $this->submitAddTermForm('Test term 2');
    $this->assertEquals($expected, $term_2->get('parent')
        ->getValue());
    // Create two terms with the previously created ones as parents,
    // respectively.
    $page->selectFieldOption('Parent terms', 'Test term 1');
    $term_3 = $this->submitAddTermForm('Test term 3');
    $expected = [
        [
            'target_id' => $term_1->id(),
        ],
    ];
    $this->assertEquals($expected, $term_3->get('parent')
        ->getValue());
    $page->selectFieldOption('Parent terms', 'Test term 2');
    $term_4 = $this->submitAddTermForm('Test term 4');
    $expected = [
        [
            'target_id' => $term_2->id(),
        ],
    ];
    $this->assertEquals($expected, $term_4->get('parent')
        ->getValue());
    // Create a term with term 3 as parent.
    $page->selectFieldOption('Parent terms', '-Test term 3');
    $term_5 = $this->submitAddTermForm('Test term 5');
    $expected = [
        [
            'target_id' => $term_3->id(),
        ],
    ];
    $this->assertEquals($expected, $term_5->get('parent')
        ->getValue());
    // Create a term with multiple parents.
    $page->selectFieldOption('Parent terms', '--Test term 5');
    $page->selectFieldOption('Parent terms', '-Test term 4', TRUE);
    $term_6 = $this->submitAddTermForm('Test term 6');
    $expected = [
        [
            'target_id' => $term_5->id(),
        ],
        [
            'target_id' => $term_4->id(),
        ],
    ];
    $this->assertEquals($expected, $term_6->get('parent')
        ->getValue());
}

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