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