1*f8369d7dSTobias Sarnowski<?php 2*f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php'; 3*f8369d7dSTobias Sarnowski 4*f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Footnote extends TestOfDoku_Parser { 5*f8369d7dSTobias Sarnowski 6*f8369d7dSTobias Sarnowski function setup() { 7*f8369d7dSTobias Sarnowski parent::setup(); 8*f8369d7dSTobias Sarnowski $this->P->addMode('footnote',new Doku_Parser_Mode_Footnote()); 9*f8369d7dSTobias Sarnowski } 10*f8369d7dSTobias Sarnowski 11*f8369d7dSTobias Sarnowski function testFootnote() { 12*f8369d7dSTobias Sarnowski $this->P->parse('Foo (( testing )) Bar'); 13*f8369d7dSTobias Sarnowski $calls = array ( 14*f8369d7dSTobias Sarnowski array('document_start',array()), 15*f8369d7dSTobias Sarnowski array('p_open',array()), 16*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 17*f8369d7dSTobias Sarnowski array('nest', array ( array ( 18*f8369d7dSTobias Sarnowski array('footnote_open',array()), 19*f8369d7dSTobias Sarnowski array('cdata',array(' testing ')), 20*f8369d7dSTobias Sarnowski array('footnote_close',array()), 21*f8369d7dSTobias Sarnowski ))), 22*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 23*f8369d7dSTobias Sarnowski array('p_close',array()), 24*f8369d7dSTobias Sarnowski array('document_end',array()), 25*f8369d7dSTobias Sarnowski ); 26*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 27*f8369d7dSTobias Sarnowski } 28*f8369d7dSTobias Sarnowski 29*f8369d7dSTobias Sarnowski function testNotAFootnote() { 30*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( testing\n Bar"); 31*f8369d7dSTobias Sarnowski $calls = array ( 32*f8369d7dSTobias Sarnowski array('document_start',array()), 33*f8369d7dSTobias Sarnowski array('p_open',array()), 34*f8369d7dSTobias Sarnowski array('cdata',array("\nFoo (( testing\n Bar")), 35*f8369d7dSTobias Sarnowski array('p_close',array()), 36*f8369d7dSTobias Sarnowski array('document_end',array()), 37*f8369d7dSTobias Sarnowski ); 38*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 39*f8369d7dSTobias Sarnowski } 40*f8369d7dSTobias Sarnowski 41*f8369d7dSTobias Sarnowski function testFootnoteLinefeed() { 42*f8369d7dSTobias Sarnowski $this->P->addMode('eol',new Doku_Parser_Mode_Eol()); 43*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( testing\ntesting )) Bar"); 44*f8369d7dSTobias Sarnowski $calls = array ( 45*f8369d7dSTobias Sarnowski array('document_start',array()), 46*f8369d7dSTobias Sarnowski array('p_open',array()), 47*f8369d7dSTobias Sarnowski array('cdata',array('Foo ')), 48*f8369d7dSTobias Sarnowski array('nest', array ( array ( 49*f8369d7dSTobias Sarnowski array('footnote_open',array()), 50*f8369d7dSTobias Sarnowski array('cdata',array(" testing\ntesting ")), 51*f8369d7dSTobias Sarnowski array('footnote_close',array()), 52*f8369d7dSTobias Sarnowski ))), 53*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 54*f8369d7dSTobias Sarnowski array('p_close',array()), 55*f8369d7dSTobias Sarnowski array('document_end',array()), 56*f8369d7dSTobias Sarnowski ); 57*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 58*f8369d7dSTobias Sarnowski } 59*f8369d7dSTobias Sarnowski 60*f8369d7dSTobias Sarnowski function testFootnoteNested() { 61*f8369d7dSTobias Sarnowski $this->P->parse('Foo (( x((y))z )) Bar'); 62*f8369d7dSTobias Sarnowski $calls = array ( 63*f8369d7dSTobias Sarnowski array('document_start',array()), 64*f8369d7dSTobias Sarnowski array('p_open',array()), 65*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 66*f8369d7dSTobias Sarnowski array('nest', array ( array ( 67*f8369d7dSTobias Sarnowski array('footnote_open',array()), 68*f8369d7dSTobias Sarnowski array('cdata',array(' x((y')), 69*f8369d7dSTobias Sarnowski array('footnote_close',array()), 70*f8369d7dSTobias Sarnowski ))), 71*f8369d7dSTobias Sarnowski array('cdata',array('z )) Bar')), 72*f8369d7dSTobias Sarnowski array('p_close',array()), 73*f8369d7dSTobias Sarnowski array('document_end',array()), 74*f8369d7dSTobias Sarnowski ); 75*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 76*f8369d7dSTobias Sarnowski } 77*f8369d7dSTobias Sarnowski 78*f8369d7dSTobias Sarnowski function testFootnoteEol() { 79*f8369d7dSTobias Sarnowski $this->P->addMode('eol',new Doku_Parser_Mode_Eol()); 80*f8369d7dSTobias Sarnowski $this->P->parse("Foo \nX(( test\ning ))Y\n Bar"); 81*f8369d7dSTobias Sarnowski $calls = array ( 82*f8369d7dSTobias Sarnowski array('document_start',array()), 83*f8369d7dSTobias Sarnowski array('p_open',array()), 84*f8369d7dSTobias Sarnowski array('cdata',array('Foo '.DOKU_PARSER_EOL.'X')), 85*f8369d7dSTobias Sarnowski array('nest', array ( array ( 86*f8369d7dSTobias Sarnowski array('footnote_open',array()), 87*f8369d7dSTobias Sarnowski array('cdata',array(" test\ning ")), 88*f8369d7dSTobias Sarnowski array('footnote_close',array()), 89*f8369d7dSTobias Sarnowski ))), 90*f8369d7dSTobias Sarnowski array('cdata',array('Y'.DOKU_PARSER_EOL.' Bar')), 91*f8369d7dSTobias Sarnowski array('p_close',array()), 92*f8369d7dSTobias Sarnowski array('document_end',array()), 93*f8369d7dSTobias Sarnowski ); 94*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 95*f8369d7dSTobias Sarnowski } 96*f8369d7dSTobias Sarnowski 97*f8369d7dSTobias Sarnowski function testFootnoteStrong() { 98*f8369d7dSTobias Sarnowski $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 99*f8369d7dSTobias Sarnowski $this->P->parse('Foo (( **testing** )) Bar'); 100*f8369d7dSTobias Sarnowski $calls = array ( 101*f8369d7dSTobias Sarnowski array('document_start',array()), 102*f8369d7dSTobias Sarnowski array('p_open',array()), 103*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 104*f8369d7dSTobias Sarnowski array('nest', array ( array ( 105*f8369d7dSTobias Sarnowski array('footnote_open',array()), 106*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 107*f8369d7dSTobias Sarnowski array('strong_open',array()), 108*f8369d7dSTobias Sarnowski array('cdata',array('testing')), 109*f8369d7dSTobias Sarnowski array('strong_close',array()), 110*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 111*f8369d7dSTobias Sarnowski array('footnote_close',array()), 112*f8369d7dSTobias Sarnowski ))), 113*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 114*f8369d7dSTobias Sarnowski array('p_close',array()), 115*f8369d7dSTobias Sarnowski array('document_end',array()), 116*f8369d7dSTobias Sarnowski ); 117*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 118*f8369d7dSTobias Sarnowski } 119*f8369d7dSTobias Sarnowski 120*f8369d7dSTobias Sarnowski function testFootnoteHr() { 121*f8369d7dSTobias Sarnowski $this->P->addMode('hr',new Doku_Parser_Mode_HR()); 122*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( \n ---- \n )) Bar"); 123*f8369d7dSTobias Sarnowski $calls = array ( 124*f8369d7dSTobias Sarnowski array('document_start',array()), 125*f8369d7dSTobias Sarnowski array('p_open',array()), 126*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 127*f8369d7dSTobias Sarnowski array('nest', array ( array ( 128*f8369d7dSTobias Sarnowski array('footnote_open',array()), 129*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 130*f8369d7dSTobias Sarnowski array('hr',array()), 131*f8369d7dSTobias Sarnowski array('cdata',array("\n ")), 132*f8369d7dSTobias Sarnowski array('footnote_close',array()), 133*f8369d7dSTobias Sarnowski ))), 134*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 135*f8369d7dSTobias Sarnowski array('p_close',array()), 136*f8369d7dSTobias Sarnowski array('document_end',array()), 137*f8369d7dSTobias Sarnowski ); 138*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 139*f8369d7dSTobias Sarnowski } 140*f8369d7dSTobias Sarnowski 141*f8369d7dSTobias Sarnowski function testFootnoteCode() { 142*f8369d7dSTobias Sarnowski $this->P->addMode('code',new Doku_Parser_Mode_Code()); 143*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( <code>Test</code> )) Bar"); 144*f8369d7dSTobias Sarnowski $calls = array ( 145*f8369d7dSTobias Sarnowski array('document_start',array()), 146*f8369d7dSTobias Sarnowski array('p_open',array()), 147*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 148*f8369d7dSTobias Sarnowski array('nest', array ( array ( 149*f8369d7dSTobias Sarnowski array('footnote_open',array()), 150*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 151*f8369d7dSTobias Sarnowski array('code',array('Test',null,null)), 152*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 153*f8369d7dSTobias Sarnowski array('footnote_close',array()), 154*f8369d7dSTobias Sarnowski ))), 155*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 156*f8369d7dSTobias Sarnowski array('p_close',array()), 157*f8369d7dSTobias Sarnowski array('document_end',array()), 158*f8369d7dSTobias Sarnowski ); 159*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 160*f8369d7dSTobias Sarnowski } 161*f8369d7dSTobias Sarnowski 162*f8369d7dSTobias Sarnowski function testFootnotePreformatted() { 163*f8369d7dSTobias Sarnowski $this->P->addMode('preformatted',new Doku_Parser_Mode_Preformatted()); 164*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( \n Test\n )) Bar"); 165*f8369d7dSTobias Sarnowski $calls = array ( 166*f8369d7dSTobias Sarnowski array('document_start',array()), 167*f8369d7dSTobias Sarnowski array('p_open',array()), 168*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 169*f8369d7dSTobias Sarnowski array('nest', array ( array ( 170*f8369d7dSTobias Sarnowski array('footnote_open',array()), 171*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 172*f8369d7dSTobias Sarnowski array('preformatted',array('Test')), 173*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 174*f8369d7dSTobias Sarnowski array('footnote_close',array()), 175*f8369d7dSTobias Sarnowski ))), 176*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 177*f8369d7dSTobias Sarnowski array('p_close',array()), 178*f8369d7dSTobias Sarnowski array('document_end',array()), 179*f8369d7dSTobias Sarnowski ); 180*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 181*f8369d7dSTobias Sarnowski } 182*f8369d7dSTobias Sarnowski 183*f8369d7dSTobias Sarnowski function testFootnotePreformattedEol() { 184*f8369d7dSTobias Sarnowski $this->P->addMode('preformatted',new Doku_Parser_Mode_Preformatted()); 185*f8369d7dSTobias Sarnowski $this->P->addMode('eol',new Doku_Parser_Mode_Eol()); 186*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( \n Test\n )) Bar"); 187*f8369d7dSTobias Sarnowski $calls = array ( 188*f8369d7dSTobias Sarnowski array('document_start',array()), 189*f8369d7dSTobias Sarnowski array('p_open',array()), 190*f8369d7dSTobias Sarnowski array('cdata',array('Foo ')), 191*f8369d7dSTobias Sarnowski array('nest', array ( array ( 192*f8369d7dSTobias Sarnowski array('footnote_open',array()), 193*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 194*f8369d7dSTobias Sarnowski array('preformatted',array('Test')), 195*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 196*f8369d7dSTobias Sarnowski array('footnote_close',array()), 197*f8369d7dSTobias Sarnowski ))), 198*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 199*f8369d7dSTobias Sarnowski array('p_close',array()), 200*f8369d7dSTobias Sarnowski array('document_end',array()), 201*f8369d7dSTobias Sarnowski ); 202*f8369d7dSTobias Sarnowski 203*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 204*f8369d7dSTobias Sarnowski } 205*f8369d7dSTobias Sarnowski 206*f8369d7dSTobias Sarnowski function testFootnoteUnformatted() { 207*f8369d7dSTobias Sarnowski $this->P->addMode('unformatted',new Doku_Parser_Mode_Unformatted()); 208*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( <nowiki>Test</nowiki> )) Bar"); 209*f8369d7dSTobias Sarnowski $calls = array ( 210*f8369d7dSTobias Sarnowski array('document_start',array()), 211*f8369d7dSTobias Sarnowski array('p_open',array()), 212*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 213*f8369d7dSTobias Sarnowski array('nest', array ( array ( 214*f8369d7dSTobias Sarnowski array('footnote_open',array()), 215*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 216*f8369d7dSTobias Sarnowski array('unformatted',array('Test')), 217*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 218*f8369d7dSTobias Sarnowski array('footnote_close',array()), 219*f8369d7dSTobias Sarnowski ))), 220*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 221*f8369d7dSTobias Sarnowski array('p_close',array()), 222*f8369d7dSTobias Sarnowski array('document_end',array()), 223*f8369d7dSTobias Sarnowski ); 224*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 225*f8369d7dSTobias Sarnowski } 226*f8369d7dSTobias Sarnowski 227*f8369d7dSTobias Sarnowski function testFootnoteNotHeader() { 228*f8369d7dSTobias Sarnowski $this->P->addMode('unformatted',new Doku_Parser_Mode_Unformatted()); 229*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( \n====Test====\n )) Bar"); 230*f8369d7dSTobias Sarnowski $calls = array ( 231*f8369d7dSTobias Sarnowski array('document_start',array()), 232*f8369d7dSTobias Sarnowski array('p_open',array()), 233*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 234*f8369d7dSTobias Sarnowski array('nest', array ( array ( 235*f8369d7dSTobias Sarnowski array('footnote_open',array()), 236*f8369d7dSTobias Sarnowski array('cdata',array(" \n====Test====\n ")), 237*f8369d7dSTobias Sarnowski array('footnote_close',array()), 238*f8369d7dSTobias Sarnowski ))), 239*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 240*f8369d7dSTobias Sarnowski array('p_close',array()), 241*f8369d7dSTobias Sarnowski array('document_end',array()), 242*f8369d7dSTobias Sarnowski ); 243*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 244*f8369d7dSTobias Sarnowski } 245*f8369d7dSTobias Sarnowski 246*f8369d7dSTobias Sarnowski function testFootnoteTable() { 247*f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 248*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( 249*f8369d7dSTobias Sarnowski| Row 0 Col 1 | Row 0 Col 2 | Row 0 Col 3 | 250*f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 251*f8369d7dSTobias Sarnowski )) Bar"); 252*f8369d7dSTobias Sarnowski $calls = array ( 253*f8369d7dSTobias Sarnowski array('document_start',array()), 254*f8369d7dSTobias Sarnowski array('p_open',array()), 255*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 256*f8369d7dSTobias Sarnowski array('nest', array ( array ( 257*f8369d7dSTobias Sarnowski array('footnote_open',array()), 258*f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 8)), 259*f8369d7dSTobias Sarnowski array('tablerow_open',array()), 260*f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 261*f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 1 ')), 262*f8369d7dSTobias Sarnowski array('tablecell_close',array()), 263*f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 264*f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 2 ')), 265*f8369d7dSTobias Sarnowski array('tablecell_close',array()), 266*f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 267*f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 3 ')), 268*f8369d7dSTobias Sarnowski array('tablecell_close',array()), 269*f8369d7dSTobias Sarnowski array('tablerow_close',array()), 270*f8369d7dSTobias Sarnowski array('tablerow_open',array()), 271*f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 272*f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 273*f8369d7dSTobias Sarnowski array('tablecell_close',array()), 274*f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 275*f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 276*f8369d7dSTobias Sarnowski array('tablecell_close',array()), 277*f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 278*f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 279*f8369d7dSTobias Sarnowski array('tablecell_close',array()), 280*f8369d7dSTobias Sarnowski array('tablerow_close',array()), 281*f8369d7dSTobias Sarnowski array('table_close',array(123)), 282*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 283*f8369d7dSTobias Sarnowski array('footnote_close',array()), 284*f8369d7dSTobias Sarnowski ))), 285*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 286*f8369d7dSTobias Sarnowski array('p_close',array()), 287*f8369d7dSTobias Sarnowski array('document_end',array()), 288*f8369d7dSTobias Sarnowski ); 289*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 290*f8369d7dSTobias Sarnowski } 291*f8369d7dSTobias Sarnowski 292*f8369d7dSTobias Sarnowski function testFootnoteList() { 293*f8369d7dSTobias Sarnowski $this->P->addMode('listblock',new Doku_Parser_Mode_ListBlock()); 294*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( 295*f8369d7dSTobias Sarnowski *A 296*f8369d7dSTobias Sarnowski * B 297*f8369d7dSTobias Sarnowski * C 298*f8369d7dSTobias Sarnowski )) Bar"); 299*f8369d7dSTobias Sarnowski $calls = array ( 300*f8369d7dSTobias Sarnowski array('document_start',array()), 301*f8369d7dSTobias Sarnowski array('p_open',array()), 302*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 303*f8369d7dSTobias Sarnowski array('nest', array ( array ( 304*f8369d7dSTobias Sarnowski array('footnote_open',array()), 305*f8369d7dSTobias Sarnowski array('listu_open',array()), 306*f8369d7dSTobias Sarnowski array('listitem_open',array(1)), 307*f8369d7dSTobias Sarnowski array('listcontent_open',array()), 308*f8369d7dSTobias Sarnowski array('cdata',array("A")), 309*f8369d7dSTobias Sarnowski array('listcontent_close',array()), 310*f8369d7dSTobias Sarnowski array('listu_open',array()), 311*f8369d7dSTobias Sarnowski array('listitem_open',array(2)), 312*f8369d7dSTobias Sarnowski array('listcontent_open',array()), 313*f8369d7dSTobias Sarnowski array('cdata',array(' B')), 314*f8369d7dSTobias Sarnowski array('listcontent_close',array()), 315*f8369d7dSTobias Sarnowski array('listitem_close',array()), 316*f8369d7dSTobias Sarnowski array('listu_close',array()), 317*f8369d7dSTobias Sarnowski array('listitem_close',array()), 318*f8369d7dSTobias Sarnowski array('listitem_open',array(1)), 319*f8369d7dSTobias Sarnowski array('listcontent_open',array()), 320*f8369d7dSTobias Sarnowski array('cdata',array(' C')), 321*f8369d7dSTobias Sarnowski array('listcontent_close',array()), 322*f8369d7dSTobias Sarnowski array('listitem_close',array()), 323*f8369d7dSTobias Sarnowski array('listu_close',array()), 324*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 325*f8369d7dSTobias Sarnowski array('footnote_close',array()), 326*f8369d7dSTobias Sarnowski ))), 327*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 328*f8369d7dSTobias Sarnowski array('p_close',array()), 329*f8369d7dSTobias Sarnowski array('document_end',array()), 330*f8369d7dSTobias Sarnowski ); 331*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 332*f8369d7dSTobias Sarnowski } 333*f8369d7dSTobias Sarnowski 334*f8369d7dSTobias Sarnowski function testFootnoteQuote() { 335*f8369d7dSTobias Sarnowski $this->P->addMode('quote',new Doku_Parser_Mode_Quote()); 336*f8369d7dSTobias Sarnowski $this->P->parse("Foo (( 337*f8369d7dSTobias Sarnowski> def 338*f8369d7dSTobias Sarnowski>>ghi 339*f8369d7dSTobias Sarnowski )) Bar"); 340*f8369d7dSTobias Sarnowski $calls = array ( 341*f8369d7dSTobias Sarnowski array('document_start',array()), 342*f8369d7dSTobias Sarnowski array('p_open',array()), 343*f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo ')), 344*f8369d7dSTobias Sarnowski array('nest', array ( array ( 345*f8369d7dSTobias Sarnowski array('footnote_open',array()), 346*f8369d7dSTobias Sarnowski array('quote_open',array()), 347*f8369d7dSTobias Sarnowski array('cdata',array(" def")), 348*f8369d7dSTobias Sarnowski array('quote_open',array()), 349*f8369d7dSTobias Sarnowski array('cdata',array("ghi")), 350*f8369d7dSTobias Sarnowski array('quote_close',array()), 351*f8369d7dSTobias Sarnowski array('quote_close',array()), 352*f8369d7dSTobias Sarnowski array('cdata',array(' ')), 353*f8369d7dSTobias Sarnowski array('footnote_close',array()), 354*f8369d7dSTobias Sarnowski ))), 355*f8369d7dSTobias Sarnowski array('cdata',array(' Bar')), 356*f8369d7dSTobias Sarnowski array('p_close',array()), 357*f8369d7dSTobias Sarnowski array('document_end',array()), 358*f8369d7dSTobias Sarnowski ); 359*f8369d7dSTobias Sarnowski 360*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 361*f8369d7dSTobias Sarnowski } 362*f8369d7dSTobias Sarnowski 363*f8369d7dSTobias Sarnowski function testFootnoteNesting() { 364*f8369d7dSTobias Sarnowski $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 365*f8369d7dSTobias Sarnowski $this->P->parse("(( a ** (( b )) ** c ))"); 366*f8369d7dSTobias Sarnowski 367*f8369d7dSTobias Sarnowski $calls = array( 368*f8369d7dSTobias Sarnowski array('document_start',array()), 369*f8369d7dSTobias Sarnowski array('p_open',array()), 370*f8369d7dSTobias Sarnowski array('cdata',array("\n")), 371*f8369d7dSTobias Sarnowski array('nest', array ( array ( 372*f8369d7dSTobias Sarnowski array('footnote_open',array()), 373*f8369d7dSTobias Sarnowski array('cdata',array(' a ')), 374*f8369d7dSTobias Sarnowski array('strong_open',array()), 375*f8369d7dSTobias Sarnowski array('cdata',array(' (( b ')), 376*f8369d7dSTobias Sarnowski array('footnote_close',array()), 377*f8369d7dSTobias Sarnowski ))), 378*f8369d7dSTobias Sarnowski array('cdata',array(" ")), 379*f8369d7dSTobias Sarnowski array('strong_close',array()), 380*f8369d7dSTobias Sarnowski array('cdata',array(" c ))")), 381*f8369d7dSTobias Sarnowski array('p_close',array()), 382*f8369d7dSTobias Sarnowski array('document_end',array()), 383*f8369d7dSTobias Sarnowski ); 384*f8369d7dSTobias Sarnowski 385*f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 386*f8369d7dSTobias Sarnowski } 387*f8369d7dSTobias Sarnowski} 388*f8369d7dSTobias Sarnowski 389