WebformElementEntityAutocompleteTest.php in Webform 6.x
File
tests/src/Functional/Element/WebformElementEntityAutocompleteTest.php
View source
<?php
namespace Drupal\Tests\webform\Functional\Element;
use Drupal\taxonomy\Entity\Term;
use Drupal\taxonomy\Entity\Vocabulary;
use Drupal\webform\Entity\Webform;
class WebformElementEntityAutocompleteTest extends WebformElementBrowserTestBase {
public static $modules = [
'filter',
'user',
'node',
'taxonomy',
'webform',
];
protected static $testWebforms = [
'test_element_entity_autocomplete',
];
public function testEntityReferenceTest() {
$node_1 = $this
->drupalCreateNode([
'title' => 'node 01',
]);
$node_2 = $this
->drupalCreateNode([
'title' => 'node 02',
]);
$vocabulary = Vocabulary::create([
'vid' => 'tags',
'name' => 'Tags',
]);
$vocabulary
->save();
$term_1 = Term::create([
'name' => 'term 01',
'vid' => 'tags',
]);
$term_1
->save();
$webform = Webform::load('test_element_entity_autocomplete');
$this
->drupalGet('/webform/test_element_entity_autocomplete');
$this
->assertFieldByName('entity_autocomplete_user_default', 'admin (1)');
$this
->assertFieldByName('entity_autocomplete_user_tags', 'admin (1)');
$this
->assertFieldByName('entity_autocomplete_user_multiple[items][0][_item_]', 'admin (1)');
$this
->assertFieldByName('entity_autocomplete_node_default', $node_1
->label() . ' (' . $node_1
->id() . ')');
$this
->assertFieldByName('entity_autocomplete_term_tags_autocreate', $term_1
->label() . ' (' . $term_1
->id() . ')');
$this
->assertFieldByName('entity_autocomplete_term_multiple_autocreate[items][0][_item_]', $term_1
->label() . ' (' . $term_1
->id() . ')');
$this
->postSubmission($webform);
$this
->assertRaw("entity_autocomplete_user_default: '1'\nentity_autocomplete_user_tags:\n - '1'\nentity_autocomplete_user_multiple:\n - '1'\nentity_autocomplete_node_default: '1'\nentity_autocomplete_term_tags_autocreate:\n - '1'\nentity_autocomplete_term_multiple_autocreate:\n - '1'");
$edit = [
'entity_autocomplete_term_tags_autocreate' => 'term 02',
'entity_autocomplete_term_multiple_autocreate[items][0][_item_]' => 'term 03',
'entity_autocomplete_term_multiple_autocreate[items][1][_item_]' => 'term 04',
];
$this
->postSubmission($webform, $edit);
$this
->assertRaw("entity_autocomplete_term_tags_autocreate:\n - '2'\nentity_autocomplete_term_multiple_autocreate:\n - '3'\n - '4'");
}
}