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 }
|