annotate sites/all/modules/ctools/tests/context.test @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 class CtoolsContextKeywordsSubstitutionTestCase extends DrupalWebTestCase {
danielebarchiesi@0 4 public static function getInfo() {
danielebarchiesi@0 5 return array(
danielebarchiesi@0 6 'name' => 'Keywords substitution',
danielebarchiesi@0 7 'description' => 'Verify that keywords are properly replaced with data.',
danielebarchiesi@0 8 'group' => 'Chaos Tools Suite',
danielebarchiesi@0 9 );
danielebarchiesi@0 10 }
danielebarchiesi@0 11
danielebarchiesi@0 12 public function setUp() {
danielebarchiesi@0 13 parent::setUp('ctools');
danielebarchiesi@0 14
danielebarchiesi@0 15 ctools_include('context');
danielebarchiesi@0 16 }
danielebarchiesi@0 17
danielebarchiesi@0 18 public function testKeywordsSubstitution() {
danielebarchiesi@0 19 // Create node context for substitution.
danielebarchiesi@0 20 $node = $this->drupalCreateNode();
danielebarchiesi@0 21 $context = ctools_context_create('node', $node);
danielebarchiesi@0 22 $contexts = array('argument_1' => $context);
danielebarchiesi@0 23
danielebarchiesi@0 24 // Run tests on some edge cases.
danielebarchiesi@0 25 $checks = array(
danielebarchiesi@0 26 '%node:changed:raw:' => array(
danielebarchiesi@0 27 "{$node->changed}:",
danielebarchiesi@0 28 t('Multi-level token has been replaced. Colon left untouched.'),
danielebarchiesi@0 29 ),
danielebarchiesi@0 30 '%node:title' => array(
danielebarchiesi@0 31 "{$node->title}",
danielebarchiesi@0 32 t('Keyword and converter have been replaced.'),
danielebarchiesi@0 33 ),
danielebarchiesi@0 34 '%%node:title' => array(
danielebarchiesi@0 35 "%node:title",
danielebarchiesi@0 36 t('Keyword after escaped percent sign left untouched.'),
danielebarchiesi@0 37 ),
danielebarchiesi@0 38 '%node:title%node:nid' => array(
danielebarchiesi@0 39 "{$node->title}{$node->nid}",
danielebarchiesi@0 40 t('Multiple substitutions have been replaced.'),
danielebarchiesi@0 41 ),
danielebarchiesi@0 42 '%node:title:' => array(
danielebarchiesi@0 43 "{$node->title}:",
danielebarchiesi@0 44 t('Colon after keyword and converter left untouched.'),
danielebarchiesi@0 45 ),
danielebarchiesi@0 46 '%node:title%%' => array(
danielebarchiesi@0 47 "{$node->title}%",
danielebarchiesi@0 48 t('Escaped percent sign after keyword and converter left untouched.'),
danielebarchiesi@0 49 ),
danielebarchiesi@0 50 '%%%node:title' => array(
danielebarchiesi@0 51 "%{$node->title}",
danielebarchiesi@0 52 t('Keyword after escaped and unescaped percent sign has been replaced.'),
danielebarchiesi@0 53 ),
danielebarchiesi@0 54 );
danielebarchiesi@0 55 foreach ($checks as $string => $expectations) {
danielebarchiesi@0 56 list($expected_result, $message) = $expectations;
danielebarchiesi@0 57 $actual_result = ctools_context_keyword_substitute($string, array(), $contexts);
danielebarchiesi@0 58 $this->assertEqual($actual_result, $expected_result, $message);
danielebarchiesi@0 59 }
danielebarchiesi@0 60 }
danielebarchiesi@0 61
danielebarchiesi@0 62 }