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() { 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_table() { 60 $this->R->table_open(null, null, null, 'feature'); 61 $this->R->tablethead_open(); 62 63 $this->R->tablerow_open('item'); 64 $this->R->tableheader_open(); 65 $this->R->cdata('header1'); 66 $this->R->tableheader_close(); 67 $this->R->tableheader_open(1, null, 1, 'second'); 68 $this->R->cdata('header2'); 69 $this->R->tableheader_close(); 70 $this->R->tablerow_close(); 71 72 $this->R->tablethead_close(); 73 $this->R->tabletbody_open(); 74 75 $this->R->tablerow_open('values'); 76 $this->R->tablecell_open(1, null, 1, 'first value'); 77 $this->R->cdata('cell1,1'); 78 $this->R->tablecell_close(); 79 $this->R->tablecell_open(1, null, 1, 'second'); 80 $this->R->cdata('cell1,2'); 81 $this->R->tablecell_close(); 82 $this->R->tablerow_close(); 83 84 $this->R->tablerow_open(); 85 $this->R->tablecell_open(); 86 $this->R->cdata('cell2.1'); 87 $this->R->tablecell_close(); 88 $this->R->tablecell_open(); 89 $this->R->cdata('cell2,2'); 90 $this->R->tablecell_close(); 91 $this->R->tablerow_close(); 92 93 $this->R->tabletbody_close(); 94 $this->R->table_close(); 95 96 $expected = '<div class="table feature"><table class="inline"> 97 <thead> 98 <tr class="row0 item"> 99 <th class="col0">header1</th><th class="col1 second">header2</th> 100 </tr> 101 </thead> 102 <tbody> 103 <tr class="row1 values"> 104 <td class="col0 first value">cell1,1</td><td class="col1 second">cell1,2</td> 105 </tr> 106 <tr class="row2"> 107 <td class="col0">cell2.1</td><td class="col1">cell2,2</td> 108 </tr> 109 </tbody> 110</table></div> 111'; 112 $this->assertEquals($expected, $this->R->doc); 113 } 114 115 function test_olist() { 116 $this->R->document_start(); 117 $this->R->listo_open(); 118 119 $this->R->listitem_open(1, Doku_Handler_List::NODE); 120 $this->R->listcontent_open(); 121 $this->R->cdata('item1'); 122 $this->R->listcontent_close(); 123 124 $this->R->listo_open(); 125 126 $this->R->listitem_open(2); 127 $this->R->listcontent_open(); 128 $this->R->cdata('item1b'); 129 $this->R->listcontent_close(); 130 $this->R->listitem_close(); 131 132 $this->R->listo_close(); 133 $this->R->listitem_close(); 134 135 $this->R->listitem_open(1); 136 $this->R->listcontent_open(); 137 $this->R->cdata('item2'); 138 $this->R->listcontent_close(); 139 $this->R->listitem_close(); 140 141 $this->R->listitem_open(1, Doku_Handler_List::NODE); 142 $this->R->listcontent_open(); 143 $this->R->cdata('item3'); 144 $this->R->listcontent_close(); 145 146 $this->R->listo_open('special'); 147 148 $this->R->listitem_open(2); 149 $this->R->listcontent_open(); 150 $this->R->cdata('item3b'); 151 $this->R->listcontent_close(); 152 $this->R->listitem_close(); 153 154 $this->R->listo_close(); 155 $this->R->listitem_close(); 156 157 $this->R->listo_close(); 158 $this->R->document_end(); 159 160 $expected = '<ol> 161<li class="level1 node"><div class="li">item1</div> 162<ol> 163<li class="level2"><div class="li">item1b</div> 164</li> 165</ol> 166</li> 167<li class="level1"><div class="li">item2</div> 168</li> 169<li class="level1 node"><div class="li">item3</div> 170<ol class="special"> 171<li class="level2"><div class="li">item3b</div> 172</li> 173</ol> 174</li> 175</ol> 176'; 177 $this->assertEquals($expected, $this->R->doc); 178 } 179 180 function test_ulist() { 181 $this->R->document_start(); 182 $this->R->listu_open(); 183 184 $this->R->listitem_open(1, Doku_Handler_List::NODE); 185 $this->R->listcontent_open(); 186 $this->R->cdata('item1'); 187 $this->R->listcontent_close(); 188 189 $this->R->listu_open(); 190 191 $this->R->listitem_open(2); 192 $this->R->listcontent_open(); 193 $this->R->cdata('item1b'); 194 $this->R->listcontent_close(); 195 $this->R->listitem_close(); 196 197 $this->R->listu_close(); 198 $this->R->listitem_close(); 199 200 $this->R->listitem_open(1); 201 $this->R->listcontent_open(); 202 $this->R->cdata('item2'); 203 $this->R->listcontent_close(); 204 $this->R->listitem_close(); 205 206 $this->R->listitem_open(1, Doku_Handler_List::NODE); 207 $this->R->listcontent_open(); 208 $this->R->cdata('item3'); 209 $this->R->listcontent_close(); 210 211 $this->R->listu_open('special'); 212 213 $this->R->listitem_open(2); 214 $this->R->listcontent_open(); 215 $this->R->cdata('item3b'); 216 $this->R->listcontent_close(); 217 $this->R->listitem_close(); 218 219 $this->R->listu_close(); 220 $this->R->listitem_close(); 221 222 $this->R->listu_close(); 223 $this->R->document_end(); 224 225 $expected = '<ul> 226<li class="level1 node"><div class="li">item1</div> 227<ul> 228<li class="level2"><div class="li">item1b</div> 229</li> 230</ul> 231</li> 232<li class="level1"><div class="li">item2</div> 233</li> 234<li class="level1 node"><div class="li">item3</div> 235<ul class="special"> 236<li class="level2"><div class="li">item3b</div> 237</li> 238</ul> 239</li> 240</ul> 241'; 242 $this->assertEquals($expected, $this->R->doc); 243 } 244} 245