1<?php 2 3/** 4 * Class renderer_xhtml_test 5 */ 6class renderer_xhtml_test extends DokuWikiTest { 7 /** @var Doku_Renderer_xhtml */ 8 protected $R; 9 10 /** 11 * Called for each test 12 * 13 * @throws Exception 14 */ 15 function setUp() { 16 parent::setUp(); 17 $this->R = new Doku_Renderer_xhtml(); 18 } 19 20 function tearDown() { 21 unset($this->R); 22 } 23 24 function test_tableopen_0arg() { 25 $this->R->table_open(); 26 27 $expected = '<div class="table"><table class="inline">'."\n"; 28 $this->assertEquals($expected, $this->R->doc); 29 } 30 31 function test_tableopen_1arg() { 32 $this->R->table_open(4); 33 34 $expected = '<div class="table"><table class="inline">'."\n"; 35 $this->assertEquals($expected, $this->R->doc); 36 } 37 38 function test_tableopen_2arg() { 39 $this->R->table_open(4, 4); 40 41 $expected = '<div class="table"><table class="inline">'."\n"; 42 $this->assertEquals($expected, $this->R->doc); 43 } 44 45 function test_tableopen_3arg() { 46 $this->R->table_open(4, 4, 100); 47 48 $expected = '<div class="table sectionedit1"><table class="inline">'."\n"; 49 $this->assertEquals($expected, $this->R->doc); 50 } 51 52 function test_tableopen_4arg_str() { 53 $this->R->table_open(4, 4, 100, 'feature'); 54 55 $expected = '<div class="table feature sectionedit1"><table class="inline">'."\n"; 56 $this->assertEquals($expected, $this->R->doc); 57 } 58 59 function test_tableopen_4arg_arr() { 60 $this->R->table_open(4, 4, 100, array('feature', 'test')); 61 62 $expected = '<div class="table feature test sectionedit1"><table class="inline">'."\n"; 63 $this->assertEquals($expected, $this->R->doc); 64 } 65 66 function test_table() { 67 $this->R->table_open(null, null, null, 'feature'); 68 $this->R->tablethead_open(); 69 70 $this->R->tablerow_open('item'); 71 $this->R->tableheader_open(); 72 $this->R->cdata('header1'); 73 $this->R->tableheader_close(); 74 $this->R->tableheader_open(1, null, 1, 'second'); 75 $this->R->cdata('header2'); 76 $this->R->tableheader_close(); 77 $this->R->tablerow_close(); 78 79 $this->R->tablethead_close(); 80 $this->R->tabletbody_open(); 81 82 $this->R->tablerow_open('values'); 83 $this->R->tablecell_open(1, null, 1, 'first value'); 84 $this->R->cdata('cell1,1'); 85 $this->R->tablecell_close(); 86 $this->R->tablecell_open(1, null, 1, 'second'); 87 $this->R->cdata('cell1,2'); 88 $this->R->tablecell_close(); 89 $this->R->tablerow_close(); 90 91 $this->R->tablerow_open(); 92 $this->R->tablecell_open(); 93 $this->R->cdata('cell2.1'); 94 $this->R->tablecell_close(); 95 $this->R->tablecell_open(); 96 $this->R->cdata('cell2,2'); 97 $this->R->tablecell_close(); 98 $this->R->tablerow_close(); 99 100 $this->R->tabletbody_close(); 101 $this->R->table_close(); 102 103 $expected = '<div class="table feature"><table class="inline"> 104 <thead> 105 <tr class="row0 item"> 106 <th class="col0">header1</th><th class="col1 second">header2</th> 107 </tr> 108 </thead> 109 <tbody> 110 <tr class="row1 values"> 111 <td class="col0 first value">cell1,1</td><td class="col1 second">cell1,2</td> 112 </tr> 113 <tr class="row2"> 114 <td class="col0">cell2.1</td><td class="col1">cell2,2</td> 115 </tr> 116 </tbody> 117</table></div> 118'; 119 $this->assertEquals($expected, $this->R->doc); 120 } 121 122 function test_olist() { 123 $this->R->document_start(); 124 $this->R->listo_open(); 125 126 $this->R->listitem_open(1, Doku_Handler_List::NODE); 127 $this->R->listcontent_open(); 128 $this->R->cdata('item1'); 129 $this->R->listcontent_close(); 130 131 $this->R->listo_open(); 132 133 $this->R->listitem_open(2); 134 $this->R->listcontent_open(); 135 $this->R->cdata('item1b'); 136 $this->R->listcontent_close(); 137 $this->R->listitem_close(); 138 139 $this->R->listo_close(); 140 $this->R->listitem_close(); 141 142 $this->R->listitem_open(1); 143 $this->R->listcontent_open(); 144 $this->R->cdata('item2'); 145 $this->R->listcontent_close(); 146 $this->R->listitem_close(); 147 148 $this->R->listitem_open(1, Doku_Handler_List::NODE); 149 $this->R->listcontent_open(); 150 $this->R->cdata('item3'); 151 $this->R->listcontent_close(); 152 153 $this->R->listo_open('special'); 154 155 $this->R->listitem_open(2); 156 $this->R->listcontent_open(); 157 $this->R->cdata('item3b'); 158 $this->R->listcontent_close(); 159 $this->R->listitem_close(); 160 161 $this->R->listo_close(); 162 $this->R->listitem_close(); 163 164 $this->R->listo_close(); 165 $this->R->document_end(); 166 167 $expected = '<ol> 168<li class="level1 node"><div class="li">item1</div> 169<ol> 170<li class="level2"><div class="li">item1b</div> 171</li> 172</ol> 173</li> 174<li class="level1"><div class="li">item2</div> 175</li> 176<li class="level1 node"><div class="li">item3</div> 177<ol class="special"> 178<li class="level2"><div class="li">item3b</div> 179</li> 180</ol> 181</li> 182</ol> 183'; 184 $this->assertEquals($expected, $this->R->doc); 185 } 186 187 function test_ulist() { 188 $this->R->document_start(); 189 $this->R->listu_open(); 190 191 $this->R->listitem_open(1, Doku_Handler_List::NODE); 192 $this->R->listcontent_open(); 193 $this->R->cdata('item1'); 194 $this->R->listcontent_close(); 195 196 $this->R->listu_open(); 197 198 $this->R->listitem_open(2); 199 $this->R->listcontent_open(); 200 $this->R->cdata('item1b'); 201 $this->R->listcontent_close(); 202 $this->R->listitem_close(); 203 204 $this->R->listu_close(); 205 $this->R->listitem_close(); 206 207 $this->R->listitem_open(1); 208 $this->R->listcontent_open(); 209 $this->R->cdata('item2'); 210 $this->R->listcontent_close(); 211 $this->R->listitem_close(); 212 213 $this->R->listitem_open(1, Doku_Handler_List::NODE); 214 $this->R->listcontent_open(); 215 $this->R->cdata('item3'); 216 $this->R->listcontent_close(); 217 218 $this->R->listu_open('special'); 219 220 $this->R->listitem_open(2); 221 $this->R->listcontent_open(); 222 $this->R->cdata('item3b'); 223 $this->R->listcontent_close(); 224 $this->R->listitem_close(); 225 226 $this->R->listu_close(); 227 $this->R->listitem_close(); 228 229 $this->R->listu_close(); 230 $this->R->document_end(); 231 232 $expected = '<ul> 233<li class="level1 node"><div class="li">item1</div> 234<ul> 235<li class="level2"><div class="li">item1b</div> 236</li> 237</ul> 238</li> 239<li class="level1"><div class="li">item2</div> 240</li> 241<li class="level1 node"><div class="li">item3</div> 242<ul class="special"> 243<li class="level2"><div class="li">item3b</div> 244</li> 245</ul> 246</li> 247</ul> 248'; 249 $this->assertEquals($expected, $this->R->doc); 250 } 251} 252