public function WebformSubmissionTest::testWebformSubmission in Webform 6.x
Same name and namespace in other branches
- 8.5 tests/src/Functional/WebformSubmissionTest.php \Drupal\Tests\webform\Functional\WebformSubmissionTest::testWebformSubmission()
Tests webform submission entity.
File
- tests/
src/ Functional/ WebformSubmissionTest.php, line 32
Class
- WebformSubmissionTest
- Tests for webform submission entity.
Namespace
Drupal\Tests\webform\FunctionalCode
public function testWebformSubmission() {
$normal_user = $this
->drupalCreateUser();
/** @var \Drupal\webform\WebformInterface $webform */
$webform = Webform::load('test_submissions');
/** @var \Drupal\webform\WebformSubmissionInterface[] $submissions */
$submissions = array_values(\Drupal::entityTypeManager()
->getStorage('webform_submission')
->loadByProperties([
'webform_id' => 'test_submissions',
]));
/** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */
$webform_submission = reset($submissions);
/**************************************************************************/
// Check create submission.
$this
->assertInstanceOf(WebformSubmission::class, $webform_submission);
// Check get webform.
$this
->assertEqual($webform_submission
->getWebform()
->id(), $webform
->id());
// Check that source entity is NULL.
$this
->assertNull($webform_submission
->getSourceEntity());
// Check getting source URL without uri, which will still return
// the webform.
$webform_submission
->set('uri', NULL)
->save();
$this
->assertEqual($webform_submission
->getSourceUrl()
->toString(), $webform
->toUrl('canonical', [
'absolute' => TRUE,
])
->toString());
// Check get source URL set to user 1.
$webform_submission
->set('entity_type', 'user')
->set('entity_id', $normal_user
->id())
->save();
$this
->assertEqual($webform_submission
->getSourceUrl()
->toString(), $normal_user
->toUrl('canonical', [
'absolute' => TRUE,
])
->toString());
// Check missing webform_id exception.
try {
WebformSubmission::create();
$this
->fail('Webform id (webform_id) is required to create a webform submission.');
} catch (\Exception $exception) {
$this
->pass('Webform id (webform_id) is required to create a webform submission.');
}
// Check creating a submission with default data.
$webform_submission = WebformSubmission::create([
'webform_id' => $webform
->id(),
'data' => [
'custom' => 'value',
],
]);
$this
->assertEqual($webform_submission
->getData(), [
'custom' => 'value',
]);
// Check submission label.
$webform_submission
->save();
$this
->assertEqual($webform_submission
->label(), $webform
->label() . ': Submission #' . $webform_submission
->serial());
// Check test submission URI.
// @see \Drupal\webform\WebformSubmissionForm::save
$this
->drupalLogin($this->rootUser);
$sid = $this
->postSubmissionTest($webform);
$webform_submission = WebformSubmission::load($sid);
$this
->assertEqual($webform_submission
->getSourceUrl()
->toString(), $webform
->toUrl('canonical', [
'absolute' => TRUE,
])
->toString());
$this
->drupalLogout();
}