| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * Limb PHP Framework 4 * 5 * @link http://limb-project.com 6 * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com) 7 * @license LGPL http://www.gnu.org/copyleft/lesser.html 8 */ 9 10 class WactCoreSetTagTest extends WactTemplateTestCase 11 { 12 function testEmptyReference() 13 { 14 $template = '{$Missing}'; 15 $this->registerTestingTemplate('/tags/core/empty_reference.html', $template); 16 17 $page = $this->initTemplate('/tags/core/empty_reference.html'); 18 $output = $page->capture(); 19 $this->assertEqual($output, ''); 20 } 21 22 function testNormalReference() 23 { 24 $template = '{$Missing}'; 25 $this->registerTestingTemplate('/tags/core/normal_reference.html', $template); 26 27 $page = $this->initTemplate('/tags/core/normal_reference.html'); 28 $page->set('Missing', 'not'); 29 $output = $page->capture(); 30 $this->assertEqual($output, 'not'); 31 } 32 33 function testEmptySet() 34 { 35 $template = '<core:SET/>'; 36 $this->registerTestingTemplate('/tags/core/empty_set.html', $template); 37 38 $page = $this->initTemplate('/tags/core/empty_set.html'); 39 $output = $page->capture(); 40 $this->assertEqual($output, ''); 41 } 42 43 function testSet() 44 { 45 $template = '<core:SET var="value">'; 46 $this->registerTestingTemplate('/tags/core/set.html', $template); 47 48 $page = $this->initTemplate('/tags/core/set.html'); 49 $output = $page->capture(); 50 $this->assertEqual($output, ''); 51 } 52 53 function testSetAndReference() 54 { 55 $template = '<core:SET Var="value">{$Var}'; 56 $this->registerTestingTemplate('/tags/core/set_and_reference.html', $template); 57 58 $page = $this->initTemplate('/tags/core/set_and_reference.html'); 59 $output = $page->capture(); 60 $this->assertEqual($output, 'value'); 61 } 62 63 function testSetFilterAndReference() 64 { 65 $template = '<core:SET Var="value">{$Var|uppercase}'; 66 $this->registerTestingTemplate('/tags/core/set_filter_and_reference.html', $template); 67 68 $page = $this->initTemplate('/tags/core/set_filter_and_reference.html'); 69 $output = $page->capture(); 70 $this->assertEqual($output, 'VALUE'); 71 } 72 73 function testReferenceChain() 74 { 75 $template = '<core:SET First="val"><core:SET Second="{$First}">{$First}-{$Second}'; 76 $this->registerTestingTemplate('/tags/core/reference_chain.html', $template); 77 78 $page = $this->initTemplate('/tags/core/reference_chain.html'); 79 $output = $page->capture(); 80 $this->assertEqual($output, 'val-val'); 81 } 82 83 function testSetPrecidence() 84 { 85 $template = '<core:SET Var="value">{$Var}'; 86 $this->registerTestingTemplate('/tags/core/set_precidence.html', $template); 87 88 $page = $this->initTemplate('/tags/core/set_precidence.html'); 89 $page->set('Var', 'different value'); 90 $output = $page->capture(); 91 $this->assertEqual($output, 'value'); 92 } 93 94 function testSetWithFilter() 95 { 96 $template = '<core:SET Var="{$orig|uppercase}"/>{$Var}'; 97 $this->registerTestingTemplate('/tags/core/set_with_filter.html', $template); 98 99 $page = $this->initTemplate('/tags/core/set_with_filter.html'); 100 $page->set('orig', 'foo'); 101 $output = $page->capture(); 102 $this->assertEqual($output, 'FOO'); 103 } 104 105 function testSetWithFilterSingleQuotes() 106 { 107 $template = '<core:SET Var=\'{$orig|uppercase}\'/>{$Var}'; 108 $this->registerTestingTemplate('/tags/core/set_with_filter2.html', $template); 109 110 $page = $this->initTemplate('/tags/core/set_with_filter2.html'); 111 $page->set('orig', 'foo'); 112 $output = $page->capture(); 113 $this->assertEqual($output, 'FOO'); 114 } 115 116 function testSetMultiValues() 117 { 118 $template = '<core:SET Var1="{$orig}" Var2="aaa"/>{$Var1}-{$Var2}'; 119 $this->registerTestingTemplate('/tags/core/set_multi.html', $template); 120 121 $page = $this->initTemplate('/tags/core/set_multi.html'); 122 $page->set('orig', 'foo'); 123 $output = $page->capture(); 124 $this->assertEqual($output, 'foo-aaa'); 125 } 126 127 function testValueIsAvailableAtRunTimeStaticBinding() 128 { 129 $template = '<core:DATASOURCE id="test"><core:SET var1="value1"/>{$var1}</core:DATASOURCE>'; 130 $this->registerTestingTemplate('/tags/core/set_value_is_available_at_runtime.html', $template); 131 132 $page = $this->initTemplate('/tags/core/set_value_is_available_at_runtime.html'); 133 $datasource = $page->findChild('test'); 134 $output = $page->capture(); 135 $this->assertEqual($output, 'value1'); 136 $this->assertEqual($datasource->get('var1'), 'value1'); 137 } 138 139 function testValueIsAvailableAtRunTimeDynamicBinding() 140 { 141 $template = '<core:DATASOURCE id="test"><core:SET var1="{$#value1|uppercase}"/>{$var1}</core:DATASOURCE>'; 142 $this->registerTestingTemplate('/tags/core/set_value_is_available_at_runtime2.html', $template); 143 144 $page = $this->initTemplate('/tags/core/set_value_is_available_at_runtime2.html'); 145 $page->set('value1', 'some_value'); 146 $datasource = $page->findChild('test'); 147 $output = $page->capture(); 148 $this->assertEqual($output, 'SOME_VALUE'); 149 $this->assertEqual($datasource->get('var1'), 'SOME_VALUE'); 150 } 151 152 function testValueIsSetIntoCurrentDataspaceNotJustCurrentComponent() 153 { 154 $template = '<core:DATASOURCE id="test"><div wact:id="any"><core:SET var1="5"/>{$var1}</div></core:DATASOURCE>'; 155 $this->registerTestingTemplate('/tags/core/set_value_in_datasource_not_component.html', $template); 156 157 $page = $this->initTemplate('/tags/core/set_value_in_datasource_not_component.html'); 158 $this->assertEqual($page->capture(), '<div>5</div>'); 159 } 160 161 function testGenerateRuntimeExpressionOnlyByDefault() 162 { 163 $template = '<core:optional for="{$item1}"><core:SET color="yellow"/></core:optional>'. 164 '<core:optional for="{$item2}"><core:SET color="green"/></core:optional>'. 165 '{$color}'; 166 $this->registerTestingTemplate('/tags/core/set_value_in_runtime_only.html', $template); 167 168 $page = $this->initTemplate('/tags/core/set_value_in_runtime_only.html'); 169 $page->set('item1', true); 170 $this->assertEqual($page->capture(), 'yellow'); 171 } 172 173 function testNotGenerateRuntimeExpressionIfSuchAttribute() 174 { 175 $template = '<core:optional for="{$item1}"><core:SET color="yellow" runtime="false"/></core:optional>'. 176 '<core:optional for="{$item2}"><core:SET color="green" runtime="false"/></core:optional>'. 177 '{$color}'; 178 $this->registerTestingTemplate('/tags/core/force_set_value_in_compiletime.html', $template); 179 180 $page = $this->initTemplate('/tags/core/force_set_value_in_compiletime.html'); 181 $page->set('item1', true); 182 $this->assertEqual($page->capture(), 'green'); 183 } 184 } 185 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Jan 8 04:06:23 2009 | Cross-referenced by PHPXref 0.7 |