[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/wact/tests/cases/tags/core/ -> WactCoreIncludeTagTest.class.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 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  ?>


Generated: Mon Dec 1 03:56:46 2008 Cross-referenced by PHPXref 0.7