View source
<?php
namespace Drupal\Tests\webform\Functional\Token;
use Drupal\Tests\webform\Functional\WebformBrowserTestBase;
class WebformTokenSuffixesTest extends WebformBrowserTestBase {
public function testTokenSuffixes() {
$token_manager = \Drupal::service('webform.token_manager');
$tests = [
[
'site_name' => 'Testing',
'text' => '[site:name]',
'expected' => 'Testing',
'message' => 'Basic token',
],
[
'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,
],
],
],
[
'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',
],
[
'site_name' => '<b>Testing</b>',
'text' => '[site:name:htmldecode:striptags]',
'expected' => 'Testing',
'message' => 'Basic token with decoded HTML markup',
'options' => [],
],
[
'site_name' => 'Two words',
'text' => '[site:name:urlencode]',
'expected' => 'Two+words',
'message' => 'Basic token with url encode',
'options' => [],
],
[
'site_name' => 'Two words',
'text' => '[site:name:rawurlencode]',
'expected' => 'Two%20words',
'message' => 'Basic token with raw url encode',
'options' => [],
],
[
'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) {
$test += [
'options' => [],
];
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']);
}
}
}