SubmissionIntegrationTest.php in Little helpers 7.2
File
tests/Webform/SubmissionIntegrationTest.php
View source
<?php
namespace Drupal\little_helpers\Webform;
use Upal\DrupalUnitTestCase;
class SubmissionIntegrationTest extends DrupalUnitTestCase {
public function setUp() : void {
parent::setUp();
module_load_include('inc', 'webform', 'includes/webform.submissions');
$node = (object) [
'title' => 'test webform',
'type' => 'webform',
];
node_object_prepare($node);
$node->webform['components'][1] = [
'type' => 'email',
'form_key' => 'email',
'pid' => 0,
'name' => 'Email',
'weight' => 0,
];
node_save($node);
$this->node = node_load($node->nid);
$form_state['values']['submitted'][1] = 'test@example.com';
$this->submission = webform_submission_create($this->node, $GLOBALS['user'], $form_state);
webform_submission_insert($this->node, $this->submission);
$this->submission->confirmed_hook_called = FALSE;
}
public function tearDown() : void {
node_delete($this->node->nid);
parent::tearDown();
}
public function testSaveUpdate() {
$s = Submission::load($this->node->nid, $this->submission->sid);
$this
->assertTrue((bool) $s->is_draft);
$s->is_draft = FALSE;
$s
->save();
$this
->assertFalse((bool) $s->is_draft);
drupal_static_reset('webform_get_submission');
$s = Submission::load($s->node->nid, $s->sid);
$this
->assertFalse((bool) $s->is_draft);
}
public function testDelete() {
$s = new Submission($this->node, $this->submission);
$s
->delete();
$this
->assertEmpty(Submission::load($s->node->nid, $s->sid));
}
public function testConfirmedHook() {
$this
->assertFalse(!empty($this->submission->confirmed_hook_called));
$this->submission->is_draft = FALSE;
webform_submission_update($this->node, $this->submission);
$this
->assertTrue(!empty($this->submission->confirmed_hook_called));
$this->submission->confirmed_hook_called = FALSE;
webform_submission_update($this->node, $this->submission);
$this
->assertFalse(!empty($this->submission->confirmed_hook_called));
}
public function testConfirmedHookConfirmationUrl() {
$submission = $this->submission;
$this
->assertFalse($submission->confirmed_hook_called);
module_invoke_all('webform_confirm_email_email_confirmed', $this->node, $submission, FALSE);
$this
->assertFalse($submission->confirmed_hook_called);
module_invoke_all('webform_confirm_email_email_confirmed', $this->node, $submission, TRUE);
$this
->assertTrue($submission->confirmed_hook_called);
}
}