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 ); 47e0328e30SChristopher 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 ); 87e0328e30SChristopher 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 112e0328e30SChristopher 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 ^ 155*c2a1d01eSChristopher Smith| x | y | z | 156688ce8d8SChristopher Smithdef'); 157688ce8d8SChristopher Smith 158688ce8d8SChristopher Smith $calls = array ( 159688ce8d8SChristopher Smith array('document_start',array()), 160688ce8d8SChristopher Smith array('p_open',array()), 161688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 162688ce8d8SChristopher Smith array('p_close',array()), 163*c2a1d01eSChristopher Smith array('table_open',array(3, 2, 6)), 164688ce8d8SChristopher Smith array('tablethead_open',array()), 165688ce8d8SChristopher Smith array('tablerow_open',array()), 166688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 167688ce8d8SChristopher Smith array('cdata',array(' X ')), 168688ce8d8SChristopher Smith array('tableheader_close',array()), 169688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 170688ce8d8SChristopher Smith array('cdata',array(' Y ')), 171688ce8d8SChristopher Smith array('tableheader_close',array()), 172688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 173688ce8d8SChristopher Smith array('cdata',array(' Z ')), 174688ce8d8SChristopher Smith array('tableheader_close',array()), 175688ce8d8SChristopher Smith array('tablerow_close',array()), 176f05a1cc5SGerrit Uitslag array('tablethead_close',array()), 177*c2a1d01eSChristopher Smith array('tablerow_open',array()), 178*c2a1d01eSChristopher Smith array('tablecell_open',array(1,NULL,1)), 179*c2a1d01eSChristopher Smith array('cdata',array(' x ')), 180*c2a1d01eSChristopher Smith array('tablecell_close',array()), 181*c2a1d01eSChristopher Smith array('tablecell_open',array(1,NULL,1)), 182*c2a1d01eSChristopher Smith array('cdata',array(' y ')), 183*c2a1d01eSChristopher Smith array('tablecell_close',array()), 184*c2a1d01eSChristopher Smith array('tablecell_open',array(1,NULL,1)), 185*c2a1d01eSChristopher Smith array('cdata',array(' z ')), 186*c2a1d01eSChristopher Smith array('tablecell_close',array()), 187*c2a1d01eSChristopher Smith array('tablerow_close',array()), 188*c2a1d01eSChristopher Smith array('table_close',array(33)), 189*c2a1d01eSChristopher Smith array('p_open',array()), 190*c2a1d01eSChristopher Smith array('cdata',array('def')), 191*c2a1d01eSChristopher Smith array('p_close',array()), 192*c2a1d01eSChristopher Smith array('document_end',array()), 193*c2a1d01eSChristopher Smith ); 194*c2a1d01eSChristopher Smith 195*c2a1d01eSChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 196*c2a1d01eSChristopher Smith 197*c2a1d01eSChristopher Smith } 198*c2a1d01eSChristopher Smith 199*c2a1d01eSChristopher Smith function testTableHeadOneRowTable() { 200*c2a1d01eSChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 201*c2a1d01eSChristopher Smith $this->P->parse(' 202*c2a1d01eSChristopher Smithabc 203*c2a1d01eSChristopher Smith^ X ^ Y ^ Z ^ 204*c2a1d01eSChristopher Smithdef'); 205*c2a1d01eSChristopher Smith 206*c2a1d01eSChristopher Smith $calls = array ( 207*c2a1d01eSChristopher Smith array('document_start',array()), 208*c2a1d01eSChristopher Smith array('p_open',array()), 209*c2a1d01eSChristopher Smith array('cdata',array("\n\nabc")), 210*c2a1d01eSChristopher Smith array('p_close',array()), 211*c2a1d01eSChristopher Smith array('table_open',array(3, 1, 6)), 212*c2a1d01eSChristopher Smith array('tablerow_open',array()), 213*c2a1d01eSChristopher Smith array('tableheader_open',array(1,NULL,1)), 214*c2a1d01eSChristopher Smith array('cdata',array(' X ')), 215*c2a1d01eSChristopher Smith array('tableheader_close',array()), 216*c2a1d01eSChristopher Smith array('tableheader_open',array(1,NULL,1)), 217*c2a1d01eSChristopher Smith array('cdata',array(' Y ')), 218*c2a1d01eSChristopher Smith array('tableheader_close',array()), 219*c2a1d01eSChristopher Smith array('tableheader_open',array(1,NULL,1)), 220*c2a1d01eSChristopher Smith array('cdata',array(' Z ')), 221*c2a1d01eSChristopher Smith array('tableheader_close',array()), 222*c2a1d01eSChristopher Smith array('tablerow_close',array()), 223f8369d7dSTobias Sarnowski array('table_close',array(19)), 224f8369d7dSTobias Sarnowski array('p_open',array()), 225f8369d7dSTobias Sarnowski array('cdata',array('def')), 226f8369d7dSTobias Sarnowski array('p_close',array()), 227f8369d7dSTobias Sarnowski array('document_end',array()), 228f8369d7dSTobias Sarnowski ); 229f8369d7dSTobias Sarnowski 230688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 231f8369d7dSTobias Sarnowski 232f8369d7dSTobias Sarnowski } 233f8369d7dSTobias Sarnowski 234688ce8d8SChristopher Smith function testTableHeadMultiline() { 235f05a1cc5SGerrit Uitslag $this->P->addMode('table',new Doku_Parser_Mode_Table()); 236f05a1cc5SGerrit Uitslag $this->P->parse(' 237f05a1cc5SGerrit Uitslagabc 238688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 239688ce8d8SChristopher Smith^ X2 ^ Y2 ^ Z2 ^ 240f05a1cc5SGerrit Uitslag| A | B | C | 241f05a1cc5SGerrit Uitslagdef'); 242f05a1cc5SGerrit Uitslag 243f05a1cc5SGerrit Uitslag $calls = array ( 244f05a1cc5SGerrit Uitslag array('document_start',array()), 245f05a1cc5SGerrit Uitslag array('p_open',array()), 246f05a1cc5SGerrit Uitslag array('cdata',array("\n\nabc")), 247f05a1cc5SGerrit Uitslag array('p_close',array()), 248688ce8d8SChristopher Smith array('table_open',array(3, 3, 6)), 249f05a1cc5SGerrit Uitslag array('tablethead_open',array()), 250f05a1cc5SGerrit Uitslag array('tablerow_open',array()), 251f05a1cc5SGerrit Uitslag array('tableheader_open',array(1,NULL,1)), 252688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 253f05a1cc5SGerrit Uitslag array('tableheader_close',array()), 254f05a1cc5SGerrit Uitslag array('tableheader_open',array(1,NULL,1)), 255688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 256688ce8d8SChristopher Smith array('tableheader_close',array()), 257688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 258688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 259688ce8d8SChristopher Smith array('tableheader_close',array()), 260688ce8d8SChristopher Smith array('tablerow_close',array()), 261688ce8d8SChristopher Smith array('tablerow_open',array()), 262688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 263688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 264688ce8d8SChristopher Smith array('tableheader_close',array()), 265688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 266688ce8d8SChristopher Smith array('cdata',array(' Y2 ')), 267688ce8d8SChristopher Smith array('tableheader_close',array()), 268688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 269688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 270f05a1cc5SGerrit Uitslag array('tableheader_close',array()), 271f05a1cc5SGerrit Uitslag array('tablerow_close',array()), 272f05a1cc5SGerrit Uitslag array('tablethead_close',array()), 273f05a1cc5SGerrit Uitslag array('tablerow_open',array()), 274f05a1cc5SGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 275f05a1cc5SGerrit Uitslag array('cdata',array(' A ')), 276f05a1cc5SGerrit Uitslag array('tablecell_close',array()), 277f05a1cc5SGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 278f05a1cc5SGerrit Uitslag array('cdata',array(' B ')), 279f05a1cc5SGerrit Uitslag array('tablecell_close',array()), 280f05a1cc5SGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 281f05a1cc5SGerrit Uitslag array('cdata',array(' C ')), 282f05a1cc5SGerrit Uitslag array('tablecell_close',array()), 283f05a1cc5SGerrit Uitslag array('tablerow_close',array()), 284688ce8d8SChristopher Smith array('table_close',array(53)), 285f05a1cc5SGerrit Uitslag array('p_open',array()), 286f05a1cc5SGerrit Uitslag array('cdata',array('def')), 287f05a1cc5SGerrit Uitslag array('p_close',array()), 288f05a1cc5SGerrit Uitslag array('document_end',array()), 289f05a1cc5SGerrit Uitslag ); 290f05a1cc5SGerrit Uitslag 291688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 292f05a1cc5SGerrit Uitslag 293f05a1cc5SGerrit Uitslag } 294f05a1cc5SGerrit Uitslag 295f8369d7dSTobias Sarnowski function testCellAlignment() { 296f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 297f8369d7dSTobias Sarnowski $this->P->parse(' 298f8369d7dSTobias Sarnowskiabc 299f8369d7dSTobias Sarnowski| X | Y ^ Z | 300f8369d7dSTobias Sarnowskidef'); 301f8369d7dSTobias Sarnowski 302f8369d7dSTobias Sarnowski $calls = array ( 303f8369d7dSTobias Sarnowski array('document_start',array()), 304f8369d7dSTobias Sarnowski array('p_open',array()), 305f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 306f8369d7dSTobias Sarnowski array('p_close',array()), 307f8369d7dSTobias Sarnowski array('table_open',array(3, 1, 6)), 308f8369d7dSTobias Sarnowski array('tablerow_open',array()), 309f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'right',1)), 310f8369d7dSTobias Sarnowski array('cdata',array(' X ')), 311f8369d7dSTobias Sarnowski array('tablecell_close',array()), 312f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 313f8369d7dSTobias Sarnowski array('cdata',array(' Y ')), 314f8369d7dSTobias Sarnowski array('tablecell_close',array()), 315f8369d7dSTobias Sarnowski array('tableheader_open',array(1,'center',1)), 316f8369d7dSTobias Sarnowski array('cdata',array(' Z ')), 317f8369d7dSTobias Sarnowski array('tableheader_close',array()), 318f8369d7dSTobias Sarnowski array('tablerow_close',array()), 319f8369d7dSTobias Sarnowski array('table_close',array(23)), 320f8369d7dSTobias Sarnowski array('p_open',array()), 321f8369d7dSTobias Sarnowski array('cdata',array('def')), 322f8369d7dSTobias Sarnowski array('p_close',array()), 323f8369d7dSTobias Sarnowski array('document_end',array()), 324f8369d7dSTobias Sarnowski ); 325f8369d7dSTobias Sarnowski 326e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 327f8369d7dSTobias Sarnowski } 328f8369d7dSTobias Sarnowski 329f8369d7dSTobias Sarnowski function testCellSpan() { 330f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 331f8369d7dSTobias Sarnowski $this->P->parse(' 332f8369d7dSTobias Sarnowskiabc 333f8369d7dSTobias Sarnowski| d || e | 334f8369d7dSTobias Sarnowski| f ^ ^| 335f8369d7dSTobias Sarnowski|||| 336f8369d7dSTobias Sarnowskidef'); 337f8369d7dSTobias Sarnowski 338f8369d7dSTobias Sarnowski $calls = array ( 339f8369d7dSTobias Sarnowski array('document_start',array()), 340f8369d7dSTobias Sarnowski array('p_open',array()), 341f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 342f8369d7dSTobias Sarnowski array('p_close',array()), 343f8369d7dSTobias Sarnowski array('table_open',array(3, 3, 6)), 344f8369d7dSTobias Sarnowski array('tablerow_open',array()), 345f8369d7dSTobias Sarnowski array('tablecell_open',array(2,'right',1)), 346f8369d7dSTobias Sarnowski array('cdata',array(' d ')), 347f8369d7dSTobias Sarnowski array('tablecell_close',array()), 348f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 349f8369d7dSTobias Sarnowski array('cdata',array(' e ')), 350f8369d7dSTobias Sarnowski array('tablecell_close',array()), 351f8369d7dSTobias Sarnowski array('tablerow_close',array()), 352f8369d7dSTobias Sarnowski array('tablerow_open',array()), 353f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 354f8369d7dSTobias Sarnowski array('cdata',array(' f ')), 355f8369d7dSTobias Sarnowski array('tablecell_close',array()), 356f8369d7dSTobias Sarnowski array('tableheader_open',array(2,NULL,1)), 357f8369d7dSTobias Sarnowski array('cdata',array(' ')), 358f8369d7dSTobias Sarnowski array('tableheader_close',array()), 359f8369d7dSTobias Sarnowski array('tablerow_close',array()), 360f8369d7dSTobias Sarnowski array('tablerow_open',array()), 361f8369d7dSTobias Sarnowski array('tablerow_close',array()), 362f8369d7dSTobias Sarnowski array('table_close',array(31)), 363f8369d7dSTobias Sarnowski array('p_open',array()), 364f8369d7dSTobias Sarnowski array('cdata',array('def')), 365f8369d7dSTobias Sarnowski array('p_close',array()), 366f8369d7dSTobias Sarnowski array('document_end',array()), 367f8369d7dSTobias Sarnowski ); 368e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 369f8369d7dSTobias Sarnowski } 370f8369d7dSTobias Sarnowski 371f8369d7dSTobias Sarnowski function testCellRowSpan() { 372f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 373f8369d7dSTobias Sarnowski $this->P->parse(' 374f8369d7dSTobias Sarnowskiabc 375f8369d7dSTobias Sarnowski| a | c:::|| 376f8369d7dSTobias Sarnowski|:::^ d | e| 377f8369d7dSTobias Sarnowski|b ^ ::: |:::f| 378f8369d7dSTobias Sarnowskidef'); 379f8369d7dSTobias Sarnowski 380f8369d7dSTobias Sarnowski $calls = array ( 381f8369d7dSTobias Sarnowski array('document_start',array()), 382f8369d7dSTobias Sarnowski array('p_open',array()), 383f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 384f8369d7dSTobias Sarnowski array('p_close',array()), 385f8369d7dSTobias Sarnowski array('table_open',array(3, 3, 6)), 386f8369d7dSTobias Sarnowski array('tablerow_open',array()), 387f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,2)), 388f8369d7dSTobias Sarnowski array('cdata',array(' a ')), 389f8369d7dSTobias Sarnowski array('tablecell_close',array()), 390f8369d7dSTobias Sarnowski array('tablecell_open',array(2,'right',1)), 391f8369d7dSTobias Sarnowski array('cdata',array(' c:::')), 392f8369d7dSTobias Sarnowski array('tablecell_close',array()), 393f8369d7dSTobias Sarnowski array('tablerow_close',array()), 394f8369d7dSTobias Sarnowski array('tablerow_open',array()), 395f8369d7dSTobias Sarnowski array('tableheader_open',array(1,'left',2)), 396f8369d7dSTobias Sarnowski array('cdata',array(' d ')), 397f8369d7dSTobias Sarnowski array('tableheader_close',array()), 398f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 399f8369d7dSTobias Sarnowski array('cdata',array(' e')), 400f8369d7dSTobias Sarnowski array('tablecell_close',array()), 401f8369d7dSTobias Sarnowski array('tablerow_close',array()), 402f8369d7dSTobias Sarnowski array('tablerow_open',array()), 403f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 404f8369d7dSTobias Sarnowski array('cdata',array('b ')), 405f8369d7dSTobias Sarnowski array('tablecell_close',array()), 406f8369d7dSTobias Sarnowski array('tablecell_open',array(1,NULL,1)), 407f8369d7dSTobias Sarnowski array('cdata',array(':::f')), 408f8369d7dSTobias Sarnowski array('tablecell_close',array()), 409f8369d7dSTobias Sarnowski array('tablerow_close',array()), 410f8369d7dSTobias Sarnowski array('table_close',array(51)), 411f8369d7dSTobias Sarnowski array('p_open',array()), 412f8369d7dSTobias Sarnowski array('cdata',array('def')), 413f8369d7dSTobias Sarnowski array('p_close',array()), 414f8369d7dSTobias Sarnowski array('document_end',array()), 415f8369d7dSTobias Sarnowski ); 416e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 417f8369d7dSTobias Sarnowski } 4180d9a72ffSGerrit Uitslag 4190d9a72ffSGerrit Uitslag function testCellRowSpanFirstRow() { 4200d9a72ffSGerrit Uitslag $this->P->addMode('table',new Doku_Parser_Mode_Table()); 4210d9a72ffSGerrit Uitslag $this->P->parse(' 4220d9a72ffSGerrit Uitslagabc 4230d9a72ffSGerrit Uitslag|::: ^ d:::^:::| ::: | 4240d9a72ffSGerrit Uitslag| b ^ e | | ::: | 4250d9a72ffSGerrit Uitslag|c ^ ::: | |:::| 4260d9a72ffSGerrit Uitslagdef'); 4270d9a72ffSGerrit Uitslag 4280d9a72ffSGerrit Uitslag $calls = array ( 4290d9a72ffSGerrit Uitslag array('document_start',array()), 4300d9a72ffSGerrit Uitslag array('p_open',array()), 4310d9a72ffSGerrit Uitslag array('cdata',array("\n\nabc")), 4320d9a72ffSGerrit Uitslag array('p_close',array()), 4330d9a72ffSGerrit Uitslag array('table_open',array(4, 3, 6)), 4340d9a72ffSGerrit Uitslag array('tablerow_open',array()), 4350d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 4360d9a72ffSGerrit Uitslag array('cdata',array('')), 4370d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4380d9a72ffSGerrit Uitslag array('tableheader_open',array(1,'right',1)), 4390d9a72ffSGerrit Uitslag array('cdata',array(' d:::')), 4400d9a72ffSGerrit Uitslag array('tableheader_close',array()), 4410d9a72ffSGerrit Uitslag array('tableheader_open',array(1,NULL,1)), 4420d9a72ffSGerrit Uitslag array('cdata',array('')), 4430d9a72ffSGerrit Uitslag array('tableheader_close',array()), 4440d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,3)), 4450d9a72ffSGerrit Uitslag array('cdata',array('')), 4460d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4470d9a72ffSGerrit Uitslag array('tablerow_close',array()), 4480d9a72ffSGerrit Uitslag array('tablerow_open',array()), 4490d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 4500d9a72ffSGerrit Uitslag array('cdata',array(' b ')), 4510d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4520d9a72ffSGerrit Uitslag array('tableheader_open',array(1,'left',2)), 4530d9a72ffSGerrit Uitslag array('cdata',array(' e ')), 4540d9a72ffSGerrit Uitslag array('tableheader_close',array()), 4550d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 4560d9a72ffSGerrit Uitslag array('cdata',array(' ')), 4570d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4580d9a72ffSGerrit Uitslag array('tablerow_close',array()), 4590d9a72ffSGerrit Uitslag array('tablerow_open',array()), 4600d9a72ffSGerrit Uitslag array('tablecell_open',array(1,'left',1)), 4610d9a72ffSGerrit Uitslag array('cdata',array('c ')), 4620d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4630d9a72ffSGerrit Uitslag array('tablecell_open',array(1,NULL,1)), 4640d9a72ffSGerrit Uitslag array('cdata',array(' ')), 4650d9a72ffSGerrit Uitslag array('tablecell_close',array()), 4660d9a72ffSGerrit Uitslag array('tablerow_close',array()), 4670d9a72ffSGerrit Uitslag 4680d9a72ffSGerrit Uitslag array('table_close',array(69)), 4690d9a72ffSGerrit Uitslag array('p_open',array()), 4700d9a72ffSGerrit Uitslag array('cdata',array('def')), 4710d9a72ffSGerrit Uitslag array('p_close',array()), 4720d9a72ffSGerrit Uitslag array('document_end',array()), 4730d9a72ffSGerrit Uitslag ); 474e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 4750d9a72ffSGerrit Uitslag } 476f8369d7dSTobias Sarnowski 477688ce8d8SChristopher Smith function testRowSpanTableHead() { 478688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 479688ce8d8SChristopher Smith $this->P->parse(' 480688ce8d8SChristopher Smithabc 481688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 482688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^ 483688ce8d8SChristopher Smith| A3 | B3 | C3 | 484688ce8d8SChristopher Smithdef'); 485688ce8d8SChristopher Smith 486688ce8d8SChristopher Smith $calls = array ( 487688ce8d8SChristopher Smith array('document_start',array()), 488688ce8d8SChristopher Smith array('p_open',array()), 489688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 490688ce8d8SChristopher Smith array('p_close',array()), 491688ce8d8SChristopher Smith array('table_open',array(3, 3, 6)), 492688ce8d8SChristopher Smith array('tablethead_open',array()), 493688ce8d8SChristopher Smith array('tablerow_open',array()), 494688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 495688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 496688ce8d8SChristopher Smith array('tableheader_close',array()), 497688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,2)), 498688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 499688ce8d8SChristopher Smith array('tableheader_close',array()), 500688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 501688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 502688ce8d8SChristopher Smith array('tableheader_close',array()), 503688ce8d8SChristopher Smith array('tablerow_close',array()), 504688ce8d8SChristopher Smith array('tablerow_open',array()), 505688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 506688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 507688ce8d8SChristopher Smith array('tableheader_close',array()), 508688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 509688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 510688ce8d8SChristopher Smith array('tableheader_close',array()), 511688ce8d8SChristopher Smith array('tablerow_close',array()), 512688ce8d8SChristopher Smith array('tablethead_close',array()), 513688ce8d8SChristopher Smith array('tablerow_open',array()), 514688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 515688ce8d8SChristopher Smith array('cdata',array(' A3 ')), 516688ce8d8SChristopher Smith array('tablecell_close',array()), 517688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 518688ce8d8SChristopher Smith array('cdata',array(' B3 ')), 519688ce8d8SChristopher Smith array('tablecell_close',array()), 520688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 521688ce8d8SChristopher Smith array('cdata',array(' C3 ')), 522688ce8d8SChristopher Smith array('tablecell_close',array()), 523688ce8d8SChristopher Smith array('tablerow_close',array()), 524688ce8d8SChristopher Smith array('table_close',array(57)), 525688ce8d8SChristopher Smith array('p_open',array()), 526688ce8d8SChristopher Smith array('cdata',array('def')), 527688ce8d8SChristopher Smith array('p_close',array()), 528688ce8d8SChristopher Smith array('document_end',array()), 529688ce8d8SChristopher Smith ); 530688ce8d8SChristopher Smith 531688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 532688ce8d8SChristopher Smith 533688ce8d8SChristopher Smith } 534688ce8d8SChristopher Smith 535688ce8d8SChristopher Smith function testRowSpanAcrossTableHeadBoundary() { 536688ce8d8SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 537688ce8d8SChristopher Smith $this->P->parse(' 538688ce8d8SChristopher Smithabc 539688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^ 540688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^ 541688ce8d8SChristopher Smith| A3 | ::: | C3 | 542688ce8d8SChristopher Smith| A4 | ::: | C4 | 543688ce8d8SChristopher Smithdef'); 544688ce8d8SChristopher Smith 545688ce8d8SChristopher Smith $calls = array ( 546688ce8d8SChristopher Smith array('document_start',array()), 547688ce8d8SChristopher Smith array('p_open',array()), 548688ce8d8SChristopher Smith array('cdata',array("\n\nabc")), 549688ce8d8SChristopher Smith array('p_close',array()), 550688ce8d8SChristopher Smith array('table_open',array(3, 4, 6)), 551688ce8d8SChristopher Smith array('tablethead_open',array()), 552688ce8d8SChristopher Smith array('tablerow_open',array()), 553688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 554688ce8d8SChristopher Smith array('cdata',array(' X1 ')), 555688ce8d8SChristopher Smith array('tableheader_close',array()), 556688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,2)), 557688ce8d8SChristopher Smith array('cdata',array(' Y1 ')), 558688ce8d8SChristopher Smith array('tableheader_close',array()), 559688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 560688ce8d8SChristopher Smith array('cdata',array(' Z1 ')), 561688ce8d8SChristopher Smith array('tableheader_close',array()), 562688ce8d8SChristopher Smith array('tablerow_close',array()), 563688ce8d8SChristopher Smith array('tablerow_open',array()), 564688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 565688ce8d8SChristopher Smith array('cdata',array(' X2 ')), 566688ce8d8SChristopher Smith array('tableheader_close',array()), 567688ce8d8SChristopher Smith array('tableheader_open',array(1,NULL,1)), 568688ce8d8SChristopher Smith array('cdata',array(' Z2 ')), 569688ce8d8SChristopher Smith array('tableheader_close',array()), 570688ce8d8SChristopher Smith array('tablerow_close',array()), 571688ce8d8SChristopher Smith array('tablethead_close',array()), 572688ce8d8SChristopher Smith array('tablerow_open',array()), 573688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 574688ce8d8SChristopher Smith array('cdata',array(' A3 ')), 575688ce8d8SChristopher Smith array('tablecell_close',array()), 576688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,2)), 577688ce8d8SChristopher Smith array('cdata',array('')), 578688ce8d8SChristopher Smith array('tablecell_close',array()), 579688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 580688ce8d8SChristopher Smith array('cdata',array(' C3 ')), 581688ce8d8SChristopher Smith array('tablecell_close',array()), 582688ce8d8SChristopher Smith array('tablerow_close',array()), 583688ce8d8SChristopher Smith array('tablerow_open',array()), 584688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 585688ce8d8SChristopher Smith array('cdata',array(' A4 ')), 586688ce8d8SChristopher Smith array('tablecell_close',array()), 587688ce8d8SChristopher Smith array('tablecell_open',array(1,NULL,1)), 588688ce8d8SChristopher Smith array('cdata',array(' C4 ')), 589688ce8d8SChristopher Smith array('tablecell_close',array()), 590688ce8d8SChristopher Smith array('tablerow_close',array()), 591688ce8d8SChristopher Smith array('table_close',array(76)), 592688ce8d8SChristopher Smith array('p_open',array()), 593688ce8d8SChristopher Smith array('cdata',array('def')), 594688ce8d8SChristopher Smith array('p_close',array()), 595688ce8d8SChristopher Smith array('document_end',array()), 596688ce8d8SChristopher Smith ); 597688ce8d8SChristopher Smith 598688ce8d8SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 599688ce8d8SChristopher Smith 600688ce8d8SChristopher Smith } 601688ce8d8SChristopher Smith 602f8369d7dSTobias Sarnowski function testCellAlignmentFormatting() { 603f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 604f8369d7dSTobias Sarnowski $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 605f8369d7dSTobias Sarnowski $this->P->parse(' 606f8369d7dSTobias Sarnowskiabc 607f8369d7dSTobias Sarnowski| **X** | Y ^ Z | 608f8369d7dSTobias Sarnowskidef'); 609f8369d7dSTobias Sarnowski 610f8369d7dSTobias Sarnowski $calls = array ( 611f8369d7dSTobias Sarnowski array('document_start',array()), 612f8369d7dSTobias Sarnowski array('p_open',array()), 613f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 614f8369d7dSTobias Sarnowski array('p_close',array()), 615f8369d7dSTobias Sarnowski array('table_open',array(3, 1, 6)), 616f8369d7dSTobias Sarnowski array('tablerow_open',array()), 617f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'right',1)), 618f8369d7dSTobias Sarnowski array('cdata',array(' ')), 619f8369d7dSTobias Sarnowski array('strong_open',array()), 620f8369d7dSTobias Sarnowski array('cdata',array('X')), 621f8369d7dSTobias Sarnowski array('strong_close',array()), 622f8369d7dSTobias Sarnowski array('cdata',array(' ')), 623f8369d7dSTobias Sarnowski array('tablecell_close',array()), 624f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 625f8369d7dSTobias Sarnowski array('cdata',array(' Y ')), 626f8369d7dSTobias Sarnowski array('tablecell_close',array()), 627f8369d7dSTobias Sarnowski array('tableheader_open',array(1,'center',1)), 628f8369d7dSTobias Sarnowski array('cdata',array(' Z ')), 629f8369d7dSTobias Sarnowski array('tableheader_close',array()), 630f8369d7dSTobias Sarnowski array('tablerow_close',array()), 631f8369d7dSTobias Sarnowski array('table_close',array(27)), 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 638e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 639f8369d7dSTobias Sarnowski 640f8369d7dSTobias Sarnowski } 641f8369d7dSTobias Sarnowski 642f8369d7dSTobias Sarnowski function testTableEol() { 643f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 644f8369d7dSTobias Sarnowski $this->P->addMode('eol',new Doku_Parser_Mode_Eol()); 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("abc")), 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(' Row 0 Col 1 ')), 659f8369d7dSTobias Sarnowski array('tablecell_close',array()), 660f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 661f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 2 ')), 662f8369d7dSTobias Sarnowski array('tablecell_close',array()), 663f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 664f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 3 ')), 665f8369d7dSTobias Sarnowski array('tablecell_close',array()), 666f8369d7dSTobias Sarnowski array('tablerow_close',array()), 667f8369d7dSTobias Sarnowski array('tablerow_open',array()), 668f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 669f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 670f8369d7dSTobias Sarnowski array('tablecell_close',array()), 671f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 672f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 673f8369d7dSTobias Sarnowski array('tablecell_close',array()), 674f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 675f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 676f8369d7dSTobias Sarnowski array('tablecell_close',array()), 677f8369d7dSTobias Sarnowski array('tablerow_close',array()), 678f8369d7dSTobias Sarnowski array('table_close',array(121)), 679f8369d7dSTobias Sarnowski array('p_open',array()), 680f8369d7dSTobias Sarnowski array('cdata',array('def')), 681f8369d7dSTobias Sarnowski array('p_close',array()), 682f8369d7dSTobias Sarnowski array('document_end',array()), 683f8369d7dSTobias Sarnowski ); 684e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 685f8369d7dSTobias Sarnowski } 686f8369d7dSTobias Sarnowski 687f8369d7dSTobias Sarnowski // This is really a failing test - formatting able to spread across cols 688f8369d7dSTobias Sarnowski // Problem is fixing it would mean a major rewrite of table handling 689f8369d7dSTobias Sarnowski function testTableStrong() { 690f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 691f8369d7dSTobias Sarnowski $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 692f8369d7dSTobias Sarnowski $this->P->parse(' 693f8369d7dSTobias Sarnowskiabc 694f8369d7dSTobias Sarnowski| **Row 0 Col 1** | **Row 0 Col 2 | Row 0 Col 3** | 695f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 696f8369d7dSTobias Sarnowskidef'); 697f8369d7dSTobias Sarnowski $calls = array ( 698f8369d7dSTobias Sarnowski array('document_start',array()), 699f8369d7dSTobias Sarnowski array('p_open',array()), 700f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 701f8369d7dSTobias Sarnowski array('p_close',array()), 702f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 703f8369d7dSTobias Sarnowski array('tablerow_open',array()), 704f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 705f8369d7dSTobias Sarnowski array('cdata',array(' ')), 706f8369d7dSTobias Sarnowski array('strong_open',array()), 707f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 1')), 708f8369d7dSTobias Sarnowski array('strong_close',array()), 709f8369d7dSTobias Sarnowski array('cdata',array(' ')), 710f8369d7dSTobias Sarnowski array('tablecell_close',array()), 711f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 712f8369d7dSTobias Sarnowski array('cdata',array(' ')), 713f8369d7dSTobias Sarnowski array('strong_open',array()), 714f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 2 | Row 0 Col 3')), 715f8369d7dSTobias Sarnowski array('strong_close',array()), 716f8369d7dSTobias Sarnowski array('cdata',array(' ')), 717f8369d7dSTobias Sarnowski array('tablecell_close',array()), 718f8369d7dSTobias Sarnowski array('tablecell_open',array(1,null,1)), 719f8369d7dSTobias Sarnowski array('cdata',array('')), 720f8369d7dSTobias Sarnowski array('tablecell_close',array()), 721f8369d7dSTobias Sarnowski array('tablerow_close',array()), 722f8369d7dSTobias Sarnowski array('tablerow_open',array()), 723f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 724f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 725f8369d7dSTobias Sarnowski array('tablecell_close',array()), 726f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 727f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 728f8369d7dSTobias Sarnowski array('tablecell_close',array()), 729f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 730f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 731f8369d7dSTobias Sarnowski array('tablecell_close',array()), 732f8369d7dSTobias Sarnowski array('tablerow_close',array()), 733f8369d7dSTobias Sarnowski array('table_close',array(129)), 734f8369d7dSTobias Sarnowski array('p_open',array()), 735f8369d7dSTobias Sarnowski array('cdata',array('def')), 736f8369d7dSTobias Sarnowski array('p_close',array()), 737f8369d7dSTobias Sarnowski array('document_end',array()), 738f8369d7dSTobias Sarnowski ); 739e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 740f8369d7dSTobias Sarnowski } 741f8369d7dSTobias Sarnowski 742f8369d7dSTobias Sarnowski // This is really a failing test - unformatted able to spread across cols 743f8369d7dSTobias Sarnowski // Problem is fixing it would mean a major rewrite of table handling 744f8369d7dSTobias Sarnowski function testTableUnformatted() { 745f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 746f8369d7dSTobias Sarnowski $this->P->addMode('unformatted',new Doku_Parser_Mode_Unformatted()); 747f8369d7dSTobias Sarnowski $this->P->parse(' 748f8369d7dSTobias Sarnowskiabc 749f8369d7dSTobias Sarnowski| <nowiki>Row 0 Col 1</nowiki> | <nowiki>Row 0 Col 2 | Row 0 Col 3</nowiki> | 750f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 751f8369d7dSTobias Sarnowskidef'); 752f8369d7dSTobias Sarnowski $calls = array ( 753f8369d7dSTobias Sarnowski array('document_start',array()), 754f8369d7dSTobias Sarnowski array('p_open',array()), 755f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 756f8369d7dSTobias Sarnowski array('p_close',array()), 757f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 758f8369d7dSTobias Sarnowski array('tablerow_open',array()), 759f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 760f8369d7dSTobias Sarnowski array('cdata',array(' ')), 761f8369d7dSTobias Sarnowski array('unformatted',array('Row 0 Col 1')), 762f8369d7dSTobias Sarnowski array('cdata',array(' ')), 763f8369d7dSTobias Sarnowski array('tablecell_close',array()), 764f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 765f8369d7dSTobias Sarnowski array('cdata',array(' ')), 766f8369d7dSTobias Sarnowski array('unformatted',array('Row 0 Col 2 | Row 0 Col 3')), 767f8369d7dSTobias Sarnowski array('cdata',array(' ')), 768f8369d7dSTobias Sarnowski array('tablecell_close',array()), 769f8369d7dSTobias Sarnowski array('tablecell_open',array(1,null,1)), 770f8369d7dSTobias Sarnowski array('cdata',array('')), 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(155)), 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 ); 790e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 791f8369d7dSTobias Sarnowski } 792f8369d7dSTobias Sarnowski 793f8369d7dSTobias Sarnowski function testTableLinebreak() { 794f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 795f8369d7dSTobias Sarnowski $this->P->addMode('linebreak',new Doku_Parser_Mode_Linebreak()); 796f8369d7dSTobias Sarnowski $this->P->parse(' 797f8369d7dSTobias Sarnowskiabc 798f8369d7dSTobias Sarnowski| Row 0\\\\ Col 1 | Row 0 Col 2 | Row 0 Col 3 | 799f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 800f8369d7dSTobias Sarnowskidef'); 801f8369d7dSTobias Sarnowski $calls = array ( 802f8369d7dSTobias Sarnowski array('document_start',array()), 803f8369d7dSTobias Sarnowski array('p_open',array()), 804f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 805f8369d7dSTobias Sarnowski array('p_close',array()), 806f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 807f8369d7dSTobias Sarnowski array('tablerow_open',array()), 808f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 809f8369d7dSTobias Sarnowski array('cdata',array(' Row 0')), 810f8369d7dSTobias Sarnowski array('linebreak',array()), 811f8369d7dSTobias Sarnowski array('cdata',array('Col 1 ')), 812f8369d7dSTobias Sarnowski array('tablecell_close',array()), 813f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 814f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 2 ')), 815f8369d7dSTobias Sarnowski array('tablecell_close',array()), 816f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 817f8369d7dSTobias Sarnowski array('cdata',array(' Row 0 Col 3 ')), 818f8369d7dSTobias Sarnowski array('tablecell_close',array()), 819f8369d7dSTobias Sarnowski array('tablerow_close',array()), 820f8369d7dSTobias Sarnowski array('tablerow_open',array()), 821f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 822f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 823f8369d7dSTobias Sarnowski array('tablecell_close',array()), 824f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 825f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 826f8369d7dSTobias Sarnowski array('tablecell_close',array()), 827f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 828f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 829f8369d7dSTobias Sarnowski array('tablecell_close',array()), 830f8369d7dSTobias Sarnowski array('tablerow_close',array()), 831f8369d7dSTobias Sarnowski array('table_close',array(123)), 832f8369d7dSTobias Sarnowski array('p_open',array()), 833f8369d7dSTobias Sarnowski array('cdata',array('def')), 834f8369d7dSTobias Sarnowski array('p_close',array()), 835f8369d7dSTobias Sarnowski array('document_end',array()), 836f8369d7dSTobias Sarnowski ); 837f8369d7dSTobias Sarnowski 838e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 839f8369d7dSTobias Sarnowski } 840f8369d7dSTobias Sarnowski 841f8369d7dSTobias Sarnowski // This is really a failing test - footnote able to spread across cols 842f8369d7dSTobias Sarnowski // Problem is fixing it would mean a major rewrite of table handling 843f8369d7dSTobias Sarnowski function testTableFootnote() { 844f8369d7dSTobias Sarnowski $this->P->addMode('table',new Doku_Parser_Mode_Table()); 845f8369d7dSTobias Sarnowski $this->P->addMode('footnote',new Doku_Parser_Mode_Footnote()); 846f8369d7dSTobias Sarnowski $this->P->parse(' 847f8369d7dSTobias Sarnowskiabc 848f8369d7dSTobias Sarnowski| ((Row 0 Col 1)) | ((Row 0 Col 2 | Row 0 Col 3)) | 849f8369d7dSTobias Sarnowski| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 850f8369d7dSTobias Sarnowskidef'); 851f8369d7dSTobias Sarnowski $calls = array ( 852f8369d7dSTobias Sarnowski array('document_start',array()), 853f8369d7dSTobias Sarnowski array('p_open',array()), 854f8369d7dSTobias Sarnowski array('cdata',array("\n\nabc")), 855f8369d7dSTobias Sarnowski array('p_close',array()), 856f8369d7dSTobias Sarnowski array('table_open',array(3, 2, 6)), 857f8369d7dSTobias Sarnowski array('tablerow_open',array()), 858f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 859f8369d7dSTobias Sarnowski array('cdata',array(' ')), 860f8369d7dSTobias Sarnowski array('nest', array ( array ( 861f8369d7dSTobias Sarnowski array('footnote_open',array()), 862f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 1')), 863f8369d7dSTobias Sarnowski array('footnote_close',array()), 864f8369d7dSTobias Sarnowski ))), 865f8369d7dSTobias Sarnowski array('cdata',array(' ')), 866f8369d7dSTobias Sarnowski array('tablecell_close',array()), 867f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 868f8369d7dSTobias Sarnowski array('cdata',array(' ')), 869f8369d7dSTobias Sarnowski array('nest', array ( array ( 870f8369d7dSTobias Sarnowski array('footnote_open',array()), 871f8369d7dSTobias Sarnowski array('cdata',array('Row 0 Col 2 | Row 0 Col 3')), 872f8369d7dSTobias Sarnowski array('footnote_close',array()), 873f8369d7dSTobias Sarnowski ))), 874f8369d7dSTobias Sarnowski array('cdata',array(' ')), 875f8369d7dSTobias Sarnowski array('tablecell_close',array()), 876f8369d7dSTobias Sarnowski array('tablecell_open',array(1,null,1)), 877f8369d7dSTobias Sarnowski array('cdata',array('')), 878f8369d7dSTobias Sarnowski array('tablecell_close',array()), 879f8369d7dSTobias Sarnowski array('tablerow_close',array()), 880f8369d7dSTobias Sarnowski array('tablerow_open',array()), 881f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 882f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 1 ')), 883f8369d7dSTobias Sarnowski array('tablecell_close',array()), 884f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 885f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 2 ')), 886f8369d7dSTobias Sarnowski array('tablecell_close',array()), 887f8369d7dSTobias Sarnowski array('tablecell_open',array(1,'left',1)), 888f8369d7dSTobias Sarnowski array('cdata',array(' Row 1 Col 3 ')), 889f8369d7dSTobias Sarnowski array('tablecell_close',array()), 890f8369d7dSTobias Sarnowski array('tablerow_close',array()), 891f8369d7dSTobias Sarnowski array('table_close',array(129)), 892f8369d7dSTobias Sarnowski array('p_open',array()), 893f8369d7dSTobias Sarnowski array('cdata',array('def')), 894f8369d7dSTobias Sarnowski array('p_close',array()), 895f8369d7dSTobias Sarnowski array('document_end',array()), 896f8369d7dSTobias Sarnowski ); 897e0328e30SChristopher Smith $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls)); 898f8369d7dSTobias Sarnowski } 8995a41afe6SChristopher Smith 9005a41afe6SChristopher Smith function testTable_FS1833() { 9015a41afe6SChristopher Smith $syntax = " \n| Row 0 Col 1 |\n"; 9025a41afe6SChristopher Smith $this->P->addMode('table',new Doku_Parser_Mode_Table()); 9035a41afe6SChristopher Smith $this->P->parse($syntax); 9045a41afe6SChristopher Smith $calls = array ( 9055a41afe6SChristopher Smith array('document_start',array()), 9065a41afe6SChristopher Smith array('table_open',array(1, 1, 2)), 9075a41afe6SChristopher Smith array('tablerow_open',array()), 9085a41afe6SChristopher Smith array('tablecell_open',array(1,'left',1)), 9095a41afe6SChristopher Smith array('cdata',array(' Row 0 Col 1 ')), 9105a41afe6SChristopher Smith array('tablecell_close',array()), 9115a41afe6SChristopher Smith array('tablerow_close',array()), 9125a41afe6SChristopher Smith array('table_close',array(strlen($syntax))), 9135a41afe6SChristopher Smith array('document_end',array()), 9145a41afe6SChristopher Smith ); 9155a41afe6SChristopher Smith $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 9165a41afe6SChristopher Smith } 9175a41afe6SChristopher Smith 918f8369d7dSTobias Sarnowski} 919