diff --git a/_test/cases/inc/parser/xhtml_htmlphp.test.php b/_test/cases/inc/parser/xhtml_htmlphp.test.php new file mode 100644 index 0000000000000000000000000000000000000000..acd3bbf9265d8b6510c2e0c726942a7ff65df0fe --- /dev/null +++ b/_test/cases/inc/parser/xhtml_htmlphp.test.php @@ -0,0 +1,127 @@ +<?php +if (!defined('DOKU_BASE')) define('DOKU_BASE','./'); +require_once 'parser.inc.php'; +require_once DOKU_INC.'inc/parser/xhtml.php'; + +class Doku_Renderer_tester extends Doku_Renderer_xhtml { + + // simplify to avoid GeSHi + function code($text, $language = NULL) { + $this->preformatted($text); + } + +} + +/* + * test case for parser/xhtml.php _headertolink method + * definition: function _headertolink($title,$create) + */ + +class xhtml_htmlphp_test extends TestOfDoku_Parser { + + function _run_parser($modes,$data) { + + foreach ($modes as $mode => $name) { + $class = 'Doku_Parser_Mode_'.$name; + $this->P->addMode($mode,new $class()); + } + + $R = new Doku_Renderer_tester(); + $this->P->parse($data); + foreach ( $this->H->calls as $instruction ) { + // Execute the callback against the Renderer + call_user_func_array(array(&$R, $instruction[0]),$instruction[1]); + } + + return str_replace("\n",'',$R->doc); + } + + function test_html_off(){ + $test = array('<html><b>bold</b></html>','<p><pre class="code"><b>bold</b></pre></p>'); + + global $conf; + $conf['htmlok'] = 0; + + $result = $this->_run_parser(array('html'=>'html'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + + function test_html_on(){ + $test = array('<html><b>bold</b></html>','<p><b>bold</b></p>'); + + global $conf; + $conf['htmlok'] = 1; + + $result = $this->_run_parser(array('html'=>'html'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + + function test_htmlblock_off(){ + $test = array('<HTML><b>bold</b></HTML>','<pre class="code"><b>bold</b></pre>'); + + global $conf; + $conf['htmlok'] = 0; + + $result = $this->_run_parser(array('html'=>'html'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + + function test_htmlblock_on(){ + $test = array('<HTML><b>bold</b></HTML>','<b>bold</b>'); + + global $conf; + $conf['htmlok'] = 1; + + $result = $this->_run_parser(array('html'=>'html'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + + function test_php_off(){ + $test = array('<php>echo(1+1);</php>','<p><pre class="code">echo(1+1);</pre></p>'); + + global $conf; + $conf['phpok'] = 0; + + $result = $this->_run_parser(array('php'=>'php'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + + function test_php_on(){ + $test = array('<php>echo(1+1);</php>','<p>2</p>'); + + global $conf; + $conf['phpok'] = 1; + + $result = $this->_run_parser(array('php'=>'php'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + + function test_phpblock_off(){ + $test = array('<PHP>echo(1+1);</PHP>','<pre class="code">echo(1+1);</pre>'); + + global $conf; + $conf['phpok'] = 0; + + $result = $this->_run_parser(array('php'=>'php'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + + function test_phpblock_on(){ + $test = array('<PHP>echo(1+1);</PHP>',"2"); + + global $conf; + $conf['phpok'] = 1; + + $result = $this->_run_parser(array('php'=>'php'),$test[0]); + + $this->assertEqual($result,$test[1]); + } + +}