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 ); 47*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 87*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 112*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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()), 139688ce8d8SChristopher Smith array('table_close',array(19)), 140688ce8d8SChristopher Smith array('p_open',array()), 141688ce8d8SChristopher Smith array('cdata',array('def')), 142688ce8d8SChristopher Smith array('p_close',array()), 143688ce8d8SChristopher Smith array('document_end',array()), 144688ce8d8SChristopher Smith ); 145688ce8d8SChristopher Smith 146688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 147688ce8d8SChristopher Smith 148688ce8d8SChristopher Smith } 149688ce8d8SChristopher Smith 150688ce8d8SChristopher Smith function testTableHead() { 151688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 152688ce8d8SChristopher Smith $this->P->parse(' 153688ce8d8SChristopher Smithabc 154688ce8d8SChristopher Smith^ X ^ Y ^ Z ^ 155688ce8d8SChristopher Smithdef'); 156688ce8d8SChristopher Smith 157688ce8d8SChristopher Smith $calls = array ( 158688ce8d8SChristopher Smith array('document_start',array()), 159688ce8d8SChristopher Smith array('p_open',array()), 160688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 161688ce8d8SChristopher Smith array('p_close',array()), 162688ce8d8SChristopher Smith array('table_open',array(3, 1, 6)), 163688ce8d8SChristopher Smith array('tablethead_open',array()), 164688ce8d8SChristopher Smith array('tablerow_open',array()), 165688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 166688ce8d8SChristopher Smith array('cdata',array(' X ')), 167688ce8d8SChristopher Smith array('tableheader_close',array()), 168688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 169688ce8d8SChristopher Smith array('cdata',array(' Y ')), 170688ce8d8SChristopher Smith array('tableheader_close',array()), 171688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 172688ce8d8SChristopher Smith array('cdata',array(' Z ')), 173688ce8d8SChristopher Smith array('tableheader_close',array()), 174688ce8d8SChristopher 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 183688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 184f8369d7dSTobias Sarnowski 185f8369d7dSTobias Sarnowski } 186f8369d7dSTobias Sarnowski 187688ce8d8SChristopher Smith function testTableHeadMultiline() { 188f05a1cc5SGerrit Uitslag $this->P->addMode('table',new Doku_Parser_Mode_Table()); 189f05a1cc5SGerrit Uitslag $this->P->parse(' 190f05a1cc5SGerrit Uitslagabc 191688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 192688ce8d8SChristopher 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()), 201688ce8d8SChristopher 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)), 205688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 206f05a1cc5SGerrit Uitslag array('tableheader_close',array()), 207f05a1cc5SGerrit Uitslag array('tableheader_open',array(1,NULL,1)), 208688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 209688ce8d8SChristopher Smith array('tableheader_close',array()), 210688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 211688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 212688ce8d8SChristopher Smith array('tableheader_close',array()), 213688ce8d8SChristopher Smith array('tablerow_close',array()), 214688ce8d8SChristopher Smith array('tablerow_open',array()), 215688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 216688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 217688ce8d8SChristopher Smith array('tableheader_close',array()), 218688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 219688ce8d8SChristopher Smith array('cdata',array(' Y2 ')), 220688ce8d8SChristopher Smith array('tableheader_close',array()), 221688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 222688ce8d8SChristopher 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()), 237688ce8d8SChristopher 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 244688ce8d8SChristopher 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 279*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 321*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 369*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 427*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 4280d9a72ffSGerrit Uitslag } 429f8369d7dSTobias Sarnowski 430688ce8d8SChristopher Smith function testRowSpanTableHead() { 431688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 432688ce8d8SChristopher Smith $this->P->parse(' 433688ce8d8SChristopher Smithabc 434688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 435688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^ 436688ce8d8SChristopher Smith| A3 | B3 | C3 | 437688ce8d8SChristopher Smithdef'); 438688ce8d8SChristopher Smith 439688ce8d8SChristopher Smith $calls = array ( 440688ce8d8SChristopher Smith array('document_start',array()), 441688ce8d8SChristopher Smith array('p_open',array()), 442688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 443688ce8d8SChristopher Smith array('p_close',array()), 444688ce8d8SChristopher Smith array('table_open',array(3, 3, 6)), 445688ce8d8SChristopher Smith array('tablethead_open',array()), 446688ce8d8SChristopher Smith array('tablerow_open',array()), 447688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 448688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 449688ce8d8SChristopher Smith array('tableheader_close',array()), 450688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,2)), 451688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 452688ce8d8SChristopher Smith array('tableheader_close',array()), 453688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 454688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 455688ce8d8SChristopher Smith array('tableheader_close',array()), 456688ce8d8SChristopher Smith array('tablerow_close',array()), 457688ce8d8SChristopher Smith array('tablerow_open',array()), 458688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 459688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 460688ce8d8SChristopher Smith array('tableheader_close',array()), 461688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 462688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 463688ce8d8SChristopher Smith array('tableheader_close',array()), 464688ce8d8SChristopher Smith array('tablerow_close',array()), 465688ce8d8SChristopher Smith array('tablethead_close',array()), 466688ce8d8SChristopher Smith array('tablerow_open',array()), 467688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 468688ce8d8SChristopher Smith array('cdata',array(' A3 ')), 469688ce8d8SChristopher Smith array('tablecell_close',array()), 470688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 471688ce8d8SChristopher Smith array('cdata',array(' B3 ')), 472688ce8d8SChristopher Smith array('tablecell_close',array()), 473688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 474688ce8d8SChristopher Smith array('cdata',array(' C3 ')), 475688ce8d8SChristopher Smith array('tablecell_close',array()), 476688ce8d8SChristopher Smith array('tablerow_close',array()), 477688ce8d8SChristopher Smith array('table_close',array(57)), 478688ce8d8SChristopher Smith array('p_open',array()), 479688ce8d8SChristopher Smith array('cdata',array('def')), 480688ce8d8SChristopher Smith array('p_close',array()), 481688ce8d8SChristopher Smith array('document_end',array()), 482688ce8d8SChristopher Smith ); 483688ce8d8SChristopher Smith 484688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 485688ce8d8SChristopher Smith 486688ce8d8SChristopher Smith } 487688ce8d8SChristopher Smith 488688ce8d8SChristopher Smith function testRowSpanAcrossTableHeadBoundary() { 489688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 490688ce8d8SChristopher Smith $this->P->parse(' 491688ce8d8SChristopher Smithabc 492688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 493688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^ 494688ce8d8SChristopher Smith| A3 | ::: | C3 | 495688ce8d8SChristopher Smith| A4 | ::: | C4 | 496688ce8d8SChristopher Smithdef'); 497688ce8d8SChristopher Smith 498688ce8d8SChristopher Smith $calls = array ( 499688ce8d8SChristopher Smith array('document_start',array()), 500688ce8d8SChristopher Smith array('p_open',array()), 501688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 502688ce8d8SChristopher Smith array('p_close',array()), 503688ce8d8SChristopher Smith array('table_open',array(3, 4, 6)), 504688ce8d8SChristopher Smith array('tablethead_open',array()), 505688ce8d8SChristopher Smith array('tablerow_open',array()), 506688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 507688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 508688ce8d8SChristopher Smith array('tableheader_close',array()), 509688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,2)), 510688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 511688ce8d8SChristopher Smith array('tableheader_close',array()), 512688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 513688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 514688ce8d8SChristopher Smith array('tableheader_close',array()), 515688ce8d8SChristopher Smith array('tablerow_close',array()), 516688ce8d8SChristopher Smith array('tablerow_open',array()), 517688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 518688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 519688ce8d8SChristopher Smith array('tableheader_close',array()), 520688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 521688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 522688ce8d8SChristopher Smith array('tableheader_close',array()), 523688ce8d8SChristopher Smith array('tablerow_close',array()), 524688ce8d8SChristopher Smith array('tablethead_close',array()), 525688ce8d8SChristopher Smith array('tablerow_open',array()), 526688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 527688ce8d8SChristopher Smith array('cdata',array(' A3 ')), 528688ce8d8SChristopher Smith array('tablecell_close',array()), 529688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,2)), 530688ce8d8SChristopher Smith array('cdata',array('')), 531688ce8d8SChristopher Smith array('tablecell_close',array()), 532688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 533688ce8d8SChristopher Smith array('cdata',array(' C3 ')), 534688ce8d8SChristopher Smith array('tablecell_close',array()), 535688ce8d8SChristopher Smith array('tablerow_close',array()), 536688ce8d8SChristopher Smith array('tablerow_open',array()), 537688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 538688ce8d8SChristopher Smith array('cdata',array(' A4 ')), 539688ce8d8SChristopher Smith array('tablecell_close',array()), 540688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 541688ce8d8SChristopher Smith array('cdata',array(' C4 ')), 542688ce8d8SChristopher Smith array('tablecell_close',array()), 543688ce8d8SChristopher Smith array('tablerow_close',array()), 544688ce8d8SChristopher Smith array('table_close',array(76)), 545688ce8d8SChristopher Smith array('p_open',array()), 546688ce8d8SChristopher Smith array('cdata',array('def')), 547688ce8d8SChristopher Smith array('p_close',array()), 548688ce8d8SChristopher Smith array('document_end',array()), 549688ce8d8SChristopher Smith ); 550688ce8d8SChristopher Smith 551688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 552688ce8d8SChristopher Smith 553688ce8d8SChristopher Smith } 554688ce8d8SChristopher 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 591*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 637*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 692*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 743*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 791*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->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 ); 850*e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 851f8369d7dSTobias Sarnowski } 852f8369d7dSTobias Sarnowski} 853