You are here

public function WebformSettingsSerialTest::testSettings in Webform 8.5

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

Tests webform submission serial number.

File

tests/src/Functional/Settings/WebformSettingsSerialTest.php, line 19

Class

WebformSettingsSerialTest
Tests for webform submission serial number.

Namespace

Drupal\Tests\webform\Functional\Settings

Code

public function testSettings() {

  // Login the admin user.
  $this
    ->drupalLogin($this->rootUser);

  /** @var \Drupal\webform\WebformInterface $webform */
  $webform = Webform::load('contact');

  // Set next serial to 99.
  $this
    ->drupalPostForm('/admin/structure/webform/manage/contact/settings/submissions', [
    'next_serial' => 99,
  ], 'Save');

  // Check next serial is 99.
  $sid = $this
    ->postSubmissionTest($webform);
  $webform_submission = WebformSubmission::load($sid);
  $this
    ->assertEqual($webform_submission
    ->serial(), 99);
  $this
    ->assertNotEqual($webform_submission
    ->serial(), $sid);

  // Check that next serial is set to max serial.
  $this
    ->drupalPostForm('/admin/structure/webform/manage/contact/settings/submissions', [
    'next_serial' => 1,
  ], 'Save');
  $this
    ->assertRaw('The next submission number was increased to 100 to make it higher than existing submissions.');

  // Disable serial.
  $webform
    ->setSetting('serial_disabled', TRUE)
    ->save();

  // Check next serial is not 100 but equal to the sid.
  $sid = $this
    ->postSubmissionTest($webform);
  $webform_submission = WebformSubmission::load($sid);
  $this
    ->assertNotEqual($webform_submission
    ->serial(), 100);
  $this
    ->assertEqual($webform_submission
    ->serial(), $sid);
}