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