| [ 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 WactCoreIncludeTagTest extends WactTemplateTestCase 11 { 12 function setUp() 13 { 14 parent :: setUp(); 15 16 $template = 'Terminal'; 17 $this->registerTestingTemplate('/tags/core/include/terminal.html', $template, 'terminal.html'); 18 19 $template = 'Nested-<core:include file="terminal.html"/>-Nested'; 20 $this->registerTestingTemplate('/tags/core/include/nested.html', $template, 'nested.html'); 21 } 22 23 function testInclude() 24 { 25 $page = $this->initTemplate('nested.html'); 26 $output = $page->capture(); 27 $this->assertEqual($output, 'Nested-Terminal-Nested'); 28 } 29 30 function testIncludeMissingFile() 31 { 32 $template = '<core:INCLUDE file="/no/such/file/huh"/>'; 33 $this->registerTestingTemplate('/tags/core/include/missing_file.html', $template); 34 35 try 36 { 37 $page = $this->initTemplate('/tags/core/include/missing_file.html'); 38 $this->assertTrue(false); 39 } 40 catch(WactException $e) 41 { 42 $this->assertWantedPattern('/Template source file not found/', $e->getMessage()); 43 } 44 } 45 46 function testMissingFileAttribute() 47 { 48 $template = 'Include-<core:include />-Include'; 49 $this->registerTestingTemplate('/tags/core/include/missing_file_attribute.html', $template); 50 51 try 52 { 53 $page = $this->initTemplate('/tags/core/include/missing_file_attribute.html'); 54 $this->assertTrue(false); 55 } 56 catch(WactException $e) 57 { 58 $this->assertWantedPattern('/Missing required attribute/', $e->getMessage()); 59 } 60 } 61 62 function testNestedInclude() 63 { 64 $template = 'Include-<core:include file="nested.html"/>-Include'; 65 $this->registerTestingTemplate('/tags/core/include/nested_include.html', $template); 66 67 $page = $this->initTemplate('/tags/core/include/nested_include.html'); 68 $output = $page->capture(); 69 $this->assertEqual($output, 'Include-Nested-Terminal-Nested-Include'); 70 } 71 72 function testIncludeFileAttributeVariable() 73 { 74 $template = '<core:SET FILENAME="terminal.html" runtime="false"/><core:include file="{$FILENAME}"/>'; 75 $this->registerTestingTemplate('/tags/core/include/file_attribute_variable.html', $template); 76 77 $page = $this->initTemplate('/tags/core/include/file_attribute_variable.html'); 78 $output = $page->capture(); 79 $this->assertEqual($output, 'Terminal'); 80 } 81 82 function testIncludedVariableReference() 83 { 84 $template = '{$Variable}'; 85 $this->registerTestingTemplate('/tags/core/include/varref.html', $template); 86 87 $template = 'Include-<core:include file="/tags/core/include/varref.html"/>-Include'; 88 $this->registerTestingTemplate('/tags/core/include/includedvarref.html', $template); 89 90 $page = $this->initTemplate('/tags/core/include/includedvarref.html'); 91 $page->set('Variable', 'Here'); 92 $output = $page->capture(); 93 $this->assertEqual($output, 'Include-Here-Include'); 94 } 95 96 function testIncludeLiteral() 97 { 98 $literal_template = '{$Ref}<core:block>{$Ref}</core:block>'; 99 $this->registerTestingTemplate('/tags/core/include/literal.html', $literal_template); 100 101 $template = '<core:include file="/tags/core/include/literal.html" literal="true" />'; 102 $this->registerTestingTemplate('/tags/core/include/includeliteral.html', $template); 103 104 $page = $this->initTemplate('/tags/core/include/includeliteral.html'); 105 $output = $page->capture(); 106 $this->assertEqual($output, $literal_template); 107 } 108 109 function testIncludedTemplateWithNonClosedTagGeneratesProperErrorException() 110 { 111 $include_template = '<div>'; 112 $this->registerTestingTemplate('/tags/core/include/included_template.html', $include_template); 113 114 $template = '<a><core:include file="/tags/core/include/included_template.html" /></a>'; 115 $this->registerTestingTemplate('/tags/core/include/main_template.html', $template); 116 117 try 118 { 119 $page = $this->initTemplate('/tags/core/include/main_template.html'); 120 $this->assertTrue(false); 121 } 122 catch(WactException $e) 123 { 124 $this->assertWantedPattern('/Missing close tag/', $e->getMessage()); 125 $this->assertEqual($e->getParam('file'), '/tags/core/include/included_template.html'); 126 $this->assertEqual($e->getParam('line'), 1); 127 } 128 } 129 130 function testIncludeAndSetVariablesInCurrentDatasource() 131 { 132 $child_template = '<b>{$Ref}</b>'; 133 $this->registerTestingTemplate('/tags/core/include/child.html', $child_template); 134 135 $template = '<core:include file="/tags/core/include/child.html" Ref="a"/>{$Ref}'; 136 $this->registerTestingTemplate('/tags/core/include/parent.html', $template); 137 138 $page = $this->initTemplate('/tags/core/include/parent.html'); 139 $output = $page->capture(); 140 $this->assertEqual($output, '<b>a</b>a'); 141 } 142 143 function testIncludeAndSetVariablesWithDBEInCurrentDatasource() 144 { 145 $child_template = '<b>{$Ref}</b>'; 146 $this->registerTestingTemplate('/tags/core/include/child2.html', $child_template); 147 148 $template = '<core:include file="/tags/core/include/child2.html" Ref="{$a}"/>'; 149 $this->registerTestingTemplate('/tags/core/include/parent_with_dbe_var.html', $template); 150 151 $page = $this->initTemplate('/tags/core/include/parent_with_dbe_var.html'); 152 $page->set('a', 'value'); 153 $output = $page->capture(); 154 $this->assertEqual($output, '<b>value</b>'); 155 } 156 157 function testSkipSettingReservedVars() 158 { 159 $child_template = '{$file}<b>{$Ref}</b>'; 160 $this->registerTestingTemplate('/tags/core/include/child3.html', $child_template); 161 162 $template = '<core:include file="/tags/core/include/child3.html" Ref="a"/>'; 163 $this->registerTestingTemplate('/tags/core/include/parent_skip_setting_reserved_vars.html', $template); 164 165 $page = $this->initTemplate('/tags/core/include/parent_skip_setting_reserved_vars.html'); 166 $output = $page->capture(); 167 $this->assertEqual($output, '<b>a</b>'); 168 } 169 170 function testIncludeAndSetVariablesInNewDatasource() 171 { 172 $child_template = '<b>{$Ref}</b>'; 173 $this->registerTestingTemplate('/tags/core/include/child_in_datasource.html', $child_template); 174 175 $template = '<core:include file="/tags/core/include/child_in_datasource.html" in_datasource="true" Ref="a"/>{$Ref}'; 176 $this->registerTestingTemplate('/tags/core/include/parent_creates_new_datasource.html', $template); 177 178 $page = $this->initTemplate('/tags/core/include/parent_creates_new_datasource.html'); 179 $page->set('Ref', 'value'); 180 $output = $page->capture(); 181 $this->assertEqual($output, '<b>a</b>value'); 182 } 183 } 184 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Dec 1 03:56:46 2008 | Cross-referenced by PHPXref 0.7 |