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