public function WebformNodeReferencesTest::testReferences in Webform 8.5
Same name and namespace in other branches
- 6.x modules/webform_node/tests/src/Functional/WebformNodeReferencesTest.php \Drupal\Tests\webform_node\Functional\WebformNodeReferencesTest::testReferences()
Tests webform node references.
File
- modules/
webform_node/ tests/ src/ Functional/ WebformNodeReferencesTest.php, line 29
Class
- WebformNodeReferencesTest
- Tests for webform node references.
Namespace
Drupal\Tests\webform_node\FunctionalCode
public function testReferences() {
global $base_path;
$this
->drupalLogin($this->rootUser);
$this
->drupalPlaceBlock('help_block');
// Check references tab's empty message.
$this
->drupalGet('/admin/structure/webform/manage/contact/references');
$this
->assertRaw('There are no webform node references.');
$this
->assertLink('Add Webform');
$this
->assertLinkByHref($base_path . 'node/add/webform?webform_id=contact');
// Create webform node.
$node = $this
->drupalCreateNode([
'type' => 'webform',
]);
$node->webform->target_id = 'contact';
$node
->save();
$this
->drupalGet('/admin/structure/webform/manage/contact/references');
// Check references tab does not include empty message.
$this
->assertNoRaw('There are no webform node references.');
// Check references tabs includes webform node.
$this
->assertLink($node
->label());
// Check references tab local actions.
$this
->assertRaw('<li><a href="' . $base_path . 'node/add/webform?webform_id=contact" class="button button-action" data-drupal-link-query="{"webform_id":"contact"}" data-drupal-link-system-path="node/add/webform">Add Webform</a></li>');
// Check node with prepopulated webform.
$this
->drupalGet('/node/add/webform', [
'query' => [
'webform_id' => 'contact',
],
]);
$this
->assertFieldByName('webform[0][target_id]', 'contact');
// Check node without prepopulated webform warning.
$this
->drupalGet('/node/add/webform');
$this
->assertRaw('Webforms must first be <a href="' . $base_path . 'admin/structure/webform">created</a> before referencing them.');
// Check webform with variants.
$this
->drupalGet('/admin/structure/webform/manage/test_variant_multiple/references');
$this
->assertNoLinkByHref($base_path . 'node/add/webform?webform_id=test_variant_multiple');
$this
->assertLink('Add reference');
$this
->assertLinkByHref($base_path . 'admin/structure/webform/manage/test_variant_multiple/references/add');
// Check that add reference form redirects to the create content form.
$edit = [
'bundle' => 'webform',
'webform_title' => 'Testing 123',
'webform_default_data[letter]' => 'a',
'webform_default_data[number]' => '1',
];
$this
->drupalPostForm('/admin/structure/webform/manage/test_variant_multiple/references/add', $edit, 'Create content');
$this
->assertFieldByName('title[0][value]', 'Testing 123');
$this
->assertOptionSelected('edit-webform-0-target-id', 'test_variant_multiple');
$this
->assertRaw('>letter: a
number: '1'
</textarea>');
}