public function PathautoTokenTest::testPathautoTokens in Pathauto 8
File
- tests/
src/ Kernel/ PathautoTokenTest.php, line 22
Class
- PathautoTokenTest
- Tests tokens provided by Pathauto.
Namespace
Drupal\Tests\pathauto\KernelCode
public function testPathautoTokens() {
$this
->installConfig([
'pathauto',
]);
$array = [
'test first arg',
'The Array / value',
];
$tokens = [
'join-path' => 'test-first-arg/array-value',
];
$data['array'] = $array;
$replacements = $this
->assertTokens('array', $data, $tokens);
// Ensure that the cleanTokenValues() method does not alter this token value.
/* @var \Drupal\pathauto\AliasCleanerInterface $alias_cleaner */
$alias_cleaner = \Drupal::service('pathauto.alias_cleaner');
$alias_cleaner
->cleanTokenValues($replacements, $data, []);
$this
->assertEquals('test-first-arg/array-value', $replacements['[array:join-path]']);
// Test additional token cleaning and its configuration.
$safe_tokens = $this
->config('pathauto.settings')
->get('safe_tokens');
$safe_tokens[] = 'safe';
$this
->config('pathauto.settings')
->set('safe_tokens', $safe_tokens)
->save();
$safe_tokens = [
'[example:path]',
'[example:url]',
'[example:url-brief]',
'[example:login-url]',
'[example:login-url:relative]',
'[example:url:relative]',
'[example:safe]',
'[safe:example]',
];
$unsafe_tokens = [
'[example:path_part]',
'[example:something_url]',
'[example:unsafe]',
];
foreach ($safe_tokens as $token) {
$replacements = [
$token => 'this/is/a/path',
];
$alias_cleaner
->cleanTokenValues($replacements);
$this
->assertEquals('this/is/a/path', $replacements[$token], "Token {$token} cleaned.");
}
foreach ($unsafe_tokens as $token) {
$replacements = [
$token => 'This is not a / path',
];
$alias_cleaner
->cleanTokenValues($replacements);
$this
->assertEquals('not-path', $replacements[$token], "Token {$token} not cleaned.");
}
}