1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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]);
}
}
|