1{ 2 "tests": [ 3 { 4 "fragmentContext": null, 5 "description": "<foo bar=qux/>", 6 "input": "<foo bar=qux/>", 7 "output": [ 8 [ 9 "StartTag", 10 "foo", 11 { 12 "bar": "qux/" 13 } 14 ] 15 ] 16 }, 17 { 18 "fragmentContext": null, 19 "description": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>", 20 "input": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>", 21 "output": [ 22 [ 23 "StartTag", 24 "p", 25 { 26 "id": "status" 27 } 28 ], 29 [ 30 "StartTag", 31 "noscript", 32 {} 33 ], 34 [ 35 "Character", 36 "<strong>A</strong>" 37 ], 38 [ 39 "EndTag", 40 "noscript" 41 ], 42 [ 43 "StartTag", 44 "span", 45 {} 46 ], 47 [ 48 "Character", 49 "B" 50 ], 51 [ 52 "EndTag", 53 "span" 54 ], 55 [ 56 "EndTag", 57 "p" 58 ] 59 ] 60 }, 61 { 62 "fragmentContext": null, 63 "description": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>", 64 "input": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>", 65 "output": [ 66 [ 67 "StartTag", 68 "p", 69 { 70 "id": "status" 71 } 72 ], 73 [ 74 "StartTag", 75 "noscript", 76 {} 77 ], 78 [ 79 "Character", 80 "<strong>A</strong>" 81 ], 82 [ 83 "EndTag", 84 "noscript" 85 ], 86 [ 87 "StartTag", 88 "span", 89 {} 90 ], 91 [ 92 "Character", 93 "B" 94 ], 95 [ 96 "EndTag", 97 "span" 98 ], 99 [ 100 "EndTag", 101 "p" 102 ] 103 ] 104 }, 105 { 106 "fragmentContext": null, 107 "description": "<div><sarcasm><div></div></sarcasm></div>", 108 "input": "<div><sarcasm><div></div></sarcasm></div>", 109 "output": [ 110 [ 111 "StartTag", 112 "div", 113 {} 114 ], 115 [ 116 "StartTag", 117 "sarcasm", 118 {} 119 ], 120 [ 121 "StartTag", 122 "div", 123 {} 124 ], 125 [ 126 "EndTag", 127 "div" 128 ], 129 [ 130 "EndTag", 131 "sarcasm" 132 ], 133 [ 134 "EndTag", 135 "div" 136 ] 137 ] 138 }, 139 { 140 "fragmentContext": null, 141 "description": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>", 142 "input": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>", 143 "output": [ 144 [ 145 "StartTag", 146 "html", 147 {} 148 ], 149 [ 150 "StartTag", 151 "body", 152 {} 153 ] 154 ] 155 }, 156 { 157 "fragmentContext": null, 158 "description": "<table><td></tbody>A", 159 "input": "<table><td></tbody>A", 160 "output": [ 161 [ 162 "StartTag", 163 "table", 164 {} 165 ], 166 [ 167 "StartTag", 168 "td", 169 {} 170 ], 171 [ 172 "EndTag", 173 "tbody" 174 ], 175 [ 176 "Character", 177 "A" 178 ] 179 ] 180 }, 181 { 182 "fragmentContext": null, 183 "description": "<table><td></thead>A", 184 "input": "<table><td></thead>A", 185 "output": [ 186 [ 187 "StartTag", 188 "table", 189 {} 190 ], 191 [ 192 "StartTag", 193 "td", 194 {} 195 ], 196 [ 197 "EndTag", 198 "thead" 199 ], 200 [ 201 "Character", 202 "A" 203 ] 204 ] 205 }, 206 { 207 "fragmentContext": null, 208 "description": "<table><td></tfoot>A", 209 "input": "<table><td></tfoot>A", 210 "output": [ 211 [ 212 "StartTag", 213 "table", 214 {} 215 ], 216 [ 217 "StartTag", 218 "td", 219 {} 220 ], 221 [ 222 "EndTag", 223 "tfoot" 224 ], 225 [ 226 "Character", 227 "A" 228 ] 229 ] 230 }, 231 { 232 "fragmentContext": null, 233 "description": "<table><thead><td></tbody>A", 234 "input": "<table><thead><td></tbody>A", 235 "output": [ 236 [ 237 "StartTag", 238 "table", 239 {} 240 ], 241 [ 242 "StartTag", 243 "thead", 244 {} 245 ], 246 [ 247 "StartTag", 248 "td", 249 {} 250 ], 251 [ 252 "EndTag", 253 "tbody" 254 ], 255 [ 256 "Character", 257 "A" 258 ] 259 ] 260 }, 261 { 262 "fragmentContext": null, 263 "description": "<legend>test</legend>", 264 "input": "<legend>test</legend>", 265 "output": [ 266 [ 267 "StartTag", 268 "legend", 269 {} 270 ], 271 [ 272 "Character", 273 "test" 274 ], 275 [ 276 "EndTag", 277 "legend" 278 ] 279 ] 280 }, 281 { 282 "fragmentContext": null, 283 "description": "<table><input>", 284 "input": "<table><input>", 285 "output": [ 286 [ 287 "StartTag", 288 "table", 289 {} 290 ], 291 [ 292 "StartTag", 293 "input", 294 {} 295 ] 296 ] 297 }, 298 { 299 "fragmentContext": null, 300 "description": "<b><em><foo><foo><aside></b>", 301 "input": "<b><em><foo><foo><aside></b>", 302 "output": [ 303 [ 304 "StartTag", 305 "b", 306 {} 307 ], 308 [ 309 "StartTag", 310 "em", 311 {} 312 ], 313 [ 314 "StartTag", 315 "foo", 316 {} 317 ], 318 [ 319 "StartTag", 320 "foo", 321 {} 322 ], 323 [ 324 "StartTag", 325 "aside", 326 {} 327 ], 328 [ 329 "EndTag", 330 "b" 331 ] 332 ] 333 }, 334 { 335 "fragmentContext": null, 336 "description": "<b><em><foo><foo><aside></b></em>", 337 "input": "<b><em><foo><foo><aside></b></em>", 338 "output": [ 339 [ 340 "StartTag", 341 "b", 342 {} 343 ], 344 [ 345 "StartTag", 346 "em", 347 {} 348 ], 349 [ 350 "StartTag", 351 "foo", 352 {} 353 ], 354 [ 355 "StartTag", 356 "foo", 357 {} 358 ], 359 [ 360 "StartTag", 361 "aside", 362 {} 363 ], 364 [ 365 "EndTag", 366 "b" 367 ], 368 [ 369 "EndTag", 370 "em" 371 ] 372 ] 373 }, 374 { 375 "fragmentContext": null, 376 "description": "<b><em><foo><foo><foo><aside></b>", 377 "input": "<b><em><foo><foo><foo><aside></b>", 378 "output": [ 379 [ 380 "StartTag", 381 "b", 382 {} 383 ], 384 [ 385 "StartTag", 386 "em", 387 {} 388 ], 389 [ 390 "StartTag", 391 "foo", 392 {} 393 ], 394 [ 395 "StartTag", 396 "foo", 397 {} 398 ], 399 [ 400 "StartTag", 401 "foo", 402 {} 403 ], 404 [ 405 "StartTag", 406 "aside", 407 {} 408 ], 409 [ 410 "EndTag", 411 "b" 412 ] 413 ] 414 }, 415 { 416 "fragmentContext": null, 417 "description": "<b><em><foo><foo><foo><aside></b></em>", 418 "input": "<b><em><foo><foo><foo><aside></b></em>", 419 "output": [ 420 [ 421 "StartTag", 422 "b", 423 {} 424 ], 425 [ 426 "StartTag", 427 "em", 428 {} 429 ], 430 [ 431 "StartTag", 432 "foo", 433 {} 434 ], 435 [ 436 "StartTag", 437 "foo", 438 {} 439 ], 440 [ 441 "StartTag", 442 "foo", 443 {} 444 ], 445 [ 446 "StartTag", 447 "aside", 448 {} 449 ], 450 [ 451 "EndTag", 452 "b" 453 ], 454 [ 455 "EndTag", 456 "em" 457 ] 458 ] 459 }, 460 { 461 "fragmentContext": "div", 462 "description": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>", 463 "input": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>", 464 "output": [ 465 [ 466 "StartTag", 467 "b", 468 {} 469 ], 470 [ 471 "StartTag", 472 "em", 473 {} 474 ], 475 [ 476 "StartTag", 477 "foo", 478 {} 479 ], 480 [ 481 "StartTag", 482 "foo", 483 {} 484 ], 485 [ 486 "StartTag", 487 "foo", 488 {} 489 ], 490 [ 491 "StartTag", 492 "foo", 493 {} 494 ], 495 [ 496 "StartTag", 497 "foo", 498 {} 499 ], 500 [ 501 "StartTag", 502 "foo", 503 {} 504 ], 505 [ 506 "StartTag", 507 "foo", 508 {} 509 ], 510 [ 511 "StartTag", 512 "foo", 513 {} 514 ], 515 [ 516 "StartTag", 517 "foo", 518 {} 519 ], 520 [ 521 "StartTag", 522 "foo", 523 {} 524 ], 525 [ 526 "StartTag", 527 "aside", 528 {} 529 ], 530 [ 531 "EndTag", 532 "b" 533 ], 534 [ 535 "EndTag", 536 "em" 537 ] 538 ] 539 }, 540 { 541 "fragmentContext": "div", 542 "description": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>", 543 "input": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>", 544 "output": [ 545 [ 546 "StartTag", 547 "b", 548 {} 549 ], 550 [ 551 "StartTag", 552 "em", 553 {} 554 ], 555 [ 556 "StartTag", 557 "foo", 558 {} 559 ], 560 [ 561 "StartTag", 562 "foob", 563 {} 564 ], 565 [ 566 "StartTag", 567 "foob", 568 {} 569 ], 570 [ 571 "StartTag", 572 "foob", 573 {} 574 ], 575 [ 576 "StartTag", 577 "foob", 578 {} 579 ], 580 [ 581 "StartTag", 582 "fooc", 583 {} 584 ], 585 [ 586 "StartTag", 587 "fooc", 588 {} 589 ], 590 [ 591 "StartTag", 592 "fooc", 593 {} 594 ], 595 [ 596 "StartTag", 597 "fooc", 598 {} 599 ], 600 [ 601 "StartTag", 602 "food", 603 {} 604 ], 605 [ 606 "StartTag", 607 "aside", 608 {} 609 ], 610 [ 611 "EndTag", 612 "b" 613 ], 614 [ 615 "EndTag", 616 "em" 617 ] 618 ] 619 }, 620 { 621 "fragmentContext": "select", 622 "description": "<option><XH<optgroup></optgroup>", 623 "input": "<option><XH<optgroup></optgroup>", 624 "output": [ 625 [ 626 "StartTag", 627 "option", 628 {} 629 ], 630 [ 631 "StartTag", 632 "xh<optgroup", 633 {} 634 ], 635 [ 636 "EndTag", 637 "optgroup" 638 ] 639 ] 640 }, 641 { 642 "fragmentContext": null, 643 "description": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>", 644 "input": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>", 645 "output": [ 646 [ 647 "StartTag", 648 "svg", 649 {} 650 ], 651 [ 652 "StartTag", 653 "foreignObject", 654 {} 655 ], 656 [ 657 "StartTag", 658 "div", 659 {} 660 ], 661 [ 662 "Character", 663 "foo" 664 ], 665 [ 666 "EndTag", 667 "div" 668 ], 669 [ 670 "StartTag", 671 "plaintext", 672 {} 673 ], 674 [ 675 "Character", 676 "</foreignObject></svg><div>bar</div>" 677 ] 678 ] 679 }, 680 { 681 "fragmentContext": null, 682 "description": "<svg><foreignObject></foreignObject><title></svg>foo", 683 "input": "<svg><foreignObject></foreignObject><title></svg>foo", 684 "output": [ 685 [ 686 "StartTag", 687 "svg", 688 {} 689 ], 690 [ 691 "StartTag", 692 "foreignObject", 693 {} 694 ], 695 [ 696 "EndTag", 697 "foreignobject" 698 ], 699 [ 700 "StartTag", 701 "title", 702 {} 703 ], 704 [ 705 "EndTag", 706 "svg" 707 ], 708 [ 709 "Character", 710 "foo" 711 ] 712 ] 713 }, 714 { 715 "fragmentContext": null, 716 "description": "</foreignObject><plaintext><div>foo</div>", 717 "input": "</foreignObject><plaintext><div>foo</div>", 718 "output": [ 719 [ 720 "EndTag", 721 "foreignobject" 722 ], 723 [ 724 "StartTag", 725 "plaintext", 726 {} 727 ], 728 [ 729 "Character", 730 "<div>foo</div>" 731 ] 732 ] 733 } 734 ] 735}