function TokenReplaceTestCase::testSystemTokenRecognition

Test whether token-replacement works in various contexts.

File

modules/system/system.test, line 2271

Class

TokenReplaceTestCase
Test token replacement in strings.

Code

function testSystemTokenRecognition() {
    global $language;
    // Generate prefixes and suffixes for the token context.
    $tests = array(
        array(
            'prefix' => 'this is the ',
            'suffix' => ' site',
        ),
        array(
            'prefix' => 'this is the',
            'suffix' => 'site',
        ),
        array(
            'prefix' => '[',
            'suffix' => ']',
        ),
        array(
            'prefix' => '',
            'suffix' => ']]]',
        ),
        array(
            'prefix' => '[[[',
            'suffix' => '',
        ),
        array(
            'prefix' => ':[:',
            'suffix' => '--]',
        ),
        array(
            'prefix' => '-[-',
            'suffix' => ':]:',
        ),
        array(
            'prefix' => '[:',
            'suffix' => ']',
        ),
        array(
            'prefix' => '[site:',
            'suffix' => ':name]',
        ),
        array(
            'prefix' => '[site:',
            'suffix' => ']',
        ),
    );
    // Check if the token is recognized in each of the contexts.
    foreach ($tests as $test) {
        $input = $test['prefix'] . '[site:name]' . $test['suffix'];
        $expected = $test['prefix'] . 'Drupal' . $test['suffix'];
        $output = token_replace($input, array(), array(
            'language' => $language,
        ));
        $this->assertTrue($output == $expected, format_string('Token recognized in string %string', array(
            '%string' => $input,
        )));
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.