1.20.x token.test public TokenUnitTestCase::testGetInvalidTokens()

Test token_get_invalid_tokens() and token_get_invalid_tokens_by_context().

File

modules/simpletest/tests/token.test, line 300
Test integration for the token module.

Class

TokenUnitTestCase

Code

public function testGetInvalidTokens() {
  $tests = array();
  $tests[] = array(
    'valid tokens' => array(
      '[node:title]',
      '[node:created:short]',
      '[node:created:custom:invalid]',
      '[node:created:custom:mm-YYYY]',
      '[site:name]',
      '[site:slogan]',
      '[date:short]',
      '[current-user:uid]',
      '[current-user:ip-address]',
      // Deprecated tokens:
      '[node:type]',
      '[node:type-name]',
    ),
    'invalid tokens' => array(
      '[node:title:invalid]',
      '[node:created:invalid]',
      '[node:created:short:invalid]',
      '[invalid:title]',
      '[site:invalid]',
      '[user:ip-address]',
      '[user:uid]',
      '[comment:cid]',
      '[date:short]',
    ),
    'types' => array('node'),
  );
  $tests[] = array(
    'valid tokens' => array(
      '[node:title]',
      '[node:created:short]',
      '[node:created:custom:invalid]',
      '[node:created:custom:mm-YYYY]',
      '[site:name]',
      '[site:slogan]',
      '[user:uid]',
      '[user:ip-address]',
      '[date:short]',
      '[current-user:uid]',
      // Deprecated tokens:
      '[node:type]',
      '[node:type-name]',
    ),
    'invalid tokens' => array(
      '[node:title:invalid]',
      '[node:created:invalid]',
      '[node:created:short:invalid]',
      '[invalid:title]',
      '[site:invalid]',
      '[comment:cid]',
    ),
    'types' => array('all'),
  );

  foreach ($tests as $test) {
    $tokens = array_merge($test['valid tokens'], $test['invalid tokens']);
    shuffle($tokens);

    require_once BACKDROP_ROOT . '/core/includes/token.inc';
    $invalid_tokens = token_get_invalid_tokens_by_context(implode(' ', $tokens), $test['types']);

    sort($invalid_tokens);
    sort($test['invalid tokens']);
    $this->assertEqual($invalid_tokens, $test['invalid tokens'], 'Invalid tokens detected properly: ' . implode(', ', $invalid_tokens));
  }
}