X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fpathauto%2Ftests%2Fsrc%2FKernel%2FPathautoTokenTest.php;fp=web%2Fmodules%2Fcontrib%2Fpathauto%2Ftests%2Fsrc%2FKernel%2FPathautoTokenTest.php;h=30c5ad1d25a7308e64c64e58210c857fea3e4bd4;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/modules/contrib/pathauto/tests/src/Kernel/PathautoTokenTest.php b/web/modules/contrib/pathauto/tests/src/Kernel/PathautoTokenTest.php new file mode 100644 index 000000000..30c5ad1d2 --- /dev/null +++ b/web/modules/contrib/pathauto/tests/src/Kernel/PathautoTokenTest.php @@ -0,0 +1,78 @@ +installConfig(array('pathauto')); + + $array = array( + 'test first arg', + 'The Array / value', + ); + + $tokens = array( + '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, array()); + $this->assertEqual($replacements['[array:join-path]'], 'test-first-arg/array-value'); + } + + /** + * Function copied from TokenTestHelper::assertTokens(). + */ + public function assertTokens($type, array $data, array $tokens, array $options = array()) { + $input = $this->mapTokenNames($type, array_keys($tokens)); + $bubbleable_metadata = new BubbleableMetadata(); + $replacements = \Drupal::token()->generate($type, $input, $data, $options, $bubbleable_metadata); + foreach ($tokens as $name => $expected) { + $token = $input[$name]; + if (!isset($expected)) { + $this->assertTrue(!isset($values[$token]), t("Token value for @token was not generated.", array('@type' => $type, '@token' => $token))); + } + elseif (!isset($replacements[$token])) { + $this->fail(t("Token value for @token was not generated.", array('@type' => $type, '@token' => $token))); + } + elseif (!empty($options['regex'])) { + $this->assertTrue(preg_match('/^' . $expected . '$/', $replacements[$token]), t("Token value for @token was '@actual', matching regular expression pattern '@expected'.", array('@type' => $type, '@token' => $token, '@actual' => $replacements[$token], '@expected' => $expected))); + } + else { + $this->assertIdentical($replacements[$token], $expected, t("Token value for @token was '@actual', expected value '@expected'.", array('@type' => $type, '@token' => $token, '@actual' => $replacements[$token], '@expected' => $expected))); + } + } + + return $replacements; + } + + public function mapTokenNames($type, array $tokens = array()) { + $return = array(); + foreach ($tokens as $token) { + $return[$token] = "[$type:$token]"; + } + return $return; + } + +}