[ Index ] |
PHP Cross Reference of DokuWiki |
[Summary view] [Print] [Text view]
1 <?php 2 3 use dokuwiki\Parsing\ParserMode\Eol; 4 use dokuwiki\Parsing\ParserMode\Header; 5 6 require_once 'parser.inc.php'; 7 8 class TestOfDoku_Parser_Headers extends TestOfDoku_Parser { 9 10 function testHeader1() { 11 $this->P->addMode('header',new Header()); 12 $this->P->parse("abc \n ====== Header ====== \n def"); 13 $calls = array ( 14 array('document_start',array()), 15 array('p_open',array()), 16 array('cdata',array("\nabc ")), 17 array('p_close',array()), 18 array('header',array('Header',1,6)), 19 array('section_open',array(1)), 20 array('p_open',array()), 21 array('cdata',array("\n def")), 22 array('p_close',array()), 23 array('section_close',array()), 24 array('document_end',array()), 25 ); 26 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 27 } 28 29 function testHeader2() { 30 $this->P->addMode('header',new Header()); 31 $this->P->parse("abc \n ===== Header ===== \n def"); 32 $calls = array ( 33 array('document_start',array()), 34 array('p_open',array()), 35 array('cdata',array("\nabc ")), 36 array('p_close',array()), 37 array('header',array('Header',2,6)), 38 array('section_open',array(2)), 39 array('p_open',array()), 40 array('cdata',array("\n def")), 41 array('p_close',array()), 42 array('section_close',array()), 43 array('document_end',array()), 44 ); 45 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 46 } 47 48 function testHeader3() { 49 $this->P->addMode('header',new Header()); 50 $this->P->parse("abc \n ==== Header ==== \n def"); 51 $calls = array ( 52 array('document_start',array()), 53 array('p_open',array()), 54 array('cdata',array("\nabc ")), 55 array('p_close',array()), 56 array('header',array('Header',3,6)), 57 array('section_open',array(3)), 58 array('p_open',array()), 59 array('cdata',array("\n def")), 60 array('p_close',array()), 61 array('section_close',array()), 62 array('document_end',array()), 63 ); 64 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 65 } 66 67 function testHeader4() { 68 $this->P->addMode('header',new Header()); 69 $this->P->parse("abc \n === Header === \n def"); 70 $calls = array ( 71 array('document_start',array()), 72 array('p_open',array()), 73 array('cdata',array("\nabc ")), 74 array('p_close',array()), 75 array('header',array('Header',4,6)), 76 array('section_open',array(4)), 77 array('p_open',array()), 78 array('cdata',array("\n def")), 79 array('p_close',array()), 80 array('section_close',array()), 81 array('document_end',array()), 82 ); 83 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 84 } 85 86 function testHeader5() { 87 $this->P->addMode('header',new Header()); 88 $this->P->parse("abc \n == Header == \n def"); 89 $calls = array ( 90 array('document_start',array()), 91 array('p_open',array()), 92 array('cdata',array("\nabc ")), 93 array('p_close',array()), 94 array('header',array('Header',5,6)), 95 array('section_open',array(5)), 96 array('p_open',array()), 97 array('cdata',array("\n def")), 98 array('p_close',array()), 99 array('section_close',array()), 100 array('document_end',array()), 101 ); 102 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 103 } 104 105 function testHeader2UnevenSmaller() { 106 $this->P->addMode('header',new Header()); 107 $this->P->parse("abc \n ===== Header == \n def"); 108 $calls = array ( 109 array('document_start',array()), 110 array('p_open',array()), 111 array('cdata',array("\nabc ")), 112 array('p_close',array()), 113 array('header',array('Header',2,6)), 114 array('section_open',array(2)), 115 array('p_open',array()), 116 array('cdata',array("\n def")), 117 array('p_close',array()), 118 array('section_close',array()), 119 array('document_end',array()), 120 ); 121 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 122 } 123 124 function testHeader2UnevenBigger() { 125 $this->P->addMode('header',new Header()); 126 $this->P->parse("abc \n ===== Header =========== \n def"); 127 $calls = array ( 128 array('document_start',array()), 129 array('p_open',array()), 130 array('cdata',array("\nabc ")), 131 array('p_close',array()), 132 array('header',array('Header',2,6)), 133 array('section_open',array(2)), 134 array('p_open',array()), 135 array('cdata',array("\n def")), 136 array('p_close',array()), 137 array('section_close',array()), 138 array('document_end',array()), 139 ); 140 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 141 } 142 143 function testHeaderLarge() { 144 $this->P->addMode('header',new Header()); 145 $this->P->parse("abc \n ======= Header ======= \n def"); 146 $calls = array ( 147 array('document_start',array()), 148 array('p_open',array()), 149 array('cdata',array("\nabc ")), 150 array('p_close',array()), 151 array('header',array('Header',1,6)), 152 array('section_open',array(1)), 153 array('p_open',array()), 154 array('cdata',array("\n def")), 155 array('p_close',array()), 156 array('section_close',array()), 157 array('document_end',array()), 158 ); 159 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 160 } 161 162 function testHeaderSmall() { 163 $this->P->addMode('header',new Header()); 164 $this->P->parse("abc \n= Header =\n def"); 165 $calls = array ( 166 array('document_start',array()), 167 array('p_open',array()), 168 array('cdata',array("\nabc \n= Header =\n def")), 169 array('p_close',array()), 170 array('document_end',array()), 171 ); 172 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 173 } 174 175 176 function testHeader1Mixed() { 177 $this->P->addMode('header',new Header()); 178 $this->P->parse("abc \n====== == Header == ======\n def"); 179 $calls = array ( 180 array('document_start',array()), 181 array('p_open',array()), 182 array('cdata',array("\nabc ")), 183 array('p_close',array()), 184 array('header',array('== Header ==',1,6)), 185 array('section_open',array(1)), 186 array('p_open',array()), 187 array('cdata',array("\n def")), 188 array('p_close',array()), 189 array('section_close',array()), 190 array('document_end',array()), 191 ); 192 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 193 } 194 195 function testHeader5Mixed() { 196 $this->P->addMode('header',new Header()); 197 $this->P->parse("abc \n== ====== Header ====== ==\n def"); 198 $calls = array ( 199 array('document_start',array()), 200 array('p_open',array()), 201 array('cdata',array("\nabc ")), 202 array('p_close',array()), 203 array('header',array('====== Header ======',5,6)), 204 array('section_open',array(5)), 205 array('p_open',array()), 206 array('cdata',array("\n def")), 207 array('p_close',array()), 208 array('section_close',array()), 209 array('document_end',array()), 210 ); 211 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 212 } 213 214 function testHeaderMultiline() { 215 $this->P->addMode('header',new Header()); 216 $this->P->parse("abc \n== ====== Header\n ====== ==\n def"); 217 $calls = array ( 218 array('document_start',array()), 219 array('p_open',array()), 220 array('cdata',array("\nabc \n== ====== Header")), 221 array('p_close',array()), 222 array('header',array('',1,23)), 223 array('section_open',array(1)), 224 array('p_open',array()), 225 array('cdata',array("\n def")), 226 array('p_close',array()), 227 array('section_close',array()), 228 array('document_end',array()), 229 ); 230 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 231 } 232 233 # function testNoToc() { 234 # $this->P->addMode('notoc',new NoToc()); 235 # $this->P->parse('abc ~~NOTOC~~ def'); 236 # $this->assertFalse($this->H->meta['toc']); 237 # } 238 239 function testHeader1Eol() { 240 $this->P->addMode('header',new Header()); 241 $this->P->addMode('eol',new Eol()); 242 $this->P->parse("abc \n ====== Header ====== \n def"); 243 $calls = array ( 244 array('document_start',array()), 245 array('p_open',array()), 246 array('cdata',array('abc ')), 247 array('p_close',array()), 248 array('header',array('Header',1, 6)), 249 array('section_open',array(1)), 250 array('p_open',array()), 251 array('cdata',array(' def')), 252 array('p_close',array()), 253 array('section_close',array()), 254 array('document_end',array()), 255 ); 256 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 257 258 } 259 260 function testHeaderMulti2() { 261 $this->P->addMode('header',new Header()); 262 $this->P->parse("abc \n ====== Header ====== \n def abc \n ===== Header2 ===== \n def"); 263 $calls = array ( 264 array('document_start',array()), 265 array('p_open',array()), 266 array('cdata',array("\nabc ")), 267 array('p_close',array()), 268 array('header',array('Header',1,6)), 269 array('section_open',array(1)), 270 array('p_open',array()), 271 array('cdata',array("\n def abc ")), 272 array('p_close',array()), 273 array('section_close',array()), 274 array('header',array('Header2',2,39)), 275 array('section_open',array(2)), 276 array('p_open',array()), 277 array('cdata',array("\n def")), 278 array('p_close',array()), 279 array('section_close',array()), 280 array('document_end',array()) 281 ); 282 $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 283 } 284 285 } 286
title
Description
Body
title
Description
Body
title
Description
Body
title
Body