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