public function YamlFormConfirmationTest::testConfirmation in YAML Form 8
Tests form confirmation.
File
- src/
Tests/ YamlFormConfirmationTest.php, line 24
Class
- YamlFormConfirmationTest
- Tests for form confirmation.
Namespace
Drupal\yamlform\TestsCode
public function testConfirmation() {
// Login the admin user.
$this
->drupalLogin($this->adminFormUser);
/* Test confirmation message (confirmation_type=message) */
// Check confirmation message.
$this
->drupalPostForm('yamlform/test_confirmation_message', [], t('Submit'));
$this
->assertRaw('This is a <b>custom</b> confirmation message.');
$this
->assertUrl('yamlform/test_confirmation_message');
// Check confirmation page with custom query parameters.
$this
->drupalPostForm('yamlform/test_confirmation_message', [], t('Submit'), [
'query' => [
'custom' => 'param',
],
]);
$this
->assertUrl('yamlform/test_confirmation_message', [
'query' => [
'custom' => 'param',
],
]);
/* Test confirmation inline (confirmation_type=inline) */
$yamlform_confirmation_inline = YamlForm::load('test_confirmation_inline');
// Check confirmation inline.
$this
->drupalPostForm('yamlform/test_confirmation_inline', [], t('Submit'));
$this
->assertRaw('<a href="' . $yamlform_confirmation_inline
->toUrl()
->toString() . '" rel="back" title="Back to form">Back to form</a>');
$this
->assertUrl('yamlform/test_confirmation_inline', [
'query' => [
'yamlform_id' => $yamlform_confirmation_inline
->id(),
],
]);
// Check confirmation inline with custom query parameters.
$this
->drupalPostForm('yamlform/test_confirmation_inline', [], t('Submit'), [
'query' => [
'custom' => 'param',
],
]);
$this
->assertRaw('<a href="' . $yamlform_confirmation_inline
->toUrl()
->toString() . '?custom=param" rel="back" title="Back to form">Back to form</a>');
$this
->assertUrl('yamlform/test_confirmation_inline', [
'query' => [
'custom' => 'param',
'yamlform_id' => $yamlform_confirmation_inline
->id(),
],
]);
/* Test confirmation page (confirmation_type=page) */
$yamlform_confirmation_page = YamlForm::load('test_confirmation_page');
// Check confirmation page.
$this
->drupalPostForm('yamlform/test_confirmation_page', [], t('Submit'));
$this
->assertRaw('This is a custom confirmation page.');
$this
->assertRaw('<a href="' . $yamlform_confirmation_page
->toUrl()
->toString() . '" rel="back" title="Back to form">Back to form</a>');
$this
->assertUrl('yamlform/test_confirmation_page/confirmation');
// Check that the confirmation page's 'Back to form 'link includes custom
// query parameters.
$this
->drupalGet('yamlform/test_confirmation_page/confirmation', [
'query' => [
'custom' => 'param',
],
]);
// Check confirmation page with custom query parameters.
$this
->drupalPostForm('yamlform/test_confirmation_page', [], t('Submit'), [
'query' => [
'custom' => 'param',
],
]);
$this
->assertUrl('yamlform/test_confirmation_page/confirmation', [
'query' => [
'custom' => 'param',
],
]);
// TODO: (TESTING) Figure out why the inline confirmation link is not including the query string parameters.
// $this->assertRaw('<a href="' . $yamlform_confirmation_page->toUrl()->toString() . '?custom=param">Back to form</a>');
/* Test confirmation page custom (confirmation_type=page) */
$yamlform_confirmation_page_custom = YamlForm::load('test_confirmation_page_custom');
// Check custom confirmation page.
$this
->drupalPostForm('yamlform/test_confirmation_page_custom', [], t('Submit'));
$this
->assertRaw('<div style="border: 10px solid red; padding: 1em;" class="yamlform-confirmation">');
$this
->assertRaw('<a href="' . $yamlform_confirmation_page_custom
->toUrl()
->toString() . '" rel="back" title="Custom back to link" class="button">Custom back to link</a>');
// Check back link is hidden.
$yamlform_confirmation_page_custom
->setSetting('confirmation_back', FALSE);
$yamlform_confirmation_page_custom
->save();
$this
->drupalPostForm('yamlform/test_confirmation_page_custom', [], t('Submit'));
$this
->assertNoRaw('<a href="' . $yamlform_confirmation_page_custom
->toUrl()
->toString() . '" rel="back" title="Custom back to link" class="button">Custom back to link</a>');
/* Test confirmation URL (confirmation_type=url) */
// Check confirmation URL.
$this
->drupalPostForm('yamlform/test_confirmation_url', [], t('Submit'));
$this
->assertNoRaw('<h2 class="visually-hidden">Status message</h2>');
$this
->assertUrl('<front>');
/* Test confirmation URL (confirmation_type=url_message) */
// Check confirmation URL.
$this
->drupalPostForm('yamlform/test_confirmation_url_message', [], t('Submit'));
$this
->assertRaw('<h2 class="visually-hidden">Status message</h2>');
$this
->assertRaw('This is a custom confirmation message.');
$this
->assertUrl('<front>');
}