You are here

public function WebformSubmissionGenerateTest::testWebformSubmissionGenerate in Webform 8.5

Same name and namespace in other branches
  1. 6.x tests/src/Functional/WebformSubmissionGenerateTest.php \Drupal\Tests\webform\Functional\WebformSubmissionGenerateTest::testWebformSubmissionGenerate()

Tests webform submission entity.

File

tests/src/Functional/WebformSubmissionGenerateTest.php, line 18

Class

WebformSubmissionGenerateTest
Tests for webform submission generator.

Namespace

Drupal\Tests\webform\Functional

Code

public function testWebformSubmissionGenerate() {
  $this
    ->drupalLogin($this->rootUser);
  $webform = Webform::load('contact');

  /**************************************************************************/

  // Test tab.

  /**************************************************************************/

  // Check test form.
  $sid = $this
    ->postSubmissionTest($webform);
  $webform_submission = WebformSubmission::load($sid);

  // Note that only 'message' and 'subject' have predefined #test values.
  $test_data = [
    'message' => 'Please ignore this email.',
    'subject' => 'Testing contact webform from Drupal',
  ];
  $data = $webform_submission
    ->getData();
  $this
    ->assertEqual($data['message'], $test_data['message']);
  $this
    ->assertEqual($data['subject'], $test_data['subject']);

  // Check test form classes and values.
  $this
    ->drupalGet('/webform/contact/test');
  $this
    ->assertCssSelect('.webform-submission-form.webform-submission-test-form.webform-submission-contact-form.webform-submission-contact-test-form');
  foreach ($test_data as $name => $value) {
    $this
      ->assertFieldByName($name, $value);
  }

  /**************************************************************************/

  // Test querystring parameter.

  /**************************************************************************/

  // Check add form classes and empty values.
  $this
    ->drupalGet('/webform/contact');
  $this
    ->assertCssSelect('.webform-submission-form.webform-submission-add-form.webform-submission-contact-form.webform-submission-contact-add-form');
  foreach ($test_data as $name => $value) {
    $this
      ->assertNoFieldByName($name, $value);
  }

  // Check add form classes and values with querystring parameter.
  $this
    ->drupalGet('/webform/contact', [
    'query' => [
      '_webform_test' => 'contact',
    ],
  ]);
  $this
    ->assertCssSelect('.webform-submission-form.webform-submission-test-form.webform-submission-contact-form.webform-submission-contact-test-form');
  foreach ($test_data as $name => $value) {
    $this
      ->assertFieldByName($name, $value);
  }
}