1f8369d7dSTobias Sarnowski<?php 2f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php'; 3f8369d7dSTobias Sarnowski 4f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Table extends TestOfDoku_Parser { 5f8369d7dSTobias Sarnowski 6f8369d7dSTobias Sarnowski function testTable() { 7f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 8f8369d7dSTobias Sarnowski $this->P->parse(' 9f8369d7dSTobias Sarnowskiabc 10f8369d7dSTobias Sarnowski| Row 0 Col 1 | Row 0 Col 2 | Row 0 Col 3 | 11f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 12f8369d7dSTobias Sarnowskidef'); 13f8369d7dSTobias Sarnowski $calls = array ( 14f8369d7dSTobias Sarnowski array('document_start',array()), 15f8369d7dSTobias Sarnowski array('p_open',array()), 16f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 17f8369d7dSTobias Sarnowski array('p_close',array()), 18f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 19f8369d7dSTobias Sarnowski array('tablerow_open',array()), 20f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 21f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 1 ')), 22f8369d7dSTobias Sarnowski array('tablecell_close',array()), 23f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 24f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 2 ')), 25f8369d7dSTobias Sarnowski array('tablecell_close',array()), 26f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 27f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 3 ')), 28f8369d7dSTobias Sarnowski array('tablecell_close',array()), 29f8369d7dSTobias Sarnowski array('tablerow_close',array()), 30f8369d7dSTobias Sarnowski array('tablerow_open',array()), 31f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 32f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 33f8369d7dSTobias Sarnowski array('tablecell_close',array()), 34f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 35f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 36f8369d7dSTobias Sarnowski array('tablecell_close',array()), 37f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 38f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 39f8369d7dSTobias Sarnowski array('tablecell_close',array()), 40f8369d7dSTobias Sarnowski array('tablerow_close',array()), 41f8369d7dSTobias Sarnowski array('table_close',array(121)), 42f8369d7dSTobias Sarnowski array('p_open',array()), 43f8369d7dSTobias Sarnowski array('cdata',array('def')), 44f8369d7dSTobias Sarnowski array('p_close',array()), 45f8369d7dSTobias Sarnowski array('document_end',array()), 46f8369d7dSTobias Sarnowski ); 47f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 48f8369d7dSTobias Sarnowski } 49f8369d7dSTobias Sarnowski 50f8369d7dSTobias Sarnowski function testTableWinEOL() { 51f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 52f8369d7dSTobias Sarnowski $this->P->parse("\r\nabc\r\n| Row 0 Col 1 | Row 0 Col 2 | Row 0 Col 3 |\r\n| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 |\r\ndef"); 53f8369d7dSTobias Sarnowski $calls = array ( 54f8369d7dSTobias Sarnowski array('document_start',array()), 55f8369d7dSTobias Sarnowski array('p_open',array()), 56f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 57f8369d7dSTobias Sarnowski array('p_close',array()), 58f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 59f8369d7dSTobias Sarnowski array('tablerow_open',array()), 60f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 61f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 1 ')), 62f8369d7dSTobias Sarnowski array('tablecell_close',array()), 63f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 64f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 2 ')), 65f8369d7dSTobias Sarnowski array('tablecell_close',array()), 66f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 67f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 3 ')), 68f8369d7dSTobias Sarnowski array('tablecell_close',array()), 69f8369d7dSTobias Sarnowski array('tablerow_close',array()), 70f8369d7dSTobias Sarnowski array('tablerow_open',array()), 71f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 72f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 73f8369d7dSTobias Sarnowski array('tablecell_close',array()), 74f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 75f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 76f8369d7dSTobias Sarnowski array('tablecell_close',array()), 77f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 78f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 79f8369d7dSTobias Sarnowski array('tablecell_close',array()), 80f8369d7dSTobias Sarnowski array('tablerow_close',array()), 81f8369d7dSTobias Sarnowski array('table_close',array(121)), 82f8369d7dSTobias Sarnowski array('p_open',array()), 83f8369d7dSTobias Sarnowski array('cdata',array('def')), 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 testEmptyTable() { 91f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 92f8369d7dSTobias Sarnowski $this->P->parse(' 93f8369d7dSTobias Sarnowskiabc 94f8369d7dSTobias Sarnowski| 95f8369d7dSTobias Sarnowskidef'); 96f8369d7dSTobias Sarnowski 97f8369d7dSTobias Sarnowski $calls = array ( 98f8369d7dSTobias Sarnowski array('document_start',array()), 99f8369d7dSTobias Sarnowski array('p_open',array()), 100f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 101f8369d7dSTobias Sarnowski array('p_close',array()), 102f8369d7dSTobias Sarnowski array('table_open',array(0, 1, 6)), 103f8369d7dSTobias Sarnowski array('tablerow_open',array()), 104f8369d7dSTobias Sarnowski array('tablerow_close',array()), 105f8369d7dSTobias Sarnowski array('table_close',array(7)), 106f8369d7dSTobias Sarnowski array('p_open',array()), 107f8369d7dSTobias Sarnowski array('cdata',array('def')), 108f8369d7dSTobias Sarnowski array('p_close',array()), 109f8369d7dSTobias Sarnowski array('document_end',array()), 110f8369d7dSTobias Sarnowski ); 111f8369d7dSTobias Sarnowski 112f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 113f8369d7dSTobias Sarnowski } 114f8369d7dSTobias Sarnowski 115f8369d7dSTobias Sarnowski function testTableHeaders() { 116f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 117f8369d7dSTobias Sarnowski $this->P->parse(' 118f8369d7dSTobias Sarnowskiabc 119f8369d7dSTobias Sarnowski^ X | Y ^ Z | 120f8369d7dSTobias Sarnowskidef'); 121f8369d7dSTobias Sarnowski 122f8369d7dSTobias Sarnowski $calls = array ( 123f8369d7dSTobias Sarnowski array('document_start',array()), 124f8369d7dSTobias Sarnowski array('p_open',array()), 125f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 126f8369d7dSTobias Sarnowski array('p_close',array()), 127f8369d7dSTobias Sarnowski array('table_open',array(3, 1, 6)), 128f8369d7dSTobias Sarnowski array('tablerow_open',array()), 129f8369d7dSTobias Sarnowski array('tableheader_open',array(1,NULL,1)), 130f8369d7dSTobias Sarnowski array('cdata',array(' X ')), 131f8369d7dSTobias Sarnowski array('tableheader_close',array()), 132f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 133f8369d7dSTobias Sarnowski array('cdata',array(' Y ')), 134f8369d7dSTobias Sarnowski array('tablecell_close',array()), 135f8369d7dSTobias Sarnowski array('tableheader_open',array(1,NULL,1)), 136f8369d7dSTobias Sarnowski array('cdata',array(' Z ')), 137f8369d7dSTobias Sarnowski array('tableheader_close',array()), 138f8369d7dSTobias Sarnowski array('tablerow_close',array()), 139*688ce8d8SChristopher Smith array('table_close',array(19)), 140*688ce8d8SChristopher Smith array('p_open',array()), 141*688ce8d8SChristopher Smith array('cdata',array('def')), 142*688ce8d8SChristopher Smith array('p_close',array()), 143*688ce8d8SChristopher Smith array('document_end',array()), 144*688ce8d8SChristopher Smith ); 145*688ce8d8SChristopher Smith 146*688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 147*688ce8d8SChristopher Smith 148*688ce8d8SChristopher Smith } 149*688ce8d8SChristopher Smith 150*688ce8d8SChristopher Smith function testTableHead() { 151*688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 152*688ce8d8SChristopher Smith $this->P->parse(' 153*688ce8d8SChristopher Smithabc 154*688ce8d8SChristopher Smith^ X ^ Y ^ Z ^ 155*688ce8d8SChristopher Smithdef'); 156*688ce8d8SChristopher Smith 157*688ce8d8SChristopher Smith $calls = array ( 158*688ce8d8SChristopher Smith array('document_start',array()), 159*688ce8d8SChristopher Smith array('p_open',array()), 160*688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 161*688ce8d8SChristopher Smith array('p_close',array()), 162*688ce8d8SChristopher Smith array('table_open',array(3, 1, 6)), 163*688ce8d8SChristopher Smith array('tablethead_open',array()), 164*688ce8d8SChristopher Smith array('tablerow_open',array()), 165*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 166*688ce8d8SChristopher Smith array('cdata',array(' X ')), 167*688ce8d8SChristopher Smith array('tableheader_close',array()), 168*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 169*688ce8d8SChristopher Smith array('cdata',array(' Y ')), 170*688ce8d8SChristopher Smith array('tableheader_close',array()), 171*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 172*688ce8d8SChristopher Smith array('cdata',array(' Z ')), 173*688ce8d8SChristopher Smith array('tableheader_close',array()), 174*688ce8d8SChristopher Smith array('tablerow_close',array()), 175f05a1cc5SGerrit Uitslag array('tablethead_close',array()), 176f8369d7dSTobias Sarnowski array('table_close',array(19)), 177f8369d7dSTobias Sarnowski array('p_open',array()), 178f8369d7dSTobias Sarnowski array('cdata',array('def')), 179f8369d7dSTobias Sarnowski array('p_close',array()), 180f8369d7dSTobias Sarnowski array('document_end',array()), 181f8369d7dSTobias Sarnowski ); 182f8369d7dSTobias Sarnowski 183*688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 184f8369d7dSTobias Sarnowski 185f8369d7dSTobias Sarnowski } 186f8369d7dSTobias Sarnowski 187*688ce8d8SChristopher Smith function testTableHeadMultiline() { 188f05a1cc5SGerrit Uitslag $this->P->addMode('table',new Doku_Parser_Mode_Table()); 189f05a1cc5SGerrit Uitslag $this->P->parse(' 190f05a1cc5SGerrit Uitslagabc 191*688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 192*688ce8d8SChristopher Smith^ X2 ^ Y2 ^ Z2 ^ 193f05a1cc5SGerrit Uitslag| A | B | C | 194f05a1cc5SGerrit Uitslagdef'); 195f05a1cc5SGerrit Uitslag 196f05a1cc5SGerrit Uitslag $calls = array ( 197f05a1cc5SGerrit Uitslag array('document_start',array()), 198f05a1cc5SGerrit Uitslag array('p_open',array()), 199f05a1cc5SGerrit Uitslag array('cdata',array("\n\nabc")), 200f05a1cc5SGerrit Uitslag array('p_close',array()), 201*688ce8d8SChristopher Smith array('table_open',array(3, 3, 6)), 202f05a1cc5SGerrit Uitslag array('tablethead_open',array()), 203f05a1cc5SGerrit Uitslag array('tablerow_open',array()), 204f05a1cc5SGerrit Uitslag array('tableheader_open',array(1,NULL,1)), 205*688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 206f05a1cc5SGerrit Uitslag array('tableheader_close',array()), 207f05a1cc5SGerrit Uitslag array('tableheader_open',array(1,NULL,1)), 208*688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 209*688ce8d8SChristopher Smith array('tableheader_close',array()), 210*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 211*688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 212*688ce8d8SChristopher Smith array('tableheader_close',array()), 213*688ce8d8SChristopher Smith array('tablerow_close',array()), 214*688ce8d8SChristopher Smith array('tablerow_open',array()), 215*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 216*688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 217*688ce8d8SChristopher Smith array('tableheader_close',array()), 218*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 219*688ce8d8SChristopher Smith array('cdata',array(' Y2 ')), 220*688ce8d8SChristopher Smith array('tableheader_close',array()), 221*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 222*688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 223f05a1cc5SGerrit Uitslag array('tableheader_close',array()), 224f05a1cc5SGerrit Uitslag array('tablerow_close',array()), 225f05a1cc5SGerrit Uitslag array('tablethead_close',array()), 226f05a1cc5SGerrit Uitslag array('tablerow_open',array()), 227f05a1cc5SGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 228f05a1cc5SGerrit Uitslag array('cdata',array(' A ')), 229f05a1cc5SGerrit Uitslag array('tablecell_close',array()), 230f05a1cc5SGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 231f05a1cc5SGerrit Uitslag array('cdata',array(' B ')), 232f05a1cc5SGerrit Uitslag array('tablecell_close',array()), 233f05a1cc5SGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 234f05a1cc5SGerrit Uitslag array('cdata',array(' C ')), 235f05a1cc5SGerrit Uitslag array('tablecell_close',array()), 236f05a1cc5SGerrit Uitslag array('tablerow_close',array()), 237*688ce8d8SChristopher Smith array('table_close',array(53)), 238f05a1cc5SGerrit Uitslag array('p_open',array()), 239f05a1cc5SGerrit Uitslag array('cdata',array('def')), 240f05a1cc5SGerrit Uitslag array('p_close',array()), 241f05a1cc5SGerrit Uitslag array('document_end',array()), 242f05a1cc5SGerrit Uitslag ); 243f05a1cc5SGerrit Uitslag 244*688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 245f05a1cc5SGerrit Uitslag 246f05a1cc5SGerrit Uitslag } 247f05a1cc5SGerrit Uitslag 248f8369d7dSTobias Sarnowski function testCellAlignment() { 249f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 250f8369d7dSTobias Sarnowski $this->P->parse(' 251f8369d7dSTobias Sarnowskiabc 252f8369d7dSTobias Sarnowski| X | Y ^ Z | 253f8369d7dSTobias Sarnowskidef'); 254f8369d7dSTobias Sarnowski 255f8369d7dSTobias Sarnowski $calls = array ( 256f8369d7dSTobias Sarnowski array('document_start',array()), 257f8369d7dSTobias Sarnowski array('p_open',array()), 258f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 259f8369d7dSTobias Sarnowski array('p_close',array()), 260f8369d7dSTobias Sarnowski array('table_open',array(3, 1, 6)), 261f8369d7dSTobias Sarnowski array('tablerow_open',array()), 262f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'right',1)), 263f8369d7dSTobias Sarnowski array('cdata',array(' X ')), 264f8369d7dSTobias Sarnowski array('tablecell_close',array()), 265f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 266f8369d7dSTobias Sarnowski array('cdata',array(' Y ')), 267f8369d7dSTobias Sarnowski array('tablecell_close',array()), 268f8369d7dSTobias Sarnowski array('tableheader_open',array(1,'center',1)), 269f8369d7dSTobias Sarnowski array('cdata',array(' Z ')), 270f8369d7dSTobias Sarnowski array('tableheader_close',array()), 271f8369d7dSTobias Sarnowski array('tablerow_close',array()), 272f8369d7dSTobias Sarnowski array('table_close',array(23)), 273f8369d7dSTobias Sarnowski array('p_open',array()), 274f8369d7dSTobias Sarnowski array('cdata',array('def')), 275f8369d7dSTobias Sarnowski array('p_close',array()), 276f8369d7dSTobias Sarnowski array('document_end',array()), 277f8369d7dSTobias Sarnowski ); 278f8369d7dSTobias Sarnowski 279f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 280f8369d7dSTobias Sarnowski } 281f8369d7dSTobias Sarnowski 282f8369d7dSTobias Sarnowski function testCellSpan() { 283f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 284f8369d7dSTobias Sarnowski $this->P->parse(' 285f8369d7dSTobias Sarnowskiabc 286f8369d7dSTobias Sarnowski| d || e | 287f8369d7dSTobias Sarnowski| f ^ ^| 288f8369d7dSTobias Sarnowski|||| 289f8369d7dSTobias Sarnowskidef'); 290f8369d7dSTobias Sarnowski 291f8369d7dSTobias Sarnowski $calls = array ( 292f8369d7dSTobias Sarnowski array('document_start',array()), 293f8369d7dSTobias Sarnowski array('p_open',array()), 294f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 295f8369d7dSTobias Sarnowski array('p_close',array()), 296f8369d7dSTobias Sarnowski array('table_open',array(3, 3, 6)), 297f8369d7dSTobias Sarnowski array('tablerow_open',array()), 298f8369d7dSTobias Sarnowski array('tablecell_open',array(2,'right',1)), 299f8369d7dSTobias Sarnowski array('cdata',array(' d ')), 300f8369d7dSTobias Sarnowski array('tablecell_close',array()), 301f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 302f8369d7dSTobias Sarnowski array('cdata',array(' e ')), 303f8369d7dSTobias Sarnowski array('tablecell_close',array()), 304f8369d7dSTobias Sarnowski array('tablerow_close',array()), 305f8369d7dSTobias Sarnowski array('tablerow_open',array()), 306f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 307f8369d7dSTobias Sarnowski array('cdata',array(' f ')), 308f8369d7dSTobias Sarnowski array('tablecell_close',array()), 309f8369d7dSTobias Sarnowski array('tableheader_open',array(2,NULL,1)), 310f8369d7dSTobias Sarnowski array('cdata',array(' ')), 311f8369d7dSTobias Sarnowski array('tableheader_close',array()), 312f8369d7dSTobias Sarnowski array('tablerow_close',array()), 313f8369d7dSTobias Sarnowski array('tablerow_open',array()), 314f8369d7dSTobias Sarnowski array('tablerow_close',array()), 315f8369d7dSTobias Sarnowski array('table_close',array(31)), 316f8369d7dSTobias Sarnowski array('p_open',array()), 317f8369d7dSTobias Sarnowski array('cdata',array('def')), 318f8369d7dSTobias Sarnowski array('p_close',array()), 319f8369d7dSTobias Sarnowski array('document_end',array()), 320f8369d7dSTobias Sarnowski ); 321f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 322f8369d7dSTobias Sarnowski } 323f8369d7dSTobias Sarnowski 324f8369d7dSTobias Sarnowski function testCellRowSpan() { 325f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 326f8369d7dSTobias Sarnowski $this->P->parse(' 327f8369d7dSTobias Sarnowskiabc 328f8369d7dSTobias Sarnowski| a | c:::|| 329f8369d7dSTobias Sarnowski|:::^ d | e| 330f8369d7dSTobias Sarnowski|b ^ ::: |:::f| 331f8369d7dSTobias Sarnowskidef'); 332f8369d7dSTobias Sarnowski 333f8369d7dSTobias Sarnowski $calls = array ( 334f8369d7dSTobias Sarnowski array('document_start',array()), 335f8369d7dSTobias Sarnowski array('p_open',array()), 336f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 337f8369d7dSTobias Sarnowski array('p_close',array()), 338f8369d7dSTobias Sarnowski array('table_open',array(3, 3, 6)), 339f8369d7dSTobias Sarnowski array('tablerow_open',array()), 340f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,2)), 341f8369d7dSTobias Sarnowski array('cdata',array(' a ')), 342f8369d7dSTobias Sarnowski array('tablecell_close',array()), 343f8369d7dSTobias Sarnowski array('tablecell_open',array(2,'right',1)), 344f8369d7dSTobias Sarnowski array('cdata',array(' c:::')), 345f8369d7dSTobias Sarnowski array('tablecell_close',array()), 346f8369d7dSTobias Sarnowski array('tablerow_close',array()), 347f8369d7dSTobias Sarnowski array('tablerow_open',array()), 348f8369d7dSTobias Sarnowski array('tableheader_open',array(1,'left',2)), 349f8369d7dSTobias Sarnowski array('cdata',array(' d ')), 350f8369d7dSTobias Sarnowski array('tableheader_close',array()), 351f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 352f8369d7dSTobias Sarnowski array('cdata',array(' e')), 353f8369d7dSTobias Sarnowski array('tablecell_close',array()), 354f8369d7dSTobias Sarnowski array('tablerow_close',array()), 355f8369d7dSTobias Sarnowski array('tablerow_open',array()), 356f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 357f8369d7dSTobias Sarnowski array('cdata',array('b ')), 358f8369d7dSTobias Sarnowski array('tablecell_close',array()), 359f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 360f8369d7dSTobias Sarnowski array('cdata',array(':::f')), 361f8369d7dSTobias Sarnowski array('tablecell_close',array()), 362f8369d7dSTobias Sarnowski array('tablerow_close',array()), 363f8369d7dSTobias Sarnowski array('table_close',array(51)), 364f8369d7dSTobias Sarnowski array('p_open',array()), 365f8369d7dSTobias Sarnowski array('cdata',array('def')), 366f8369d7dSTobias Sarnowski array('p_close',array()), 367f8369d7dSTobias Sarnowski array('document_end',array()), 368f8369d7dSTobias Sarnowski ); 369f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 370f8369d7dSTobias Sarnowski } 3710d9a72ffSGerrit Uitslag 3720d9a72ffSGerrit Uitslag function testCellRowSpanFirstRow() { 3730d9a72ffSGerrit Uitslag $this->P->addMode('table',new Doku_Parser_Mode_Table()); 3740d9a72ffSGerrit Uitslag $this->P->parse(' 3750d9a72ffSGerrit Uitslagabc 3760d9a72ffSGerrit Uitslag|::: ^ d:::^:::| ::: | 3770d9a72ffSGerrit Uitslag| b ^ e | | ::: | 3780d9a72ffSGerrit Uitslag|c ^ ::: | |:::| 3790d9a72ffSGerrit Uitslagdef'); 3800d9a72ffSGerrit Uitslag 3810d9a72ffSGerrit Uitslag $calls = array ( 3820d9a72ffSGerrit Uitslag array('document_start',array()), 3830d9a72ffSGerrit Uitslag array('p_open',array()), 3840d9a72ffSGerrit Uitslag array('cdata',array("\n\nabc")), 3850d9a72ffSGerrit Uitslag array('p_close',array()), 3860d9a72ffSGerrit Uitslag array('table_open',array(4, 3, 6)), 3870d9a72ffSGerrit Uitslag array('tablerow_open',array()), 3880d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 3890d9a72ffSGerrit Uitslag array('cdata',array('')), 3900d9a72ffSGerrit Uitslag array('tablecell_close',array()), 3910d9a72ffSGerrit Uitslag array('tableheader_open',array(1,'right',1)), 3920d9a72ffSGerrit Uitslag array('cdata',array(' d:::')), 3930d9a72ffSGerrit Uitslag array('tableheader_close',array()), 3940d9a72ffSGerrit Uitslag array('tableheader_open',array(1,NULL,1)), 3950d9a72ffSGerrit Uitslag array('cdata',array('')), 3960d9a72ffSGerrit Uitslag array('tableheader_close',array()), 3970d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,3)), 3980d9a72ffSGerrit Uitslag array('cdata',array('')), 3990d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4000d9a72ffSGerrit Uitslag array('tablerow_close',array()), 4010d9a72ffSGerrit Uitslag array('tablerow_open',array()), 4020d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 4030d9a72ffSGerrit Uitslag array('cdata',array(' b ')), 4040d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4050d9a72ffSGerrit Uitslag array('tableheader_open',array(1,'left',2)), 4060d9a72ffSGerrit Uitslag array('cdata',array(' e ')), 4070d9a72ffSGerrit Uitslag array('tableheader_close',array()), 4080d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 4090d9a72ffSGerrit Uitslag array('cdata',array(' ')), 4100d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4110d9a72ffSGerrit Uitslag array('tablerow_close',array()), 4120d9a72ffSGerrit Uitslag array('tablerow_open',array()), 4130d9a72ffSGerrit Uitslag array('tablecell_open',array(1,'left',1)), 4140d9a72ffSGerrit Uitslag array('cdata',array('c ')), 4150d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4160d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 4170d9a72ffSGerrit Uitslag array('cdata',array(' ')), 4180d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4190d9a72ffSGerrit Uitslag array('tablerow_close',array()), 4200d9a72ffSGerrit Uitslag 4210d9a72ffSGerrit Uitslag array('table_close',array(69)), 4220d9a72ffSGerrit Uitslag array('p_open',array()), 4230d9a72ffSGerrit Uitslag array('cdata',array('def')), 4240d9a72ffSGerrit Uitslag array('p_close',array()), 4250d9a72ffSGerrit Uitslag array('document_end',array()), 4260d9a72ffSGerrit Uitslag ); 4270d9a72ffSGerrit Uitslag $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 4280d9a72ffSGerrit Uitslag } 429f8369d7dSTobias Sarnowski 430*688ce8d8SChristopher Smith function testRowSpanTableHead() { 431*688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 432*688ce8d8SChristopher Smith $this->P->parse(' 433*688ce8d8SChristopher Smithabc 434*688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 435*688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^ 436*688ce8d8SChristopher Smith| A3 | B3 | C3 | 437*688ce8d8SChristopher Smithdef'); 438*688ce8d8SChristopher Smith 439*688ce8d8SChristopher Smith $calls = array ( 440*688ce8d8SChristopher Smith array('document_start',array()), 441*688ce8d8SChristopher Smith array('p_open',array()), 442*688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 443*688ce8d8SChristopher Smith array('p_close',array()), 444*688ce8d8SChristopher Smith array('table_open',array(3, 3, 6)), 445*688ce8d8SChristopher Smith array('tablethead_open',array()), 446*688ce8d8SChristopher Smith array('tablerow_open',array()), 447*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 448*688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 449*688ce8d8SChristopher Smith array('tableheader_close',array()), 450*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,2)), 451*688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 452*688ce8d8SChristopher Smith array('tableheader_close',array()), 453*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 454*688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 455*688ce8d8SChristopher Smith array('tableheader_close',array()), 456*688ce8d8SChristopher Smith array('tablerow_close',array()), 457*688ce8d8SChristopher Smith array('tablerow_open',array()), 458*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 459*688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 460*688ce8d8SChristopher Smith array('tableheader_close',array()), 461*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 462*688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 463*688ce8d8SChristopher Smith array('tableheader_close',array()), 464*688ce8d8SChristopher Smith array('tablerow_close',array()), 465*688ce8d8SChristopher Smith array('tablethead_close',array()), 466*688ce8d8SChristopher Smith array('tablerow_open',array()), 467*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 468*688ce8d8SChristopher Smith array('cdata',array(' A3 ')), 469*688ce8d8SChristopher Smith array('tablecell_close',array()), 470*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 471*688ce8d8SChristopher Smith array('cdata',array(' B3 ')), 472*688ce8d8SChristopher Smith array('tablecell_close',array()), 473*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 474*688ce8d8SChristopher Smith array('cdata',array(' C3 ')), 475*688ce8d8SChristopher Smith array('tablecell_close',array()), 476*688ce8d8SChristopher Smith array('tablerow_close',array()), 477*688ce8d8SChristopher Smith array('table_close',array(57)), 478*688ce8d8SChristopher Smith array('p_open',array()), 479*688ce8d8SChristopher Smith array('cdata',array('def')), 480*688ce8d8SChristopher Smith array('p_close',array()), 481*688ce8d8SChristopher Smith array('document_end',array()), 482*688ce8d8SChristopher Smith ); 483*688ce8d8SChristopher Smith 484*688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 485*688ce8d8SChristopher Smith 486*688ce8d8SChristopher Smith } 487*688ce8d8SChristopher Smith 488*688ce8d8SChristopher Smith function testRowSpanAcrossTableHeadBoundary() { 489*688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 490*688ce8d8SChristopher Smith $this->P->parse(' 491*688ce8d8SChristopher Smithabc 492*688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 493*688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^ 494*688ce8d8SChristopher Smith| A3 | ::: | C3 | 495*688ce8d8SChristopher Smith| A4 | ::: | C4 | 496*688ce8d8SChristopher Smithdef'); 497*688ce8d8SChristopher Smith 498*688ce8d8SChristopher Smith $calls = array ( 499*688ce8d8SChristopher Smith array('document_start',array()), 500*688ce8d8SChristopher Smith array('p_open',array()), 501*688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 502*688ce8d8SChristopher Smith array('p_close',array()), 503*688ce8d8SChristopher Smith array('table_open',array(3, 4, 6)), 504*688ce8d8SChristopher Smith array('tablethead_open',array()), 505*688ce8d8SChristopher Smith array('tablerow_open',array()), 506*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 507*688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 508*688ce8d8SChristopher Smith array('tableheader_close',array()), 509*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,2)), 510*688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 511*688ce8d8SChristopher Smith array('tableheader_close',array()), 512*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 513*688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 514*688ce8d8SChristopher Smith array('tableheader_close',array()), 515*688ce8d8SChristopher Smith array('tablerow_close',array()), 516*688ce8d8SChristopher Smith array('tablerow_open',array()), 517*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 518*688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 519*688ce8d8SChristopher Smith array('tableheader_close',array()), 520*688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 521*688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 522*688ce8d8SChristopher Smith array('tableheader_close',array()), 523*688ce8d8SChristopher Smith array('tablerow_close',array()), 524*688ce8d8SChristopher Smith array('tablethead_close',array()), 525*688ce8d8SChristopher Smith array('tablerow_open',array()), 526*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 527*688ce8d8SChristopher Smith array('cdata',array(' A3 ')), 528*688ce8d8SChristopher Smith array('tablecell_close',array()), 529*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,2)), 530*688ce8d8SChristopher Smith array('cdata',array('')), 531*688ce8d8SChristopher Smith array('tablecell_close',array()), 532*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 533*688ce8d8SChristopher Smith array('cdata',array(' C3 ')), 534*688ce8d8SChristopher Smith array('tablecell_close',array()), 535*688ce8d8SChristopher Smith array('tablerow_close',array()), 536*688ce8d8SChristopher Smith array('tablerow_open',array()), 537*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 538*688ce8d8SChristopher Smith array('cdata',array(' A4 ')), 539*688ce8d8SChristopher Smith array('tablecell_close',array()), 540*688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 541*688ce8d8SChristopher Smith array('cdata',array(' C4 ')), 542*688ce8d8SChristopher Smith array('tablecell_close',array()), 543*688ce8d8SChristopher Smith array('tablerow_close',array()), 544*688ce8d8SChristopher Smith array('table_close',array(76)), 545*688ce8d8SChristopher Smith array('p_open',array()), 546*688ce8d8SChristopher Smith array('cdata',array('def')), 547*688ce8d8SChristopher Smith array('p_close',array()), 548*688ce8d8SChristopher Smith array('document_end',array()), 549*688ce8d8SChristopher Smith ); 550*688ce8d8SChristopher Smith 551*688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 552*688ce8d8SChristopher Smith 553*688ce8d8SChristopher Smith } 554*688ce8d8SChristopher Smith 555f8369d7dSTobias Sarnowski function testCellAlignmentFormatting() { 556f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 557f8369d7dSTobias Sarnowski $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 558f8369d7dSTobias Sarnowski $this->P->parse(' 559f8369d7dSTobias Sarnowskiabc 560f8369d7dSTobias Sarnowski| **X** | Y ^ Z | 561f8369d7dSTobias Sarnowskidef'); 562f8369d7dSTobias Sarnowski 563f8369d7dSTobias Sarnowski $calls = array ( 564f8369d7dSTobias Sarnowski array('document_start',array()), 565f8369d7dSTobias Sarnowski array('p_open',array()), 566f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 567f8369d7dSTobias Sarnowski array('p_close',array()), 568f8369d7dSTobias Sarnowski array('table_open',array(3, 1, 6)), 569f8369d7dSTobias Sarnowski array('tablerow_open',array()), 570f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'right',1)), 571f8369d7dSTobias Sarnowski array('cdata',array(' ')), 572f8369d7dSTobias Sarnowski array('strong_open',array()), 573f8369d7dSTobias Sarnowski array('cdata',array('X')), 574f8369d7dSTobias Sarnowski array('strong_close',array()), 575f8369d7dSTobias Sarnowski array('cdata',array(' ')), 576f8369d7dSTobias Sarnowski array('tablecell_close',array()), 577f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 578f8369d7dSTobias Sarnowski array('cdata',array(' Y ')), 579f8369d7dSTobias Sarnowski array('tablecell_close',array()), 580f8369d7dSTobias Sarnowski array('tableheader_open',array(1,'center',1)), 581f8369d7dSTobias Sarnowski array('cdata',array(' Z ')), 582f8369d7dSTobias Sarnowski array('tableheader_close',array()), 583f8369d7dSTobias Sarnowski array('tablerow_close',array()), 584f8369d7dSTobias Sarnowski array('table_close',array(27)), 585f8369d7dSTobias Sarnowski array('p_open',array()), 586f8369d7dSTobias Sarnowski array('cdata',array('def')), 587f8369d7dSTobias Sarnowski array('p_close',array()), 588f8369d7dSTobias Sarnowski array('document_end',array()), 589f8369d7dSTobias Sarnowski ); 590f8369d7dSTobias Sarnowski 591f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 592f8369d7dSTobias Sarnowski 593f8369d7dSTobias Sarnowski } 594f8369d7dSTobias Sarnowski 595f8369d7dSTobias Sarnowski function testTableEol() { 596f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 597f8369d7dSTobias Sarnowski $this->P->addMode('eol',new Doku_Parser_Mode_Eol()); 598f8369d7dSTobias Sarnowski $this->P->parse(' 599f8369d7dSTobias Sarnowskiabc 600f8369d7dSTobias Sarnowski| Row 0 Col 1 | Row 0 Col 2 | Row 0 Col 3 | 601f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 602f8369d7dSTobias Sarnowskidef'); 603f8369d7dSTobias Sarnowski $calls = array ( 604f8369d7dSTobias Sarnowski array('document_start',array()), 605f8369d7dSTobias Sarnowski array('p_open',array()), 606f8369d7dSTobias Sarnowski array('cdata',array("abc")), 607f8369d7dSTobias Sarnowski array('p_close',array()), 608f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 609f8369d7dSTobias Sarnowski array('tablerow_open',array()), 610f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 611f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 1 ')), 612f8369d7dSTobias Sarnowski array('tablecell_close',array()), 613f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 614f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 2 ')), 615f8369d7dSTobias Sarnowski array('tablecell_close',array()), 616f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 617f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 3 ')), 618f8369d7dSTobias Sarnowski array('tablecell_close',array()), 619f8369d7dSTobias Sarnowski array('tablerow_close',array()), 620f8369d7dSTobias Sarnowski array('tablerow_open',array()), 621f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 622f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 623f8369d7dSTobias Sarnowski array('tablecell_close',array()), 624f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 625f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 626f8369d7dSTobias Sarnowski array('tablecell_close',array()), 627f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 628f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 629f8369d7dSTobias Sarnowski array('tablecell_close',array()), 630f8369d7dSTobias Sarnowski array('tablerow_close',array()), 631f8369d7dSTobias Sarnowski array('table_close',array(121)), 632f8369d7dSTobias Sarnowski array('p_open',array()), 633f8369d7dSTobias Sarnowski array('cdata',array('def')), 634f8369d7dSTobias Sarnowski array('p_close',array()), 635f8369d7dSTobias Sarnowski array('document_end',array()), 636f8369d7dSTobias Sarnowski ); 637f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 638f8369d7dSTobias Sarnowski } 639f8369d7dSTobias Sarnowski 640f8369d7dSTobias Sarnowski // This is really a failing test - formatting able to spread across cols 641f8369d7dSTobias Sarnowski // Problem is fixing it would mean a major rewrite of table handling 642f8369d7dSTobias Sarnowski function testTableStrong() { 643f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 644f8369d7dSTobias Sarnowski $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 645f8369d7dSTobias Sarnowski $this->P->parse(' 646f8369d7dSTobias Sarnowskiabc 647f8369d7dSTobias Sarnowski| **Row 0 Col 1** | **Row 0 Col 2 | Row 0 Col 3** | 648f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 649f8369d7dSTobias Sarnowskidef'); 650f8369d7dSTobias Sarnowski $calls = array ( 651f8369d7dSTobias Sarnowski array('document_start',array()), 652f8369d7dSTobias Sarnowski array('p_open',array()), 653f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 654f8369d7dSTobias Sarnowski array('p_close',array()), 655f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 656f8369d7dSTobias Sarnowski array('tablerow_open',array()), 657f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 658f8369d7dSTobias Sarnowski array('cdata',array(' ')), 659f8369d7dSTobias Sarnowski array('strong_open',array()), 660f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 1')), 661f8369d7dSTobias Sarnowski array('strong_close',array()), 662f8369d7dSTobias Sarnowski array('cdata',array(' ')), 663f8369d7dSTobias Sarnowski array('tablecell_close',array()), 664f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 665f8369d7dSTobias Sarnowski array('cdata',array(' ')), 666f8369d7dSTobias Sarnowski array('strong_open',array()), 667f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 2 | Row 0 Col 3')), 668f8369d7dSTobias Sarnowski array('strong_close',array()), 669f8369d7dSTobias Sarnowski array('cdata',array(' ')), 670f8369d7dSTobias Sarnowski array('tablecell_close',array()), 671f8369d7dSTobias Sarnowski array('tablecell_open',array(1,null,1)), 672f8369d7dSTobias Sarnowski array('cdata',array('')), 673f8369d7dSTobias Sarnowski array('tablecell_close',array()), 674f8369d7dSTobias Sarnowski array('tablerow_close',array()), 675f8369d7dSTobias Sarnowski array('tablerow_open',array()), 676f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 677f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 678f8369d7dSTobias Sarnowski array('tablecell_close',array()), 679f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 680f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 681f8369d7dSTobias Sarnowski array('tablecell_close',array()), 682f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 683f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 684f8369d7dSTobias Sarnowski array('tablecell_close',array()), 685f8369d7dSTobias Sarnowski array('tablerow_close',array()), 686f8369d7dSTobias Sarnowski array('table_close',array(129)), 687f8369d7dSTobias Sarnowski array('p_open',array()), 688f8369d7dSTobias Sarnowski array('cdata',array('def')), 689f8369d7dSTobias Sarnowski array('p_close',array()), 690f8369d7dSTobias Sarnowski array('document_end',array()), 691f8369d7dSTobias Sarnowski ); 692f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 693f8369d7dSTobias Sarnowski } 694f8369d7dSTobias Sarnowski 695f8369d7dSTobias Sarnowski // This is really a failing test - unformatted able to spread across cols 696f8369d7dSTobias Sarnowski // Problem is fixing it would mean a major rewrite of table handling 697f8369d7dSTobias Sarnowski function testTableUnformatted() { 698f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 699f8369d7dSTobias Sarnowski $this->P->addMode('unformatted',new Doku_Parser_Mode_Unformatted()); 700f8369d7dSTobias Sarnowski $this->P->parse(' 701f8369d7dSTobias Sarnowskiabc 702f8369d7dSTobias Sarnowski| <nowiki>Row 0 Col 1</nowiki> | <nowiki>Row 0 Col 2 | Row 0 Col 3</nowiki> | 703f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 704f8369d7dSTobias Sarnowskidef'); 705f8369d7dSTobias Sarnowski $calls = array ( 706f8369d7dSTobias Sarnowski array('document_start',array()), 707f8369d7dSTobias Sarnowski array('p_open',array()), 708f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 709f8369d7dSTobias Sarnowski array('p_close',array()), 710f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 711f8369d7dSTobias Sarnowski array('tablerow_open',array()), 712f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 713f8369d7dSTobias Sarnowski array('cdata',array(' ')), 714f8369d7dSTobias Sarnowski array('unformatted',array('Row 0 Col 1')), 715f8369d7dSTobias Sarnowski array('cdata',array(' ')), 716f8369d7dSTobias Sarnowski array('tablecell_close',array()), 717f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 718f8369d7dSTobias Sarnowski array('cdata',array(' ')), 719f8369d7dSTobias Sarnowski array('unformatted',array('Row 0 Col 2 | Row 0 Col 3')), 720f8369d7dSTobias Sarnowski array('cdata',array(' ')), 721f8369d7dSTobias Sarnowski array('tablecell_close',array()), 722f8369d7dSTobias Sarnowski array('tablecell_open',array(1,null,1)), 723f8369d7dSTobias Sarnowski array('cdata',array('')), 724f8369d7dSTobias Sarnowski array('tablecell_close',array()), 725f8369d7dSTobias Sarnowski array('tablerow_close',array()), 726f8369d7dSTobias Sarnowski array('tablerow_open',array()), 727f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 728f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 729f8369d7dSTobias Sarnowski array('tablecell_close',array()), 730f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 731f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 732f8369d7dSTobias Sarnowski array('tablecell_close',array()), 733f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 734f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 735f8369d7dSTobias Sarnowski array('tablecell_close',array()), 736f8369d7dSTobias Sarnowski array('tablerow_close',array()), 737f8369d7dSTobias Sarnowski array('table_close',array(155)), 738f8369d7dSTobias Sarnowski array('p_open',array()), 739f8369d7dSTobias Sarnowski array('cdata',array('def')), 740f8369d7dSTobias Sarnowski array('p_close',array()), 741f8369d7dSTobias Sarnowski array('document_end',array()), 742f8369d7dSTobias Sarnowski ); 743f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 744f8369d7dSTobias Sarnowski } 745f8369d7dSTobias Sarnowski 746f8369d7dSTobias Sarnowski function testTableLinebreak() { 747f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 748f8369d7dSTobias Sarnowski $this->P->addMode('linebreak',new Doku_Parser_Mode_Linebreak()); 749f8369d7dSTobias Sarnowski $this->P->parse(' 750f8369d7dSTobias Sarnowskiabc 751f8369d7dSTobias Sarnowski| Row 0\\\\ Col 1 | Row 0 Col 2 | Row 0 Col 3 | 752f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 753f8369d7dSTobias Sarnowskidef'); 754f8369d7dSTobias Sarnowski $calls = array ( 755f8369d7dSTobias Sarnowski array('document_start',array()), 756f8369d7dSTobias Sarnowski array('p_open',array()), 757f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 758f8369d7dSTobias Sarnowski array('p_close',array()), 759f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 760f8369d7dSTobias Sarnowski array('tablerow_open',array()), 761f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 762f8369d7dSTobias Sarnowski array('cdata',array(' Row 0')), 763f8369d7dSTobias Sarnowski array('linebreak',array()), 764f8369d7dSTobias Sarnowski array('cdata',array('Col 1 ')), 765f8369d7dSTobias Sarnowski array('tablecell_close',array()), 766f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 767f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 2 ')), 768f8369d7dSTobias Sarnowski array('tablecell_close',array()), 769f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 770f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 3 ')), 771f8369d7dSTobias Sarnowski array('tablecell_close',array()), 772f8369d7dSTobias Sarnowski array('tablerow_close',array()), 773f8369d7dSTobias Sarnowski array('tablerow_open',array()), 774f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 775f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 776f8369d7dSTobias Sarnowski array('tablecell_close',array()), 777f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 778f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 779f8369d7dSTobias Sarnowski array('tablecell_close',array()), 780f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 781f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 782f8369d7dSTobias Sarnowski array('tablecell_close',array()), 783f8369d7dSTobias Sarnowski array('tablerow_close',array()), 784f8369d7dSTobias Sarnowski array('table_close',array(123)), 785f8369d7dSTobias Sarnowski array('p_open',array()), 786f8369d7dSTobias Sarnowski array('cdata',array('def')), 787f8369d7dSTobias Sarnowski array('p_close',array()), 788f8369d7dSTobias Sarnowski array('document_end',array()), 789f8369d7dSTobias Sarnowski ); 790f8369d7dSTobias Sarnowski 791f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 792f8369d7dSTobias Sarnowski } 793f8369d7dSTobias Sarnowski 794f8369d7dSTobias Sarnowski // This is really a failing test - footnote able to spread across cols 795f8369d7dSTobias Sarnowski // Problem is fixing it would mean a major rewrite of table handling 796f8369d7dSTobias Sarnowski function testTableFootnote() { 797f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 798f8369d7dSTobias Sarnowski $this->P->addMode('footnote',new Doku_Parser_Mode_Footnote()); 799f8369d7dSTobias Sarnowski $this->P->parse(' 800f8369d7dSTobias Sarnowskiabc 801f8369d7dSTobias Sarnowski| ((Row 0 Col 1)) | ((Row 0 Col 2 | Row 0 Col 3)) | 802f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 803f8369d7dSTobias Sarnowskidef'); 804f8369d7dSTobias Sarnowski $calls = array ( 805f8369d7dSTobias Sarnowski array('document_start',array()), 806f8369d7dSTobias Sarnowski array('p_open',array()), 807f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 808f8369d7dSTobias Sarnowski array('p_close',array()), 809f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 810f8369d7dSTobias Sarnowski array('tablerow_open',array()), 811f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 812f8369d7dSTobias Sarnowski array('cdata',array(' ')), 813f8369d7dSTobias Sarnowski array('nest', array ( array ( 814f8369d7dSTobias Sarnowski array('footnote_open',array()), 815f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 1')), 816f8369d7dSTobias Sarnowski array('footnote_close',array()), 817f8369d7dSTobias Sarnowski ))), 818f8369d7dSTobias Sarnowski array('cdata',array(' ')), 819f8369d7dSTobias Sarnowski array('tablecell_close',array()), 820f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 821f8369d7dSTobias Sarnowski array('cdata',array(' ')), 822f8369d7dSTobias Sarnowski array('nest', array ( array ( 823f8369d7dSTobias Sarnowski array('footnote_open',array()), 824f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 2 | Row 0 Col 3')), 825f8369d7dSTobias Sarnowski array('footnote_close',array()), 826f8369d7dSTobias Sarnowski ))), 827f8369d7dSTobias Sarnowski array('cdata',array(' ')), 828f8369d7dSTobias Sarnowski array('tablecell_close',array()), 829f8369d7dSTobias Sarnowski array('tablecell_open',array(1,null,1)), 830f8369d7dSTobias Sarnowski array('cdata',array('')), 831f8369d7dSTobias Sarnowski array('tablecell_close',array()), 832f8369d7dSTobias Sarnowski array('tablerow_close',array()), 833f8369d7dSTobias Sarnowski array('tablerow_open',array()), 834f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 835f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 836f8369d7dSTobias Sarnowski array('tablecell_close',array()), 837f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 838f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 839f8369d7dSTobias Sarnowski array('tablecell_close',array()), 840f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 841f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 842f8369d7dSTobias Sarnowski array('tablecell_close',array()), 843f8369d7dSTobias Sarnowski array('tablerow_close',array()), 844f8369d7dSTobias Sarnowski array('table_close',array(129)), 845f8369d7dSTobias Sarnowski array('p_open',array()), 846f8369d7dSTobias Sarnowski array('cdata',array('def')), 847f8369d7dSTobias Sarnowski array('p_close',array()), 848f8369d7dSTobias Sarnowski array('document_end',array()), 849f8369d7dSTobias Sarnowski ); 850f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 851f8369d7dSTobias Sarnowski } 852f8369d7dSTobias Sarnowski} 853