public function TermParentsTest::testAddWithParents in Drupal 9
Same name and namespace in other branches
- 8 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 65
Class
- TermParentsTest
- Tests managing taxonomy parents through the user interface.
Namespace
Drupal\Tests\taxonomy\FunctionalCode
public function testAddWithParents() {
$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());
}