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>');
}