public function WebformTokenSuffixesTest::testTokenSuffixes in Webform 8.5
Same name and namespace in other branches
- 6.x tests/src/Functional/Token/WebformTokenSuffixesTest.php \Drupal\Tests\webform\Functional\Token\WebformTokenSuffixesTest::testTokenSuffixes()
Test webform token suffixes.
File
- tests/
src/ Functional/ Token/ WebformTokenSuffixesTest.php, line 17
Class
- WebformTokenSuffixesTest
- Tests for webform token suffixes.
Namespace
Drupal\Tests\webform\Functional\TokenCode
public function testTokenSuffixes() {
/** @var \Drupal\webform\WebformTokenManagerInterface $token_manager */
$token_manager = \Drupal::service('webform.token_manager');
$tests = [
// Default.
[
'site_name' => 'Testing',
'text' => '[site:name]',
'expected' => 'Testing',
'message' => 'Basic token',
],
// :clear.
[
'text' => '[missing]',
'expected' => '[missing]',
'message' => 'Missing token',
],
[
'text' => '[missing:clear]',
'expected' => '',
'message' => 'Missing token cleared',
],
[
'text' => '[missing:clear]',
'expected' => '[missing:clear]',
'message' => 'Clear disabled',
'options' => [
'suffixes' => [
'clear' => FALSE,
],
],
],
// :htmldecode.
[
'site_name' => '<b>Testing</b>',
'text' => '[site:name]',
'expected' => '<b>Testing</b>',
'message' => 'Basic token with encoded HTML markup',
],
[
'site_name' => '<b>Testing</b>',
'text' => '[site:name:htmldecode]',
'expected' => '<b>Testing</b>',
'message' => 'Basic token with decoded HTML markup',
],
// :striptags.
[
'site_name' => '<b>Testing</b>',
'text' => '[site:name:htmldecode:striptags]',
'expected' => 'Testing',
'message' => 'Basic token with decoded HTML markup',
'options' => [],
],
// :urlencode.
[
'site_name' => 'Two words',
'text' => '[site:name:urlencode]',
'expected' => 'Two+words',
'message' => 'Basic token with url encode',
'options' => [],
],
// :rawurlencode.
[
'site_name' => 'Two words',
'text' => '[site:name:rawurlencode]',
'expected' => 'Two%20words',
'message' => 'Basic token with raw url encode',
'options' => [],
],
// :xmlencode.
[
'site_name' => '<b>Testing</b>',
'text' => '[site:name:xmlencode]',
'expected' => '&lt;b&gt;Testing&lt;/b&gt;',
'message' => 'XML encode',
],
[
'site_name' => '<b>Testing</b>',
'text' => '[site:name:htmldecode:xmlencode]',
'expected' => '<b>Testing</b>',
'message' => 'HTML decode and then XML encode',
],
];
foreach ($tests as $test) {
// Set default options.
$test += [
'options' => [],
];
// Set site name.
if (!empty($test['site_name'])) {
\Drupal::configFactory()
->getEditable('system.site')
->set('name', $test['site_name'])
->save();
}
$result = $token_manager
->replace($test['text'], NULL, [], $test['options']);
$this
->assertEqual($result, $test['expected'], $test['message']);
}
}