danielebarchiesi@0: 'Keywords substitution', danielebarchiesi@0: 'description' => 'Verify that keywords are properly replaced with data.', danielebarchiesi@0: 'group' => 'Chaos Tools Suite', danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: public function setUp() { danielebarchiesi@0: parent::setUp('ctools'); danielebarchiesi@0: danielebarchiesi@0: ctools_include('context'); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: public function testKeywordsSubstitution() { danielebarchiesi@0: // Create node context for substitution. danielebarchiesi@0: $node = $this->drupalCreateNode(); danielebarchiesi@0: $context = ctools_context_create('node', $node); danielebarchiesi@0: $contexts = array('argument_1' => $context); danielebarchiesi@0: danielebarchiesi@0: // Run tests on some edge cases. danielebarchiesi@0: $checks = array( danielebarchiesi@0: '%node:changed:raw:' => array( danielebarchiesi@0: "{$node->changed}:", danielebarchiesi@0: t('Multi-level token has been replaced. Colon left untouched.'), danielebarchiesi@0: ), danielebarchiesi@0: '%node:title' => array( danielebarchiesi@0: "{$node->title}", danielebarchiesi@0: t('Keyword and converter have been replaced.'), danielebarchiesi@0: ), danielebarchiesi@0: '%%node:title' => array( danielebarchiesi@0: "%node:title", danielebarchiesi@0: t('Keyword after escaped percent sign left untouched.'), danielebarchiesi@0: ), danielebarchiesi@0: '%node:title%node:nid' => array( danielebarchiesi@0: "{$node->title}{$node->nid}", danielebarchiesi@0: t('Multiple substitutions have been replaced.'), danielebarchiesi@0: ), danielebarchiesi@0: '%node:title:' => array( danielebarchiesi@0: "{$node->title}:", danielebarchiesi@0: t('Colon after keyword and converter left untouched.'), danielebarchiesi@0: ), danielebarchiesi@0: '%node:title%%' => array( danielebarchiesi@0: "{$node->title}%", danielebarchiesi@0: t('Escaped percent sign after keyword and converter left untouched.'), danielebarchiesi@0: ), danielebarchiesi@0: '%%%node:title' => array( danielebarchiesi@0: "%{$node->title}", danielebarchiesi@0: t('Keyword after escaped and unescaped percent sign has been replaced.'), danielebarchiesi@0: ), danielebarchiesi@0: ); danielebarchiesi@0: foreach ($checks as $string => $expectations) { danielebarchiesi@0: list($expected_result, $message) = $expectations; danielebarchiesi@0: $actual_result = ctools_context_keyword_substitute($string, array(), $contexts); danielebarchiesi@0: $this->assertEqual($actual_result, $expected_result, $message); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: }