1<?php 2require_once 'parser.inc.php'; 3 4class TestOfDoku_Parser_Table extends TestOfDoku_Parser { 5 6 function testTable() { 7 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 8 $this->P->parse(' 9abc 10| Row 0 Col 1 | Row 0 Col 2 | Row 0 Col 3 | 11| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 12def'); 13 $calls = array ( 14 array('document_start',array()), 15 array('p_open',array()), 16 array('cdata',array("\n\nabc")), 17 array('p_close',array()), 18 array('table_open',array(3, 2, 6)), 19 array('tablerow_open',array()), 20 array('tablecell_open',array(1,'left',1)), 21 array('cdata',array(' Row 0 Col 1 ')), 22 array('tablecell_close',array()), 23 array('tablecell_open',array(1,'left',1)), 24 array('cdata',array(' Row 0 Col 2 ')), 25 array('tablecell_close',array()), 26 array('tablecell_open',array(1,'left',1)), 27 array('cdata',array(' Row 0 Col 3 ')), 28 array('tablecell_close',array()), 29 array('tablerow_close',array()), 30 array('tablerow_open',array()), 31 array('tablecell_open',array(1,'left',1)), 32 array('cdata',array(' Row 1 Col 1 ')), 33 array('tablecell_close',array()), 34 array('tablecell_open',array(1,'left',1)), 35 array('cdata',array(' Row 1 Col 2 ')), 36 array('tablecell_close',array()), 37 array('tablecell_open',array(1,'left',1)), 38 array('cdata',array(' Row 1 Col 3 ')), 39 array('tablecell_close',array()), 40 array('tablerow_close',array()), 41 array('table_close',array(121)), 42 array('p_open',array()), 43 array('cdata',array('def')), 44 array('p_close',array()), 45 array('document_end',array()), 46 ); 47 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 48 } 49 50 function testTableWinEOL() { 51 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 52 $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"); 53 $calls = array ( 54 array('document_start',array()), 55 array('p_open',array()), 56 array('cdata',array("\n\nabc")), 57 array('p_close',array()), 58 array('table_open',array(3, 2, 6)), 59 array('tablerow_open',array()), 60 array('tablecell_open',array(1,'left',1)), 61 array('cdata',array(' Row 0 Col 1 ')), 62 array('tablecell_close',array()), 63 array('tablecell_open',array(1,'left',1)), 64 array('cdata',array(' Row 0 Col 2 ')), 65 array('tablecell_close',array()), 66 array('tablecell_open',array(1,'left',1)), 67 array('cdata',array(' Row 0 Col 3 ')), 68 array('tablecell_close',array()), 69 array('tablerow_close',array()), 70 array('tablerow_open',array()), 71 array('tablecell_open',array(1,'left',1)), 72 array('cdata',array(' Row 1 Col 1 ')), 73 array('tablecell_close',array()), 74 array('tablecell_open',array(1,'left',1)), 75 array('cdata',array(' Row 1 Col 2 ')), 76 array('tablecell_close',array()), 77 array('tablecell_open',array(1,'left',1)), 78 array('cdata',array(' Row 1 Col 3 ')), 79 array('tablecell_close',array()), 80 array('tablerow_close',array()), 81 array('table_close',array(121)), 82 array('p_open',array()), 83 array('cdata',array('def')), 84 array('p_close',array()), 85 array('document_end',array()), 86 ); 87 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 88 } 89 90 function testEmptyTable() { 91 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 92 $this->P->parse(' 93abc 94| 95def'); 96 97 $calls = array ( 98 array('document_start',array()), 99 array('p_open',array()), 100 array('cdata',array("\n\nabc")), 101 array('p_close',array()), 102 array('table_open',array(0, 1, 6)), 103 array('tablerow_open',array()), 104 array('tablerow_close',array()), 105 array('table_close',array(7)), 106 array('p_open',array()), 107 array('cdata',array('def')), 108 array('p_close',array()), 109 array('document_end',array()), 110 ); 111 112 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 113 } 114 115 function testTableHeaders() { 116 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 117 $this->P->parse(' 118abc 119^ X | Y ^ Z | 120def'); 121 122 $calls = array ( 123 array('document_start',array()), 124 array('p_open',array()), 125 array('cdata',array("\n\nabc")), 126 array('p_close',array()), 127 array('table_open',array(3, 1, 6)), 128 array('tablethead_open',array()), 129 array('tablerow_open',array()), 130 array('tableheader_open',array(1,NULL,1)), 131 array('cdata',array(' X ')), 132 array('tableheader_close',array()), 133 array('tablecell_open',array(1,NULL,1)), 134 array('cdata',array(' Y ')), 135 array('tablecell_close',array()), 136 array('tableheader_open',array(1,NULL,1)), 137 array('cdata',array(' Z ')), 138 array('tableheader_close',array()), 139 array('tablerow_close',array()), 140 array('tablethead_close',array()), 141 array('table_close',array(19)), 142 array('p_open',array()), 143 array('cdata',array('def')), 144 array('p_close',array()), 145 array('document_end',array()), 146 ); 147 148 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 149 150 } 151 152 function testTableHeadersMultilines() { 153 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 154 $this->P->parse(' 155abc 156^ X | Y ^ Z | 157| A | B | C | 158def'); 159 160 $calls = array ( 161 array('document_start',array()), 162 array('p_open',array()), 163 array('cdata',array("\n\nabc")), 164 array('p_close',array()), 165 array('table_open',array(3, 2, 6)), 166 array('tablethead_open',array()), 167 array('tablerow_open',array()), 168 array('tableheader_open',array(1,NULL,1)), 169 array('cdata',array(' X ')), 170 array('tableheader_close',array()), 171 array('tablecell_open',array(1,NULL,1)), 172 array('cdata',array(' Y ')), 173 array('tablecell_close',array()), 174 array('tableheader_open',array(1,NULL,1)), 175 array('cdata',array(' Z ')), 176 array('tableheader_close',array()), 177 array('tablerow_close',array()), 178 array('tablethead_close',array()), 179 array('tablerow_open',array()), 180 array('tablecell_open',array(1,NULL,1)), 181 array('cdata',array(' A ')), 182 array('tablecell_close',array()), 183 array('tablecell_open',array(1,NULL,1)), 184 array('cdata',array(' B ')), 185 array('tablecell_close',array()), 186 array('tablecell_open',array(1,NULL,1)), 187 array('cdata',array(' C ')), 188 array('tablecell_close',array()), 189 array('tablerow_close',array()), 190 array('table_close',array(33)), 191 array('p_open',array()), 192 array('cdata',array('def')), 193 array('p_close',array()), 194 array('document_end',array()), 195 ); 196 197 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 198 199 } 200 201 function testCellAlignment() { 202 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 203 $this->P->parse(' 204abc 205| X | Y ^ Z | 206def'); 207 208 $calls = array ( 209 array('document_start',array()), 210 array('p_open',array()), 211 array('cdata',array("\n\nabc")), 212 array('p_close',array()), 213 array('table_open',array(3, 1, 6)), 214 array('tablerow_open',array()), 215 array('tablecell_open',array(1,'right',1)), 216 array('cdata',array(' X ')), 217 array('tablecell_close',array()), 218 array('tablecell_open',array(1,'left',1)), 219 array('cdata',array(' Y ')), 220 array('tablecell_close',array()), 221 array('tableheader_open',array(1,'center',1)), 222 array('cdata',array(' Z ')), 223 array('tableheader_close',array()), 224 array('tablerow_close',array()), 225 array('table_close',array(23)), 226 array('p_open',array()), 227 array('cdata',array('def')), 228 array('p_close',array()), 229 array('document_end',array()), 230 ); 231 232 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 233 } 234 235 function testCellSpan() { 236 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 237 $this->P->parse(' 238abc 239| d || e | 240| f ^ ^| 241|||| 242def'); 243 244 $calls = array ( 245 array('document_start',array()), 246 array('p_open',array()), 247 array('cdata',array("\n\nabc")), 248 array('p_close',array()), 249 array('table_open',array(3, 3, 6)), 250 array('tablerow_open',array()), 251 array('tablecell_open',array(2,'right',1)), 252 array('cdata',array(' d ')), 253 array('tablecell_close',array()), 254 array('tablecell_open',array(1,NULL,1)), 255 array('cdata',array(' e ')), 256 array('tablecell_close',array()), 257 array('tablerow_close',array()), 258 array('tablerow_open',array()), 259 array('tablecell_open',array(1,NULL,1)), 260 array('cdata',array(' f ')), 261 array('tablecell_close',array()), 262 array('tableheader_open',array(2,NULL,1)), 263 array('cdata',array(' ')), 264 array('tableheader_close',array()), 265 array('tablerow_close',array()), 266 array('tablerow_open',array()), 267 array('tablerow_close',array()), 268 array('table_close',array(31)), 269 array('p_open',array()), 270 array('cdata',array('def')), 271 array('p_close',array()), 272 array('document_end',array()), 273 ); 274 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 275 } 276 277 function testCellRowSpan() { 278 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 279 $this->P->parse(' 280abc 281| a | c:::|| 282|:::^ d | e| 283|b ^ ::: |:::f| 284def'); 285 286 $calls = array ( 287 array('document_start',array()), 288 array('p_open',array()), 289 array('cdata',array("\n\nabc")), 290 array('p_close',array()), 291 array('table_open',array(3, 3, 6)), 292 array('tablerow_open',array()), 293 array('tablecell_open',array(1,NULL,2)), 294 array('cdata',array(' a ')), 295 array('tablecell_close',array()), 296 array('tablecell_open',array(2,'right',1)), 297 array('cdata',array(' c:::')), 298 array('tablecell_close',array()), 299 array('tablerow_close',array()), 300 array('tablerow_open',array()), 301 array('tableheader_open',array(1,'left',2)), 302 array('cdata',array(' d ')), 303 array('tableheader_close',array()), 304 array('tablecell_open',array(1,NULL,1)), 305 array('cdata',array(' e')), 306 array('tablecell_close',array()), 307 array('tablerow_close',array()), 308 array('tablerow_open',array()), 309 array('tablecell_open',array(1,'left',1)), 310 array('cdata',array('b ')), 311 array('tablecell_close',array()), 312 array('tablecell_open',array(1,NULL,1)), 313 array('cdata',array(':::f')), 314 array('tablecell_close',array()), 315 array('tablerow_close',array()), 316 array('table_close',array(51)), 317 array('p_open',array()), 318 array('cdata',array('def')), 319 array('p_close',array()), 320 array('document_end',array()), 321 ); 322 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 323 } 324 325 function testCellRowSpanFirstRow() { 326 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 327 $this->P->parse(' 328abc 329|::: ^ d:::^:::| ::: | 330| b ^ e | | ::: | 331|c ^ ::: | |:::| 332def'); 333 334 $calls = array ( 335 array('document_start',array()), 336 array('p_open',array()), 337 array('cdata',array("\n\nabc")), 338 array('p_close',array()), 339 array('table_open',array(4, 3, 6)), 340 array('tablerow_open',array()), 341 array('tablecell_open',array(1,NULL,1)), 342 array('cdata',array('')), 343 array('tablecell_close',array()), 344 array('tableheader_open',array(1,'right',1)), 345 array('cdata',array(' d:::')), 346 array('tableheader_close',array()), 347 array('tableheader_open',array(1,NULL,1)), 348 array('cdata',array('')), 349 array('tableheader_close',array()), 350 array('tablecell_open',array(1,NULL,3)), 351 array('cdata',array('')), 352 array('tablecell_close',array()), 353 array('tablerow_close',array()), 354 array('tablerow_open',array()), 355 array('tablecell_open',array(1,NULL,1)), 356 array('cdata',array(' b ')), 357 array('tablecell_close',array()), 358 array('tableheader_open',array(1,'left',2)), 359 array('cdata',array(' e ')), 360 array('tableheader_close',array()), 361 array('tablecell_open',array(1,NULL,1)), 362 array('cdata',array(' ')), 363 array('tablecell_close',array()), 364 array('tablerow_close',array()), 365 array('tablerow_open',array()), 366 array('tablecell_open',array(1,'left',1)), 367 array('cdata',array('c ')), 368 array('tablecell_close',array()), 369 array('tablecell_open',array(1,NULL,1)), 370 array('cdata',array(' ')), 371 array('tablecell_close',array()), 372 array('tablerow_close',array()), 373 374 array('table_close',array(69)), 375 array('p_open',array()), 376 array('cdata',array('def')), 377 array('p_close',array()), 378 array('document_end',array()), 379 ); 380 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 381 } 382 383 function testCellAlignmentFormatting() { 384 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 385 $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 386 $this->P->parse(' 387abc 388| **X** | Y ^ Z | 389def'); 390 391 $calls = array ( 392 array('document_start',array()), 393 array('p_open',array()), 394 array('cdata',array("\n\nabc")), 395 array('p_close',array()), 396 array('table_open',array(3, 1, 6)), 397 array('tablerow_open',array()), 398 array('tablecell_open',array(1,'right',1)), 399 array('cdata',array(' ')), 400 array('strong_open',array()), 401 array('cdata',array('X')), 402 array('strong_close',array()), 403 array('cdata',array(' ')), 404 array('tablecell_close',array()), 405 array('tablecell_open',array(1,'left',1)), 406 array('cdata',array(' Y ')), 407 array('tablecell_close',array()), 408 array('tableheader_open',array(1,'center',1)), 409 array('cdata',array(' Z ')), 410 array('tableheader_close',array()), 411 array('tablerow_close',array()), 412 array('table_close',array(27)), 413 array('p_open',array()), 414 array('cdata',array('def')), 415 array('p_close',array()), 416 array('document_end',array()), 417 ); 418 419 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 420 421 } 422 423 function testTableEol() { 424 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 425 $this->P->addMode('eol',new Doku_Parser_Mode_Eol()); 426 $this->P->parse(' 427abc 428| Row 0 Col 1 | Row 0 Col 2 | Row 0 Col 3 | 429| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 430def'); 431 $calls = array ( 432 array('document_start',array()), 433 array('p_open',array()), 434 array('cdata',array("abc")), 435 array('p_close',array()), 436 array('table_open',array(3, 2, 6)), 437 array('tablerow_open',array()), 438 array('tablecell_open',array(1,'left',1)), 439 array('cdata',array(' Row 0 Col 1 ')), 440 array('tablecell_close',array()), 441 array('tablecell_open',array(1,'left',1)), 442 array('cdata',array(' Row 0 Col 2 ')), 443 array('tablecell_close',array()), 444 array('tablecell_open',array(1,'left',1)), 445 array('cdata',array(' Row 0 Col 3 ')), 446 array('tablecell_close',array()), 447 array('tablerow_close',array()), 448 array('tablerow_open',array()), 449 array('tablecell_open',array(1,'left',1)), 450 array('cdata',array(' Row 1 Col 1 ')), 451 array('tablecell_close',array()), 452 array('tablecell_open',array(1,'left',1)), 453 array('cdata',array(' Row 1 Col 2 ')), 454 array('tablecell_close',array()), 455 array('tablecell_open',array(1,'left',1)), 456 array('cdata',array(' Row 1 Col 3 ')), 457 array('tablecell_close',array()), 458 array('tablerow_close',array()), 459 array('table_close',array(121)), 460 array('p_open',array()), 461 array('cdata',array('def')), 462 array('p_close',array()), 463 array('document_end',array()), 464 ); 465 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 466 } 467 468 // This is really a failing test - formatting able to spread across cols 469 // Problem is fixing it would mean a major rewrite of table handling 470 function testTableStrong() { 471 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 472 $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong')); 473 $this->P->parse(' 474abc 475| **Row 0 Col 1** | **Row 0 Col 2 | Row 0 Col 3** | 476| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 477def'); 478 $calls = array ( 479 array('document_start',array()), 480 array('p_open',array()), 481 array('cdata',array("\n\nabc")), 482 array('p_close',array()), 483 array('table_open',array(3, 2, 6)), 484 array('tablerow_open',array()), 485 array('tablecell_open',array(1,'left',1)), 486 array('cdata',array(' ')), 487 array('strong_open',array()), 488 array('cdata',array('Row 0 Col 1')), 489 array('strong_close',array()), 490 array('cdata',array(' ')), 491 array('tablecell_close',array()), 492 array('tablecell_open',array(1,'left',1)), 493 array('cdata',array(' ')), 494 array('strong_open',array()), 495 array('cdata',array('Row 0 Col 2 | Row 0 Col 3')), 496 array('strong_close',array()), 497 array('cdata',array(' ')), 498 array('tablecell_close',array()), 499 array('tablecell_open',array(1,null,1)), 500 array('cdata',array('')), 501 array('tablecell_close',array()), 502 array('tablerow_close',array()), 503 array('tablerow_open',array()), 504 array('tablecell_open',array(1,'left',1)), 505 array('cdata',array(' Row 1 Col 1 ')), 506 array('tablecell_close',array()), 507 array('tablecell_open',array(1,'left',1)), 508 array('cdata',array(' Row 1 Col 2 ')), 509 array('tablecell_close',array()), 510 array('tablecell_open',array(1,'left',1)), 511 array('cdata',array(' Row 1 Col 3 ')), 512 array('tablecell_close',array()), 513 array('tablerow_close',array()), 514 array('table_close',array(129)), 515 array('p_open',array()), 516 array('cdata',array('def')), 517 array('p_close',array()), 518 array('document_end',array()), 519 ); 520 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 521 } 522 523 // This is really a failing test - unformatted able to spread across cols 524 // Problem is fixing it would mean a major rewrite of table handling 525 function testTableUnformatted() { 526 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 527 $this->P->addMode('unformatted',new Doku_Parser_Mode_Unformatted()); 528 $this->P->parse(' 529abc 530| <nowiki>Row 0 Col 1</nowiki> | <nowiki>Row 0 Col 2 | Row 0 Col 3</nowiki> | 531| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 532def'); 533 $calls = array ( 534 array('document_start',array()), 535 array('p_open',array()), 536 array('cdata',array("\n\nabc")), 537 array('p_close',array()), 538 array('table_open',array(3, 2, 6)), 539 array('tablerow_open',array()), 540 array('tablecell_open',array(1,'left',1)), 541 array('cdata',array(' ')), 542 array('unformatted',array('Row 0 Col 1')), 543 array('cdata',array(' ')), 544 array('tablecell_close',array()), 545 array('tablecell_open',array(1,'left',1)), 546 array('cdata',array(' ')), 547 array('unformatted',array('Row 0 Col 2 | Row 0 Col 3')), 548 array('cdata',array(' ')), 549 array('tablecell_close',array()), 550 array('tablecell_open',array(1,null,1)), 551 array('cdata',array('')), 552 array('tablecell_close',array()), 553 array('tablerow_close',array()), 554 array('tablerow_open',array()), 555 array('tablecell_open',array(1,'left',1)), 556 array('cdata',array(' Row 1 Col 1 ')), 557 array('tablecell_close',array()), 558 array('tablecell_open',array(1,'left',1)), 559 array('cdata',array(' Row 1 Col 2 ')), 560 array('tablecell_close',array()), 561 array('tablecell_open',array(1,'left',1)), 562 array('cdata',array(' Row 1 Col 3 ')), 563 array('tablecell_close',array()), 564 array('tablerow_close',array()), 565 array('table_close',array(155)), 566 array('p_open',array()), 567 array('cdata',array('def')), 568 array('p_close',array()), 569 array('document_end',array()), 570 ); 571 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 572 } 573 574 function testTableLinebreak() { 575 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 576 $this->P->addMode('linebreak',new Doku_Parser_Mode_Linebreak()); 577 $this->P->parse(' 578abc 579| Row 0\\\\ Col 1 | Row 0 Col 2 | Row 0 Col 3 | 580| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 581def'); 582 $calls = array ( 583 array('document_start',array()), 584 array('p_open',array()), 585 array('cdata',array("\n\nabc")), 586 array('p_close',array()), 587 array('table_open',array(3, 2, 6)), 588 array('tablerow_open',array()), 589 array('tablecell_open',array(1,'left',1)), 590 array('cdata',array(' Row 0')), 591 array('linebreak',array()), 592 array('cdata',array('Col 1 ')), 593 array('tablecell_close',array()), 594 array('tablecell_open',array(1,'left',1)), 595 array('cdata',array(' Row 0 Col 2 ')), 596 array('tablecell_close',array()), 597 array('tablecell_open',array(1,'left',1)), 598 array('cdata',array(' Row 0 Col 3 ')), 599 array('tablecell_close',array()), 600 array('tablerow_close',array()), 601 array('tablerow_open',array()), 602 array('tablecell_open',array(1,'left',1)), 603 array('cdata',array(' Row 1 Col 1 ')), 604 array('tablecell_close',array()), 605 array('tablecell_open',array(1,'left',1)), 606 array('cdata',array(' Row 1 Col 2 ')), 607 array('tablecell_close',array()), 608 array('tablecell_open',array(1,'left',1)), 609 array('cdata',array(' Row 1 Col 3 ')), 610 array('tablecell_close',array()), 611 array('tablerow_close',array()), 612 array('table_close',array(123)), 613 array('p_open',array()), 614 array('cdata',array('def')), 615 array('p_close',array()), 616 array('document_end',array()), 617 ); 618 619 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 620 } 621 622 // This is really a failing test - footnote able to spread across cols 623 // Problem is fixing it would mean a major rewrite of table handling 624 function testTableFootnote() { 625 $this->P->addMode('table',new Doku_Parser_Mode_Table()); 626 $this->P->addMode('footnote',new Doku_Parser_Mode_Footnote()); 627 $this->P->parse(' 628abc 629| ((Row 0 Col 1)) | ((Row 0 Col 2 | Row 0 Col 3)) | 630| Row 1 Col 1 | Row 1 Col 2 | Row 1 Col 3 | 631def'); 632 $calls = array ( 633 array('document_start',array()), 634 array('p_open',array()), 635 array('cdata',array("\n\nabc")), 636 array('p_close',array()), 637 array('table_open',array(3, 2, 6)), 638 array('tablerow_open',array()), 639 array('tablecell_open',array(1,'left',1)), 640 array('cdata',array(' ')), 641 array('nest', array ( array ( 642 array('footnote_open',array()), 643 array('cdata',array('Row 0 Col 1')), 644 array('footnote_close',array()), 645 ))), 646 array('cdata',array(' ')), 647 array('tablecell_close',array()), 648 array('tablecell_open',array(1,'left',1)), 649 array('cdata',array(' ')), 650 array('nest', array ( array ( 651 array('footnote_open',array()), 652 array('cdata',array('Row 0 Col 2 | Row 0 Col 3')), 653 array('footnote_close',array()), 654 ))), 655 array('cdata',array(' ')), 656 array('tablecell_close',array()), 657 array('tablecell_open',array(1,null,1)), 658 array('cdata',array('')), 659 array('tablecell_close',array()), 660 array('tablerow_close',array()), 661 array('tablerow_open',array()), 662 array('tablecell_open',array(1,'left',1)), 663 array('cdata',array(' Row 1 Col 1 ')), 664 array('tablecell_close',array()), 665 array('tablecell_open',array(1,'left',1)), 666 array('cdata',array(' Row 1 Col 2 ')), 667 array('tablecell_close',array()), 668 array('tablecell_open',array(1,'left',1)), 669 array('cdata',array(' Row 1 Col 3 ')), 670 array('tablecell_close',array()), 671 array('tablerow_close',array()), 672 array('table_close',array(129)), 673 array('p_open',array()), 674 array('cdata',array('def')), 675 array('p_close',array()), 676 array('document_end',array()), 677 ); 678 $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); 679 } 680} 681 682