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