summaryrefslogtreecommitdiff
path: root/_test/cases/inc/parser/xhtml_htmlphp.test.php
diff options
context:
space:
mode:
authorChris Smith <chris@jalakai.co.uk>2008-02-23 07:24:28 +0100
committerChris Smith <chris@jalakai.co.uk>2008-02-23 07:24:28 +0100
commit045b6b7a7cc53868b35f930a5f7891b854c27148 (patch)
tree3d2925351cf36723be06b39d688a4ae979a16a0f /_test/cases/inc/parser/xhtml_htmlphp.test.php
parentcbaf42593d04d34785dbf732786f89d7f13fdb27 (diff)
downloadrpg-045b6b7a7cc53868b35f930a5f7891b854c27148.tar.gz
rpg-045b6b7a7cc53868b35f930a5f7891b854c27148.tar.bz2
Test cases for 'phpok' & 'htmlok' config settings
darcs-hash:20080223062428-d26fc-59a5f3a4c230c953db1488a829c814f2901180e4.gz
Diffstat (limited to '_test/cases/inc/parser/xhtml_htmlphp.test.php')
-rw-r--r--_test/cases/inc/parser/xhtml_htmlphp.test.php127
1 files changed, 127 insertions, 0 deletions
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 000000000..acd3bbf92
--- /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">&lt;b&gt;bold&lt;/b&gt;</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">&lt;b&gt;bold&lt;/b&gt;</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]);
+ }
+
+}