You are here

public function WebformSubmissionTest::testDuplicate in Webform 8.5

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

Tests duplicating webform submission.

File

tests/src/Functional/WebformSubmissionTest.php, line 98

Class

WebformSubmissionTest
Tests for webform submission entity.

Namespace

Drupal\Tests\webform\Functional

Code

public function testDuplicate() {
  $admin_submission_user = $this
    ->drupalCreateUser([
    'administer webform submission',
  ]);

  /**************************************************************************/
  $this
    ->drupalLogin($admin_submission_user);
  $webform = Webform::load('contact');
  $sid = $this
    ->postSubmission($webform, [
    'subject' => '{Original Subject}',
    'message' => '{Original Message}',
  ]);
  $webform_submission = WebformSubmission::load($sid);

  // Check duplicate form title.
  $this
    ->drupalGet("admin/structure/webform/manage/contact/submission/{$sid}/duplicate");
  $this
    ->assertRaw('Duplicate Contact: Submission #' . $webform_submission
    ->serial());

  // Duplicate submission.
  $this
    ->drupalPostForm("admin/structure/webform/manage/contact/submission/{$sid}/duplicate", [
    'subject' => '{Duplicate Subject}',
  ], 'Send message');
  $duplicate_sid = $this
    ->getLastSubmissionId($webform);

  /** @var \Drupal\webform\WebformSubmissionInterface $duplicate_submission */
  $duplicate_submission = WebformSubmission::load($duplicate_sid);

  // Check duplicate submission.
  $this
    ->assertNotEqual($sid, $duplicate_sid);
  $this
    ->assertEqual($duplicate_submission
    ->getElementData('subject'), '{Duplicate Subject}');
  $this
    ->assertEqual($duplicate_submission
    ->getElementData('message'), '{Original Message}');
}